/**
  * @param Configuration $configuration
  *
  * @return Container
  */
 public function build(Configuration $configuration)
 {
     if (!$this->filesystem->isCacheFresh()) {
         $container = $this->compile($configuration);
         $this->filesystem->dump($container);
     }
     return $this->containerLoader->loadFrom($configuration->getContainerFilePath());
 }
 function it_loads_an_existing_container_if_cache_is_fresh(ContainerBuilder $containerBuilder, ContainerLoader $containerLoader, Filesystem $filesystem, Configuration $configuration, Loader $loader)
 {
     $filesystem->isCacheFresh()->willReturn(true);
     $filesystem->dump(Argument::any())->shouldNotBeCalled();
     $loader->loadContainer(Argument::any())->shouldNotBeCalled();
     $this->build($configuration)->shouldReturn($containerBuilder);
 }