Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractMergedConfigTest.php
Go to the documentation of this file.
1 <?php
7 
11 abstract class AbstractMergedConfigTest extends \PHPUnit\Framework\TestCase
12 {
21  abstract protected function getIdAttributes();
22 
28  abstract protected function getMergedSchemaFile();
29 
35  abstract protected function getConfigFiles();
36 
37  public function testMergedConfigFiles()
38  {
39  $invalidFiles = [];
40 
41  $files = $this->getConfigFiles();
42  $validationStateMock = $this->createMock(\Magento\Framework\Config\ValidationStateInterface::class);
43  $validationStateMock->method('isValidationRequired')
44  ->willReturn(false);
45  $mergedConfig = new \Magento\Framework\Config\Dom(
46  '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></config>',
47  $validationStateMock,
48  $this->getIdAttributes()
49  );
50 
51  foreach ($files as $file) {
52  $content = file_get_contents($file[0]);
53  try {
54  $validationStateMock = $this->createMock(\Magento\Framework\Config\ValidationStateInterface::class);
55  $validationStateMock->method('isValidationRequired')
56  ->willReturn(true);
57  new \Magento\Framework\Config\Dom($content, $validationStateMock, $this->getIdAttributes());
58  //merge won't be performed if file is invalid because of exception thrown
59  $mergedConfig->merge($content);
60  } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
61  $invalidFiles[] = $file[0];
62  }
63  }
64 
65  if (!empty($invalidFiles)) {
66  $this->fail('Found broken files: ' . implode("\n", $invalidFiles));
67  }
68 
69  $errors = [];
70  $mergedConfig->validate($this->getMergedSchemaFile(), $errors);
71  if ($errors) {
72  $this->fail('Merged routes config is invalid: ' . "\n" . implode("\n", $errors));
73  }
74  }
75 }
foreach($appDirs as $dir) $files
$errors
Definition: overview.phtml:9