/** * @dataProvider providerTestDeferBuild */ function testDeferBuild($instructions, $expected_deferred_build, $expected_exceptions) { $builder = new FixtureBuilder(); foreach ($instructions as $info) { list($instruction, $parameters) = $info; $expected_exception = array_shift($expected_exceptions); try { $return = call_user_func_array(array($builder, $instruction), $parameters); $this->assertTrue($expected_exception); } catch (Exception $e) { $this->assertFalse($expected_exception, $e->getMessage()); $this->assertType('LogicException', $e); } } $builder->defer(); $this->assertEquals($expected_deferred_build, $builder->deferred_builds); }