/**
  * Asserts that the provided container is configured correctly.
  *
  * @param ContainerBuilder $container
  */
 protected function assertValidConfiguration(ContainerBuilder $container)
 {
     $container->compile();
     $errors = $this->validateContainer($container);
     $printer = new SimpleErrorListPrinter();
     $this->assertCount(0, $errors, $printer->printErrorList($errors));
 }
 public function process(ContainerBuilder $container)
 {
     $serviceDefinitions = $container->getDefinitions();
     $validatorFactory = new ServiceDefinitionValidatorFactory($this->configuration);
     $validator = $validatorFactory->create($container);
     $batchValidator = new BatchServiceDefinitionValidator($validator, new ValidationErrorFactory());
     $errorList = $batchValidator->validate($serviceDefinitions);
     if (count($errorList) === 0) {
         return;
     }
     $errorListPrinter = new SimpleErrorListPrinter();
     $message = $errorListPrinter->printErrorList($errorList);
     throw new InvalidServiceDefinitionsException($message);
 }
    public function testPrintsErrorMessageInAList()
    {
        $serviceId1 = 'service_1';
        $message1 = 'Message 1';
        $exception1 = $this->createException($message1);
        $error1 = $this->createMockError($serviceId1, $exception1);
        $serviceId2 = 'service_2';
        $message2 = 'Message 2';
        $exception2 = $this->createException($message2);
        $error2 = $this->createMockError($serviceId2, $exception2);
        $list = new ValidationErrorList();
        $list->add($error1);
        $list->add($error2);
        $expectedMessage = <<<EOT
Service definition validation errors (2):
- {$serviceId1}: {$message1}
- {$serviceId2}: {$message2}
EOT;
        $printer = new SimpleErrorListPrinter();
        $this->assertSame($expectedMessage, $printer->printErrorList($list));
    }