Example #1
0
 public function testCompileBuilderNeedsRebuild()
 {
     $builder = $this->getBuilder();
     $builder->stat(true);
     // The builder should need rebuild as the file doesn't exist yet
     $this->assertTrue($builder->needsRebuild());
     // Generate the file
     $container = $builder->build();
     // The builder always not need rebuild as the container file is newer than any definitions
     $this->assertFalse($builder->needsRebuild());
     // touch the container to before a definition, then it should be need rebuild again
     $r1 = new \ReflectionClass(Fixture\NoArguments::class);
     $r2 = new \ReflectionClass($container);
     $orig = filemtime($r2->getFileName());
     touch($r2->getFileName(), filemtime($r1->getFileName()) - 1);
     $this->assertTrue($builder->needsRebuild());
     // @todo revert this on failure?
     touch($r2->getFileName(), $orig);
     // Dynamic always requires rebuild
     $builder2 = new ContainerBuilder();
     $this->assertTrue($builder2->needsRebuild());
 }