![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Config/Test/Unit/Reader/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Config\Test\Unit\Reader; use Magento\Framework\Config\ConverterInterface; use Magento\Framework\Config\Dom\UrnResolver; use Magento\Framework\Config\FileResolverInterface; use Magento\Framework\Config\Reader\Filesystem; use Magento\Framework\Config\SchemaLocatorInterface; use Magento\Framework\Config\ValidationStateInterface; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * Test for * * @see Filesystem */ class FilesystemTest extends TestCase { /** * @var MockObject */ protected $_fileResolverMock; /** * @var MockObject */ protected $_converterMock; /** * @var MockObject */ protected $_schemaLocatorMock; /** * @var MockObject */ protected $_validationStateMock; /** * @var UrnResolver */ protected $urnResolver; /** * @var string */ protected $_file; protected function setUp(): void { if (!function_exists('libxml_set_external_entity_loader')) { $this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033'); } $this->_file = file_get_contents(__DIR__ . '/../_files/reader/config.xml'); $this->_fileResolverMock = $this->getMockForAbstractClass(FileResolverInterface::class); $this->_converterMock = $this->getMockForAbstractClass(ConverterInterface::class); $this->_schemaLocatorMock = $this->getMockForAbstractClass(SchemaLocatorInterface::class); $this->_validationStateMock = $this->getMockForAbstractClass(ValidationStateInterface::class); $this->urnResolver = new UrnResolver(); } public function testRead() { $model = new Filesystem( $this->_fileResolverMock, $this->_converterMock, $this->_schemaLocatorMock, $this->_validationStateMock, 'fileName', [] ); $this->_fileResolverMock->expects($this->once())->method('get')->willReturn([$this->_file]); $dom = new \DOMDocument(); $dom->loadXML($this->_file); $this->_converterMock->expects($this->once())->method('convert')->with($dom); $model->read('scope'); } public function testReadWithoutFiles() { $model = new Filesystem( $this->_fileResolverMock, $this->_converterMock, $this->_schemaLocatorMock, $this->_validationStateMock, 'fileName', [] ); $this->_fileResolverMock ->expects($this->once())->method('get')->willReturn([]); $this->assertEmpty($model->read('scope')); } public function testReadWithInvalidDom() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('Invalid Document'); $this->_schemaLocatorMock->expects( $this->once() )->method( 'getSchema' )->willReturn( $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd') ); $this->_validationStateMock->expects($this->any()) ->method('isValidationRequired') ->willReturn(true); $model = new Filesystem( $this->_fileResolverMock, $this->_converterMock, $this->_schemaLocatorMock, $this->_validationStateMock, 'fileName', [] ); $this->_fileResolverMock->expects($this->once())->method('get')->willReturn([$this->_file]); $model->read('scope'); } public function testReadWithInvalidXml() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('The XML in file "0" is invalid:'); $this->_schemaLocatorMock->expects( $this->any() )->method( 'getPerFileSchema' )->willReturn( $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd') ); $this->_validationStateMock->expects($this->any()) ->method('isValidationRequired') ->willReturn(true); $model = new Filesystem( $this->_fileResolverMock, $this->_converterMock, $this->_schemaLocatorMock, $this->_validationStateMock, 'fileName', [] ); $this->_fileResolverMock->expects($this->once())->method('get')->willReturn([$this->_file]); $model->read('scope'); } public function testReadException() { $this->expectException('UnexpectedValueException'); $this->expectExceptionMessage('Instance of the DOM config merger is expected, got StdClass instead.'); $this->_fileResolverMock->expects($this->once())->method('get')->willReturn([$this->_file]); $model = new Filesystem( $this->_fileResolverMock, $this->_converterMock, $this->_schemaLocatorMock, $this->_validationStateMock, 'fileName', [], 'StdClass' ); $model->read(); } }