-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ContentsModeTest.php
93 lines (75 loc) · 3.18 KB
/
ContentsModeTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
declare(strict_types=1);
namespace Donatorsky\XmlTemplate\Reader\Tests\Feature\XmlTemplateReader;
use Assert\InvalidArgumentException;
use Donatorsky\XmlTemplate\Reader\Models\Map;
use Donatorsky\XmlTemplate\Reader\XmlTemplateReader;
/**
* @covers \Donatorsky\XmlTemplate\Reader\XmlTemplateReader
* @coversDefaultClass \Donatorsky\XmlTemplate\Reader\XmlTemplateReader
*/
class ContentsModeTest extends AbstractXmlTemplateReaderTest
{
private const XML_VALID = 'configuration-contents-valid';
private const XML_INVALID = 'configuration-contents-invalid';
public function testRelationsWereRead(): Map
{
$xmlTemplateReader = new XmlTemplateReader(self::getTemplateXml(self::XML_VALID));
$node = $xmlTemplateReader->read(self::getDataXml(self::XML_VALID));
$relationsMap = $node->getRelations();
self::assertTrue($relationsMap->has('none'));
self::assertTrue($relationsMap->has('raw'));
self::assertTrue($relationsMap->has('trimmed'));
self::assertTrue($relationsMap->has('noneWithCData'));
self::assertTrue($relationsMap->has('rawWithCData'));
self::assertTrue($relationsMap->has('trimmedWithCData'));
return $relationsMap;
}
/**
* @depends testRelationsWereRead
*
* @param \Donatorsky\XmlTemplate\Reader\Models\Map<\Donatorsky\XmlTemplate\Reader\Models\Node> $relationsMap
*/
public function testContentsNone(Map $relationsMap): void
{
$noneNode = $relationsMap->get('none');
$noneWithCDataNode = $relationsMap->get('noneWithCData');
self::assertNull($noneNode->getContents());
self::assertNull($noneWithCDataNode->getContents());
}
/**
* @depends testRelationsWereRead
*
* @param \Donatorsky\XmlTemplate\Reader\Models\Map<\Donatorsky\XmlTemplate\Reader\Models\Node> $relationsMap
*/
public function testContentsRaw(Map $relationsMap): void
{
$rawNode = $relationsMap->get('raw');
$rawWithCDataNode = $relationsMap->get('rawWithCData');
self::assertSame('
Contents of: raw
', $rawNode->getContents());
self::assertSame('
Contents "of" & <raw>
', $rawWithCDataNode->getContents());
}
/**
* @depends testRelationsWereRead
*
* @param \Donatorsky\XmlTemplate\Reader\Models\Map<\Donatorsky\XmlTemplate\Reader\Models\Node> $relationsMap
*/
public function testContentsTrimmed(Map $relationsMap): void
{
$trimmedNode = $relationsMap->get('trimmed');
$trimmedWithCDataNode = $relationsMap->get('trimmedWithCData');
self::assertSame('Contents of: trimmed', $trimmedNode->getContents());
self::assertSame('Contents "of" & <trimmed>', $trimmedWithCDataNode->getContents());
}
public function testFailsForInvalidValue(): void
{
$xmlTemplateReader = new XmlTemplateReader(self::getTemplateXml(self::XML_INVALID));
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('The "root/invalid" node\'s tpl:contents attribute value "invalid value" is invalid, expecting one of: none, raw, trimmed');
($xmlTemplateReader)->preloadTemplate();
}
}