+
+ /**
+ * @covers ObjectFactory::constructClassInstance
+ * @dataProvider provideConstructClassInstance
+ */
+ public function testConstructClassInstance( $args ) {
+ $obj = ObjectFactory::constructClassInstance(
+ 'ObjectFactoryTestFixture', $args
+ );
+ $this->assertSame( $args, $obj->args );
+ }
+
+ public function provideConstructClassInstance() {
+ // These args go to 11. I thought about making 10 one louder, but 11!
+ return [
+ '0 args' => [ [] ],
+ '1 args' => [ [ 1, ] ],
+ '2 args' => [ [ 1, 2, ] ],
+ '3 args' => [ [ 1, 2, 3, ] ],
+ '4 args' => [ [ 1, 2, 3, 4, ] ],
+ '5 args' => [ [ 1, 2, 3, 4, 5, ] ],
+ '6 args' => [ [ 1, 2, 3, 4, 5, 6, ] ],
+ '7 args' => [ [ 1, 2, 3, 4, 5, 6, 7, ] ],
+ '8 args' => [ [ 1, 2, 3, 4, 5, 6, 7, 8, ] ],
+ '9 args' => [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] ],
+ '10 args' => [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ] ],
+ '11 args' => [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ] ],
+ ];
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ */
+ public function testNamedArgs() {
+ $args = [ 'foo' => 1, 'bar' => 2, 'baz' => 3 ];
+ $obj = ObjectFactory::constructClassInstance(
+ 'ObjectFactoryTestFixture', $args
+ );
+ }