$this->assertSame( 'unwrapped', $obj->setterArgs[0] );
}
+ /**
+ * @covers ObjectFactory::getObjectFromSpec
+ */
+ public function testGetObjectFromFactory() {
+ $args = [ 'a', 'b' ];
+ $obj = ObjectFactory::getObjectFromSpec( [
+ 'factory' => function ( $a, $b ) {
+ return new ObjectFactoryTestFixture( $a, $b );
+ },
+ 'args' => $args,
+ ] );
+ $this->assertSame( $args, $obj->args );
+ }
+
+ /**
+ * @covers ObjectFactory::getObjectFromSpec
+ * @expectedException InvalidArgumentException
+ */
+ public function testGetObjectFromInvalid() {
+ $args = [ 'a', 'b' ];
+ $obj = ObjectFactory::getObjectFromSpec( [
+ // Missing 'class' or 'factory'
+ 'args' => $args,
+ ] );
+ }
+
+ /**
+ * @covers ObjectFactory::getObjectFromSpec
+ * @dataProvider provideConstructClassInstance
+ */
+ public function testGetObjectFromClass( $args ) {
+ $obj = ObjectFactory::getObjectFromSpec( [
+ 'class' => 'ObjectFactoryTestFixture',
+ 'args' => $args,
+ ] );
+ $this->assertSame( $args, $obj->args );
+ }
+
/**
* @covers ObjectFactory::constructClassInstance
* @dataProvider provideConstructClassInstance
$this->assertSame( $args, $obj->args );
}
- public function provideConstructClassInstance() {
+ public static function provideConstructClassInstance() {
// These args go to 11. I thought about making 10 one louder, but 11!
return [
'0 args' => [ [] ],