8 class XsdTest extends \PHPUnit\Framework\TestCase
18 $this->markTestSkipped(
'Skipped on HHVM. Will be fixed in MAGETWO-45033');
20 $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
21 $this->_schemaFile = $urnResolver->getRealPath(
'urn:magento:framework-message-queue:etc/publisher.xsd');
31 $validationState = $this->createMock(\
Magento\Framework\
Config\ValidationStateInterface::class);
32 $validationState->expects($this->any())
33 ->method(
'isValidationRequired')
35 $messageFormat =
'%message%';
36 $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationState, [],
null,
null, $messageFormat);
38 $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
39 $this->assertEquals(empty($expectedErrors), $actualResult,
"Validation result is invalid.");
40 $this->assertEquals($expectedErrors, $actualErrors,
"Validation errors does not match.");
53 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 54 <publisher topic="topic.message.queue.config.01"> 55 <connection name="amqp" exchange="magento2" /> 56 <connection name="db" exchange="magento2" disabled="true" /> 58 <publisher topic="topic.message.queue.config.02"> 59 <connection name="amqp" exchange="magento2" disabled="true"/> 60 <connection name="db" exchange="magento2" disabled="true" /> 62 <publisher topic="topic.message.queue.config.03" disabled="true" /> 66 'non unique publisher topic' => [
67 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 68 <publisher topic="topic.message.queue.config.01"> 69 <connection name="amqp" exchange="magento2" /> 71 <publisher topic="topic.message.queue.config.01"> 72 <connection name="amqp" exchange="magento2" disabled="true"/> 76 "Element 'publisher': Duplicate key-sequence ['topic.message.queue.config.01'] in unique identity-constraint 'unique-publisher-topic'." 79 'non unique publisher connection name' => [
80 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 81 <publisher topic="topic.message.queue.config.01"> 82 <connection name="amqp" exchange="magento2" /> 83 <connection name="amqp" exchange="magento2" /> 87 "Element 'connection': Duplicate key-sequence ['amqp'] in unique identity-constraint 'unique-connection-name'." 90 'missed required publisher attribute' => [
91 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 92 <publisher disabled="false"> 93 <connection name="amqp" exchange="magento2" /> 97 "Element 'publisher': The attribute 'topic' is required but missing." 100 'missed required connection attribute' => [
101 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 102 <publisher topic="top01"> 103 <connection exchange="magento2" /> 107 "Element 'connection': The attribute 'name' is required but missing." 110 'unexpected publisher element' => [
111 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 112 <unexpected name="10">20</unexpected> 113 <publisher topic="topic.message.queue.config.03" disabled="true" /> 116 "Element 'unexpected': This element is not expected. Expected is ( publisher )." 119 'unexpected connection element' => [
120 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 121 <publisher topic="topic.message.queue.config.03" disabled="true"> 122 <connection name="amqp" exchange="magento2" /> 123 <unexpected name="10">20</unexpected> 127 "Element 'unexpected': This element is not expected. Expected is ( connection )." 130 'unexpected publisher attribute' => [
131 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 132 <publisher topic="topic.message.queue.config.03" disabled="true" unexpected="10"/> 135 "Element 'publisher', attribute 'unexpected': The attribute 'unexpected' is not allowed.",
138 'unexpected connection attribute' => [
139 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 140 <publisher topic="topic.message.queue.config.03" disabled="true"> 141 <connection name="amqp" exchange="magento2" unexpected="10"/> 145 "Element 'connection', attribute 'unexpected': The attribute 'unexpected' is not allowed.",
148 'invalid connection attribute value' => [
149 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 150 <publisher topic="topic.message.queue.config.03" disabled="true"> 151 <connection name="amqp" exchange="magento2" disabled="disabled"/> 155 "Element 'connection', attribute 'disabled': 'disabled' is not a valid value of the atomic type 'xs:boolean'.",
158 'invalid publisher attribute value' => [
159 '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/publisher.xsd"> 160 <publisher topic="topic.message.queue.config.03" disabled="disabled"> 161 <connection name="amqp" exchange="magento2" /> 165 "Element 'publisher', attribute 'disabled': 'disabled' is not a valid value of the atomic type 'xs:boolean'.",
testExemplarXml($fixtureXml, array $expectedErrors)
exemplarXmlDataProvider()