107 : void
108 {
109 $processor1_stack = [];
110 $this->processor1
111 ->method("beginComponent")
112 ->willReturnCallback(function ($s1, $s2) use (&$processor1_stack) {
113 $processor1_stack[] = "beginComponent";
114 $processor1_stack[] = $s1;
115 $processor1_stack[] = $s2;
116 });
117 $this->processor1
118 ->method("endComponent")
119 ->willReturnCallback(function ($s1, $s2) use (&$processor1_stack) {
120 $processor1_stack[] = "endComponent";
121 $processor1_stack[] = $s1;
122 $processor1_stack[] = $s2;
123 });
124 $this->processor1
125 ->method("beginTag")
126 ->willReturnCallback(function ($s1, $s2) use (&$processor1_stack) {
127 $processor1_stack[] = "beginTag";
128 $processor1_stack[] = $s1;
129 $processor1_stack[] = $s2;
130 });
131 $this->processor1
132 ->method("endTag")
133 ->willReturnCallback(function ($s1) use (&$processor1_stack) {
134 $processor1_stack[] = "endTag";
135 $processor1_stack[] = $s1;
136 });
137
138 $processor2_stack = [];
139 $this->processor2
140 ->method("beginComponent")
141 ->willReturnCallback(function ($s1, $s2) use (&$processor2_stack) {
142 $processor2_stack[] = "beginComponent";
143 $processor2_stack[] = $s1;
144 $processor2_stack[] = $s2;
145 });
146 $this->processor2
147 ->method("endComponent")
148 ->willReturnCallback(function ($s1, $s2) use (&$processor2_stack) {
149 $processor2_stack[] = "endComponent";
150 $processor2_stack[] = $s1;
151 $processor2_stack[] = $s2;
152 });
153 $this->processor2
154 ->method("beginTag")
155 ->willReturnCallback(function ($s1, $s2) use (&$processor2_stack) {
156 $processor2_stack[] = "beginTag";
157 $processor2_stack[] = $s1;
158 $processor2_stack[] = $s2;
159 });
160 $this->processor2
161 ->method("endTag")
162 ->willReturnCallback(function ($s1) use (&$processor2_stack) {
163 $processor2_stack[] = "endTag";
164 $processor2_stack[] = $s1;
165 });
166
167
168 $this->reader->readComponentDefinitions();
169
170
172
173 $expected_processor_stack = [
174 "beginComponent",
177 "beginTag",
178 "module", ["a1" => "a1", "a2" => "a2"],
179 "beginTag",
180 "tag1", [],
181 "beginTag",
182 "tag11", [],
183 "endTag",
184 "tag11",
185 "endTag",
186 "tag1",
187 "beginTag",
188 "tag2", [],
189 "endTag",
190 "tag2",
191 "endTag",
192 "module",
193 "endComponent",
196 "beginComponent",
199 "beginTag",
200 "service", [],
201 "endTag",
202 "service",
203 "endComponent",
206 ];
207 $this->assertEquals($expected_processor_stack, $processor1_stack);
208 $this->assertEquals($expected_processor_stack, $processor2_stack);
209 }