Permalink
Fetching contributors…
Cannot retrieve contributors at this time
153 lines (127 sloc) 4.46 KB
<?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/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
* @subpackage UnitTests
* @copyright Copyright (c) 2010 Pádraic Brady (http://blog.astrumfutura.com)
* @license http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
*/
namespace test\Mockery;
use Mockery as m;
use Mockery\Spy;
use Mockery\Adapter\Phpunit\MockeryTestCase;
class SpyTest extends MockeryTestCase
{
/** @test */
public function itVerifiesAMethodWasCalled()
{
$spy = m::spy();
$spy->myMethod();
$spy->shouldHaveReceived("myMethod");
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->shouldHaveReceived("someMethodThatWasNotCalled");
}
/** @test */
public function itVerifiesAMethodWasNotCalled()
{
$spy = m::spy();
$spy->shouldNotHaveReceived("myMethod");
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->myMethod();
$spy->shouldNotHaveReceived("myMethod");
}
/** @test */
public function itVerifiesAMethodWasNotCalledWithParticularArguments()
{
$spy = m::spy();
$spy->myMethod(123, 456);
$spy->shouldNotHaveReceived("myMethod", array(789, 10));
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->shouldNotHaveReceived("myMethod", array(123, 456));
}
/** @test */
public function itVerifiesAMethodWasCalledASpecificNumberOfTimes()
{
$spy = m::spy();
$spy->myMethod();
$spy->myMethod();
$spy->shouldHaveReceived("myMethod")->twice();
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->myMethod();
$spy->shouldHaveReceived("myMethod")->twice();
}
/** @test */
public function itVerifiesAMethodWasCalledWithSpecificArguments()
{
$spy = m::spy();
$spy->myMethod(123, "a string");
$spy->shouldHaveReceived("myMethod")->with(123, "a string");
$spy->shouldHaveReceived("myMethod", array(123, "a string"));
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->shouldHaveReceived("myMethod")->with(123);
}
/** @test */
public function itIncrementsExpectationCountWhenShouldHaveReceivedIsUsed()
{
$spy = m::spy();
$spy->myMethod('param1', 'param2');
$spy->shouldHaveReceived('myMethod')->with('param1', 'param2');
$this->assertEquals(1, $spy->mockery_getExpectationCount());
}
/** @test */
public function itIncrementsExpectationCountWhenShouldNotHaveReceivedIsUsed()
{
$spy = m::spy();
$spy->shouldNotHaveReceived('method');
$this->assertEquals(1, $spy->mockery_getExpectationCount());
}
/** @test */
public function any_args_can_be_used_with_alternative_syntax()
{
$spy = m::spy();
$spy->foo(123, 456);
$spy->shouldHaveReceived()->foo(anyArgs());
}
/** @test */
public function should_have_received_higher_order_message_call_a_method_with_correct_arguments()
{
$spy = m::spy();
$spy->foo(123);
$spy->shouldHaveReceived()->foo(123);
}
/** @test */
public function should_have_received_higher_order_message_call_a_method_with_incorrect_arguments_throws_exception()
{
$spy = m::spy();
$spy->foo(123);
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->shouldHaveReceived()->foo(456);
}
/** @test */
public function should_not_have_received_higher_order_message_call_a_method_with_incorrect_arguments()
{
$spy = m::spy();
$spy->foo(123);
$spy->shouldNotHaveReceived()->foo(456);
}
/** @test */
public function should_not_have_received_higher_order_message_call_a_method_with_correct_arguments_throws_an_exception()
{
$spy = m::spy();
$spy->foo(123);
$this->expectException("Mockery\Exception\InvalidCountException");
$spy->shouldNotHaveReceived()->foo(123);
}
}