/**
  * @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);
 }