GenericSchemaLocatorTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Config\Test\Unit;
  7. use Magento\Framework\Config\GenericSchemaLocator;
  8. use Magento\Framework\Config\SchemaLocatorInterface;
  9. use Magento\Framework\Module\Dir\Reader as ModuleDirReader;
  10. /**
  11. * @covers \Magento\Framework\Config\GenericSchemaLocator
  12. */
  13. class GenericSchemaLocatorTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var string
  17. */
  18. private $testSchemaFileName = 'test-example.xsd';
  19. /**
  20. * @var GenericSchemaLocator
  21. */
  22. private $schemaLocator;
  23. /**
  24. * @var ModuleDirReader|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. private $moduleReaderMock;
  27. /**
  28. * @param ModuleDirReader $reader
  29. * @param $moduleName
  30. * @param $mergeSchema
  31. * @param $perFileSchema
  32. * @return GenericSchemaLocator
  33. */
  34. private function createNewSchemaLocatorInstance(ModuleDirReader $reader, $moduleName, $mergeSchema, $perFileSchema)
  35. {
  36. return new GenericSchemaLocator($reader, $moduleName, $mergeSchema, $perFileSchema);
  37. }
  38. protected function setUp()
  39. {
  40. $this->moduleReaderMock = $this->createMock(ModuleDirReader::class);
  41. $this->schemaLocator = $this->createNewSchemaLocatorInstance(
  42. $this->moduleReaderMock,
  43. 'Test_ModuleName',
  44. $this->testSchemaFileName,
  45. null
  46. );
  47. }
  48. public function testItIsAnInstanceOfSchemaLocatorInterface()
  49. {
  50. $this->assertInstanceOf(SchemaLocatorInterface::class, $this->schemaLocator);
  51. }
  52. public function testItReturnsThePathToTheSpecifiedModuleXsd()
  53. {
  54. $this->moduleReaderMock->expects($this->any())->method('getModuleDir')->willReturn('....');
  55. $this->assertSame('..../' . $this->testSchemaFileName, $this->schemaLocator->getSchema());
  56. }
  57. public function testItReturnsNullAsTheDefaultPerFileSchema()
  58. {
  59. $this->assertNull($this->schemaLocator->getPerFileSchema());
  60. }
  61. public function testItReturnsThePathToThePerFileSchema()
  62. {
  63. $this->moduleReaderMock->expects($this->any())->method('getModuleDir')->willReturn('....');
  64. $schemaLocator = $this->createNewSchemaLocatorInstance(
  65. $this->moduleReaderMock,
  66. 'Test_ModuleName',
  67. 'some other file name',
  68. $this->testSchemaFileName
  69. );
  70. $this->assertSame('..../' . $this->testSchemaFileName, $schemaLocator->getPerFileSchema());
  71. }
  72. }