コード例 #1
0
 /**
  * @covers ::build
  * @dataProvider loadedServicesProvider
  */
 public function testLoadedServices(BundleInterface $bundle, array $expected_service_definitions)
 {
     $container = new ContainerBuilder();
     $bundle->build($container);
     $definitions = $container->getDefinitions();
     foreach ($definitions as $id => $def) {
         /* @var $def \Symfony\Component\DependencyInjection\Definition */
         $class = $def->getClass();
         $expected_service_definitions_count = count($expected_service_definitions);
         for ($i = 0; $i < $expected_service_definitions_count; $i++) {
             if ($id === $expected_service_definitions[$i]) {
                 unset($expected_service_definitions[$i]);
                 break;
             }
         }
         // reset indice
         $expected_service_definitions = array_values($expected_service_definitions);
         // found a resource we didn't expect
         if (count($expected_service_definitions) === $expected_service_definitions_count) {
             $this->fail('Test did not expect service definition to be loaded: ' . $id . ' with class ' . $class);
         }
         // test this later because fixing this failure can lead to the previous
         if (!class_exists($class)) {
             $this->fail(sprintf('Could not load class %s for definition %s', $class, $id));
         }
     }
     $this->assertEmpty($expected_service_definitions, 'Service definition(s) missing: ' . implode(',', $expected_service_definitions));
 }