111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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];
 | |
| }
 | 
