IEUrlExtension: Add tests for the main use case the lib exists for
[lhc/web/wiklou.git] / tests / phpunit / includes / libs / ObjectFactoryTest.php
index a9d3cc1..aea037e 100644 (file)
@@ -29,10 +29,17 @@ class ObjectFactoryTest extends PHPUnit_Framework_TestCase {
                        'args' => array( function() {
                                return 'unwrapped';
                        }, ),
+                       'calls' => array(
+                               'setter' => array( function() {
+                                       return 'unwrapped';
+                               }, ),
+                       ),
                        'closure_expansion' => false,
                ) );
                $this->assertInstanceOf( 'Closure', $obj->args[0] );
                $this->assertSame( 'unwrapped', $obj->args[0]() );
+               $this->assertInstanceOf( 'Closure', $obj->setterArgs[0] );
+               $this->assertSame( 'unwrapped', $obj->setterArgs[0]() );
        }
 
        /**
@@ -44,25 +51,43 @@ class ObjectFactoryTest extends PHPUnit_Framework_TestCase {
                        'args' => array( function() {
                                return 'unwrapped';
                        }, ),
+                       'calls' => array(
+                               'setter' => array( function() {
+                                       return 'unwrapped';
+                               }, ),
+                       ),
                        'closure_expansion' => true,
                ) );
                $this->assertInternalType( 'string', $obj->args[0] );
                $this->assertSame( 'unwrapped', $obj->args[0] );
+               $this->assertInternalType( 'string', $obj->setterArgs[0] );
+               $this->assertSame( 'unwrapped', $obj->setterArgs[0] );
 
                $obj = ObjectFactory::getObjectFromSpec( array(
                        'class' => 'ObjectFactoryTest_Fixture',
                        'args' => array( function() {
                                return 'unwrapped';
                        }, ),
+                       'calls' => array(
+                               'setter' => array( function() {
+                                       return 'unwrapped';
+                               }, ),
+                       ),
                ) );
                $this->assertInternalType( 'string', $obj->args[0] );
                $this->assertSame( 'unwrapped', $obj->args[0] );
+               $this->assertInternalType( 'string', $obj->setterArgs[0] );
+               $this->assertSame( 'unwrapped', $obj->setterArgs[0] );
        }
 }
 
 class ObjectFactoryTest_Fixture {
        public $args;
+       public $setterArgs;
        public function __construct( /*...*/ ) {
                $this->args = func_get_args();
        }
+       public function setter( /*...*/ ) {
+               $this->setterArgs = func_get_args();
+       }
 }