123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace spec\Prophecy\Promise;
- use PhpSpec\ObjectBehavior;
- class CallbackPromiseSpec extends ObjectBehavior
- {
- function let()
- {
- $this->beConstructedWith('get_class');
- }
- function it_is_promise()
- {
- $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
- }
- /**
- * @param \Prophecy\Prophecy\ObjectProphecy $object
- * @param \Prophecy\Prophecy\MethodProphecy $method
- */
- function it_should_execute_closure_callback($object, $method)
- {
- $firstArgumentCallback = function ($args) {
- return $args[0];
- };
- $this->beConstructedWith($firstArgumentCallback);
- $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
- }
- /**
- * @param \Prophecy\Prophecy\ObjectProphecy $object
- * @param \Prophecy\Prophecy\MethodProphecy $method
- */
- function it_should_execute_static_array_callback($object, $method)
- {
- $firstArgumentCallback = array('spec\Prophecy\Promise\ClassCallback', 'staticCallbackMethod');
- $this->beConstructedWith($firstArgumentCallback);
- $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
- }
- /**
- * @param \Prophecy\Prophecy\ObjectProphecy $object
- * @param \Prophecy\Prophecy\MethodProphecy $method
- */
- function it_should_execute_instance_array_callback($object, $method)
- {
- $class = new ClassCallback();
- $firstArgumentCallback = array($class, 'callbackMethod');
- $this->beConstructedWith($firstArgumentCallback);
- $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
- }
- /**
- * @param \Prophecy\Prophecy\ObjectProphecy $object
- * @param \Prophecy\Prophecy\MethodProphecy $method
- */
- function it_should_execute_string_function_callback($object, $method)
- {
- $firstArgumentCallback = 'spec\Prophecy\Promise\functionCallbackFirstArgument';
- $this->beConstructedWith($firstArgumentCallback);
- $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
- }
- }
- /**
- * Class used to test callbackpromise
- *
- * @param array
- * @return string
- */
- class ClassCallback
- {
- /**
- * @param array $args
- */
- function callbackMethod($args)
- {
- return $args[0];
- }
- /**
- * @param array $args
- */
- static function staticCallbackMethod($args)
- {
- return $args[0];
- }
- }
- /**
- * Callback function used to test callbackpromise
- *
- * @param array
- * @return string
- */
- function functionCallbackFirstArgument($args)
- {
- return $args[0];
- }
|