11<?php
22namespace Respect \Rest \Routines ;
33
4+ use Stubs \Routines \ByClassWithInvoke ;
5+
46/**
57 * @covers Respect\Rest\Routines\ParamSynced
68 * @author Nick Lombard <github@jigsoft.co.za>
79 */
8- use \ReflectionParameterr ;
9-
1010class AbstractSyncedRoutineTest extends \PHPUnit_Framework_TestCase
1111{
1212 /**
@@ -37,7 +37,7 @@ protected function tearDown()
3737 }
3838
3939 /**
40- * @covers Respect\Rest\Routines\AbstractSyncedRoutine::getParameters
40+ * @covers Respect\Rest\Routines\AbstractSyncedRoutine
4141 */
4242 public function testGetParameters ()
4343 {
@@ -48,4 +48,82 @@ public function testGetParameters()
4848 $ this ->assertEquals ('blogId ' , $ parameters [1 ]->name );
4949 $ this ->assertInstanceOf ('ReflectionParameter ' , $ parameters [0 ]);
5050 }
51+
52+ /**
53+ * @covers Respect\Rest\Routines\AbstractSyncedRoutine
54+ * @covers Respect\Rest\Routines\AbstractRoutine
55+ */
56+ public function test_getParameters_with_an_array ()
57+ {
58+ $ class = 'Respect\Rest\Routines\AbstractSyncedRoutine ' ;
59+ $ callback = array ('DateTime ' , 'createFromFormat ' );
60+ $ stub = $ this ->getMockBuilder ($ class )
61+ ->setMethods (array ('getCallback ' ))
62+ ->disableOriginalConstructor ()
63+ ->getMock ();
64+ $ stub ->expects ($ this ->any ())
65+ ->method ('getCallback ' )
66+ ->will ($ this ->returnValue ($ callback ));
67+
68+ $ this ->assertContainsOnlyInstancesOf (
69+ $ expected = 'ReflectionParameter ' ,
70+ $ result = $ stub ->getParameters ()
71+ );
72+ $ this ->assertCount (
73+ $ expected = 3 ,
74+ $ result
75+ );
76+ }
77+
78+ /**
79+ * @covers Respect\Rest\Routines\AbstractSyncedRoutine
80+ * @covers Respect\Rest\Routines\AbstractRoutine
81+ */
82+ public function test_getParameters_with_function ()
83+ {
84+ $ class = 'Respect\Rest\Routines\AbstractSyncedRoutine ' ;
85+ $ callback = function ($ name ) { return 'Hello ' .$ name ; };
86+ $ stub = $ this ->getMockBuilder ($ class )
87+ ->setMethods (array ('getCallback ' ))
88+ ->disableOriginalConstructor ()
89+ ->getMock ();
90+ $ stub ->expects ($ this ->any ())
91+ ->method ('getCallback ' )
92+ ->will ($ this ->returnValue ($ callback ));
93+
94+ $ this ->assertContainsOnlyInstancesOf (
95+ $ expected = 'ReflectionParameter ' ,
96+ $ result = $ stub ->getParameters ()
97+ );
98+ $ this ->assertCount (
99+ $ expected = 1 ,
100+ $ result
101+ );
102+ }
103+
104+ /**
105+ * @covers Respect\Rest\Routines\AbstractSyncedRoutine
106+ * @covers Respect\Rest\Routines\AbstractRoutine
107+ */
108+ public function test_getParameters_with_callable_instance ()
109+ {
110+ $ stub = new ByClassWithInvoke ;
111+ $ this ->assertTrue (
112+ is_callable ($ stub ),
113+ 'Callable instance does not pass the is_callable test. '
114+ );
115+ $ class = 'Respect\Rest\Routines\AbstractSyncedRoutine ' ;
116+ $ callback = function ($ name ) { return 'Hello ' .$ name ; };
117+ $ routine = $ this ->getMockBuilder ($ class )
118+ ->setMethods (array ('getCallback ' ))
119+ ->disableOriginalConstructor ()
120+ ->getMock ();
121+ $ routine ->expects ($ this ->any ())
122+ ->method ('getCallback ' )
123+ ->will ($ this ->returnValue ($ stub ));
124+ $ this ->assertCount (
125+ $ expected = 0 ,
126+ $ result = $ routine ->getParameters ()
127+ );
128+ }
51129}
0 commit comments