Пример #1
0
 /**
  * @param ElementInterface[] $children
  *
  * @return bool
  *
  * @throws \Exception
  */
 private function check($children, $parentPath = '')
 {
     foreach ($children as $key => $element) {
         $elementPath = sprintf('%s%d[%s]', $parentPath, $key, $element->getName());
         foreach ($this->rules as $rule) {
             try {
                 $rule->validate($element);
             } catch (ValidationError $error) {
                 $this->errorTrace->addMessage($elementPath, $error->getMessage());
             }
         }
         if (!$element->isLeaf()) {
             $this->check($element->getChildren(), $elementPath);
         }
     }
 }
 public function testDump()
 {
     $trace = new ErrorTrace();
     $trace->addMessage('path', 'message1');
     $trace->addMessage('path', 'message2');
     $trace->addMessage('path2', 'message');
     $trace->addMessage('path3', 'message');
     $this->assertEquals("path message1\nmessage2\n" . "path2 message\n" . 'path3 message', $trace->dump());
 }