ConverterTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Indexer\Model\Config;
  7. use Magento\Framework\Exception\ConfigurationMismatchException;
  8. class ConverterTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Framework\Indexer\Config\Converter
  12. */
  13. protected $model;
  14. protected function setUp()
  15. {
  16. $this->model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  17. ->create(\Magento\Framework\Indexer\Config\Converter::class);
  18. }
  19. public function testConverter()
  20. {
  21. $pathFiles = __DIR__ . '/_files';
  22. $expectedResult = require $pathFiles . '/result.php';
  23. $path = $pathFiles . '/indexer.xml';
  24. $domDocument = new \DOMDocument();
  25. $domDocument->load($path);
  26. $result = $this->model->convert($domDocument);
  27. $this->assertEquals($expectedResult, $result);
  28. }
  29. /**
  30. * @return void
  31. */
  32. public function testConverterWithCircularDependency()
  33. {
  34. $pathFiles = __DIR__ . '/_files';
  35. $path = $pathFiles . '/indexer_with_circular_dependency.xml';
  36. $domDocument = new \DOMDocument();
  37. $domDocument->load($path);
  38. $this->expectException(ConfigurationMismatchException::class);
  39. $this->expectExceptionMessage('Circular dependency references from');
  40. $this->model->convert($domDocument);
  41. }
  42. /**
  43. * @return void
  44. */
  45. public function testConverterWithDependencyOnNotExistingIndexer()
  46. {
  47. $pathFiles = __DIR__ . '/_files';
  48. $path = $pathFiles . '/dependency_on_not_existing_indexer.xml';
  49. $domDocument = new \DOMDocument();
  50. $domDocument->load($path);
  51. $this->expectException(ConfigurationMismatchException::class);
  52. $this->expectExceptionMessage("Dependency declaration 'indexer_4' in 'indexer_2' to the non-existing indexer.");
  53. $this->model->convert($domDocument);
  54. }
  55. }