public function testAddsErrorToList() { $list = new ValidationErrorList(); $error1 = $this->createMockError(); $error2 = $this->createMockError(); $list->add($error1); $list->add($error2); $this->assertCount(2, $list); $expectedErrors = array($error1, $error2); $this->assertSame($expectedErrors, iterator_to_array($list)); }
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)); }
/** * Validates the definitions in the provided container and returns a list of errors. * * @param ContainerBuilder $container * @return ValidationErrorList */ protected function validateContainer(ContainerBuilder $container) { $validatorFactory = new ServiceDefinitionValidatorFactory(); $validator = $validatorFactory->create($container); $errors = new ValidationErrorList(); foreach ($container->getDefinitions() as $serviceId => $definition) { try { $validator->validate($definition); return $errors; } catch (\Exception $exception) { $error = new ValidationError($serviceId, $definition, $exception); $errors->add($error); } } return $errors; }