ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ValueObjectTest.php
Go to the documentation of this file.
1<?php
2
4
5use
7
9
11
12 $input = <<<XML
13<?xml version="1.0"?>
14<foo xmlns="urn:foo">
15 <firstName>Harry</firstName>
16 <lastName>Turtle</lastName>
17</foo>
18XML;
19
20 $reader = new Reader();
21 $reader->xml($input);
22 $reader->elementMap = [
23 '{urn:foo}foo' => function(Reader $reader) {
24 return valueObject($reader, 'Sabre\\Xml\\Deserializer\\TestVo', 'urn:foo');
25 }
26 ];
27
28 $output = $reader->parse();
29
30 $vo = new TestVo();
31 $vo->firstName = 'Harry';
32 $vo->lastName = 'Turtle';
33
34 $expected = [
35 'name' => '{urn:foo}foo',
36 'value' => $vo,
37 'attributes' => []
38 ];
39
40 $this->assertEquals(
41 $expected,
43 );
44
45 }
46
48
49 $input = <<<XML
50<?xml version="1.0"?>
51<foo xmlns="urn:foo">
52 <firstName>Harry</firstName>
53 <lastName>Turtle</lastName>
54 <email>harry@example.org</email>
55</foo>
56XML;
57
58 $reader = new Reader();
59 $reader->xml($input);
60 $reader->elementMap = [
61 '{urn:foo}foo' => function(Reader $reader) {
62 return valueObject($reader, 'Sabre\\Xml\\Deserializer\\TestVo', 'urn:foo');
63 }
64 ];
65
66 $output = $reader->parse();
67
68 $vo = new TestVo();
69 $vo->firstName = 'Harry';
70 $vo->lastName = 'Turtle';
71
72 $expected = [
73 'name' => '{urn:foo}foo',
74 'value' => $vo,
75 'attributes' => []
76 ];
77
78 $this->assertEquals(
79 $expected,
81 );
82
83 }
84
86
87 $input = <<<XML
88<?xml version="1.0"?>
89<foo xmlns="urn:foo">
90 <firstName>Harry</firstName>
91 <lastName>Turtle</lastName>
92 <link>http://example.org/</link>
93 <link>http://example.net/</link>
94</foo>
95XML;
96
97 $reader = new Reader();
98 $reader->xml($input);
99 $reader->elementMap = [
100 '{urn:foo}foo' => function(Reader $reader) {
101 return valueObject($reader, 'Sabre\\Xml\\Deserializer\\TestVo', 'urn:foo');
102 }
103 ];
104
105 $output = $reader->parse();
106
107 $vo = new TestVo();
108 $vo->firstName = 'Harry';
109 $vo->lastName = 'Turtle';
110 $vo->link = [
111 'http://example.org/',
112 'http://example.net/',
113 ];
114
115
116 $expected = [
117 'name' => '{urn:foo}foo',
118 'value' => $vo,
119 'attributes' => []
120 ];
121
122 $this->assertEquals(
123 $expected,
124 $output
125 );
126
127 }
129
130 $input = <<<XML
131<?xml version="1.0"?>
132<foo xmlns="urn:foo" />
133XML;
134
135 $reader = new Reader();
136 $reader->xml($input);
137 $reader->elementMap = [
138 '{urn:foo}foo' => function(Reader $reader) {
139 return valueObject($reader, 'Sabre\\Xml\\Deserializer\\TestVo', 'urn:foo');
140 }
141 ];
142
143 $output = $reader->parse();
144
145 $vo = new TestVo();
146
147 $expected = [
148 'name' => '{urn:foo}foo',
149 'value' => $vo,
150 'attributes' => []
151 ];
152
153 $this->assertEquals(
154 $expected,
155 $output
156 );
157
158 }
159
160}
161
162class TestVo {
163
165 public $lastName;
166
167 public $link = [];
168
169}
An exception for terminatinating execution or to throw for unit testing.
The Reader class expands upon PHP's built-in XMLReader.
Definition: Reader.php:20
static http()
Fetches the global http state from ILIAS.
valueObject(Reader $reader, $className, $namespace)
The valueObject deserializer turns an xml element into a PHP object of a specific class.
Definition: functions.php:181