Example #1
0
 public function testCompileBuilderNeedsRedefine()
 {
     $builder = $this->getBuilder();
     // The builder should need redefine as the file hasn't been generated yet
     $builder->ttl(3600);
     $this->assertTrue($builder->needsRedefine());
     // -1 disables ttl checking (never needs redefine)
     $builder->ttl(-1);
     $this->assertFalse($builder->needsRedefine());
     // 0 disables ttl checking (always needs redefine)
     $builder->ttl(0);
     $this->assertTrue($builder->needsRedefine());
     // Build the container
     $container = $builder->build();
     // Set a TTL and check if it needs redefine
     $builder->ttl(3600);
     $this->assertFalse($builder->needsRedefine());
     // Touch the file, it should need redefine
     $r = new \ReflectionClass($container);
     $builder->ttl(1200);
     $orig = filemtime($r->getFileName());
     touch($r->getFileName(), $orig - 3600);
     $this->assertTrue($builder->needsRedefine());
     touch($r->getFileName(), $orig);
     // Precompiled never needs redefine
     $builder->precompiled(true);
     $this->assertFalse($builder->needsRedefine());
     // Dynamic always requires redefine
     $builder2 = new ContainerBuilder();
     $this->assertTrue($builder2->needsRedefine());
 }