<?php

/**
 * Mockery
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://github.com/padraic/mockery/blob/master/LICENSE
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to padraic@php.net so we can send you a copy immediately.
 *
 * @category   Mockery
 * @package    Mockery
 * @copyright  Copyright (c) 2010 Pádraic Brady (http://blog.astrumfutura.com)
 * @license    http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
 */

namespace Mockery;

/**
 * @method Expectation once()
 * @method Expectation zeroOrMoreTimes()
 * @method Expectation twice()
 * @method Expectation times(int $limit)
 * @method Expectation never()
 * @method Expectation atLeast()
 * @method Expectation atMost()
 * @method Expectation between()
 * @method Expectation because(string $message)
 */
interface ExpectationInterface
{
    /**
     * @return int
     */
    public function getOrderNumber();

    /**
     * @return MockInterface
     */
    public function getMock();

    /**
     * @param array $args
     * @return self
     */
    public function andReturn(...$args);

    /**
     * @return self
     */
    public function andReturns();
}
