@@ 31-59 (lines=29) @@ | ||
28 | $this->sut = $sut = new AbstractTransformerFactory(); |
|
29 | } |
|
30 | ||
31 | public function testTransformFromSimpleSpec() |
|
32 | { |
|
33 | $this->container->setService('config', [ |
|
34 | 'abacaphiliac/zend-transformer' => [ |
|
35 | 'transformers' => [ |
|
36 | 'FooBarToFizBuz' => [ |
|
37 | 'inputClass' => FooBar::class, |
|
38 | 'keyMap' => [ |
|
39 | 'foo' => 'fiz', |
|
40 | 'bar' => 'buz', |
|
41 | ], |
|
42 | 'outputClass' => FizBuz::class, |
|
43 | ], |
|
44 | ], |
|
45 | ], |
|
46 | ]); |
|
47 | ||
48 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
49 | ||
50 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
51 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
52 | ||
53 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
54 | self::assertInstanceOf(FizBuz::class, $result); |
|
55 | ||
56 | /** @var FizBuz $result */ |
|
57 | self::assertEquals('Alice', $result->getFiz()); |
|
58 | self::assertEquals('Bob', $result->getBuz()); |
|
59 | } |
|
60 | ||
61 | /** |
|
62 | * @expectedException \Abacaphiliac\Zend\Transformer\Exception\TransformationException |
|
@@ 117-146 (lines=30) @@ | ||
114 | $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
115 | } |
|
116 | ||
117 | public function testTransformCustomExtractor() |
|
118 | { |
|
119 | $this->container->setService('config', [ |
|
120 | 'abacaphiliac/zend-transformer' => [ |
|
121 | 'transformers' => [ |
|
122 | 'FooBarToFizBuz' => [ |
|
123 | 'inputClass' => FooBar::class, |
|
124 | 'extractor' => 'ClassMethods', |
|
125 | 'keyMap' => [ |
|
126 | 'foo' => 'fiz', |
|
127 | 'bar' => 'buz', |
|
128 | ], |
|
129 | 'outputClass' => FizBuz::class, |
|
130 | ], |
|
131 | ], |
|
132 | ], |
|
133 | ]); |
|
134 | ||
135 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
136 | ||
137 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
138 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
139 | ||
140 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
141 | self::assertInstanceOf(FizBuz::class, $result); |
|
142 | ||
143 | /** @var FizBuz $result */ |
|
144 | self::assertEquals('Alice', $result->getFiz()); |
|
145 | self::assertEquals('Bob', $result->getBuz()); |
|
146 | } |
|
147 | ||
148 | public function testTransformCustomExtractorInstance() |
|
149 | { |
|
@@ 148-177 (lines=30) @@ | ||
145 | self::assertEquals('Bob', $result->getBuz()); |
|
146 | } |
|
147 | ||
148 | public function testTransformCustomExtractorInstance() |
|
149 | { |
|
150 | $this->container->setService('config', [ |
|
151 | 'abacaphiliac/zend-transformer' => [ |
|
152 | 'transformers' => [ |
|
153 | 'FooBarToFizBuz' => [ |
|
154 | 'inputClass' => FooBar::class, |
|
155 | 'extractor' => new ClassMethods(), |
|
156 | 'keyMap' => [ |
|
157 | 'foo' => 'fiz', |
|
158 | 'bar' => 'buz', |
|
159 | ], |
|
160 | 'outputClass' => FizBuz::class, |
|
161 | ], |
|
162 | ], |
|
163 | ], |
|
164 | ]); |
|
165 | ||
166 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
167 | ||
168 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
169 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
170 | ||
171 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
172 | self::assertInstanceOf(FizBuz::class, $result); |
|
173 | ||
174 | /** @var FizBuz $result */ |
|
175 | self::assertEquals('Alice', $result->getFiz()); |
|
176 | self::assertEquals('Bob', $result->getBuz()); |
|
177 | } |
|
178 | ||
179 | public function testTransformCustomHydrator() |
|
180 | { |
|
@@ 179-208 (lines=30) @@ | ||
176 | self::assertEquals('Bob', $result->getBuz()); |
|
177 | } |
|
178 | ||
179 | public function testTransformCustomHydrator() |
|
180 | { |
|
181 | $this->container->setService('config', [ |
|
182 | 'abacaphiliac/zend-transformer' => [ |
|
183 | 'transformers' => [ |
|
184 | 'FooBarToFizBuz' => [ |
|
185 | 'inputClass' => FooBar::class, |
|
186 | 'keyMap' => [ |
|
187 | 'foo' => 'fiz', |
|
188 | 'bar' => 'buz', |
|
189 | ], |
|
190 | 'hydrator' => 'ClassMethods', |
|
191 | 'outputClass' => FizBuz::class, |
|
192 | ], |
|
193 | ], |
|
194 | ], |
|
195 | ]); |
|
196 | ||
197 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
198 | ||
199 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
200 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
201 | ||
202 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
203 | self::assertInstanceOf(FizBuz::class, $result); |
|
204 | ||
205 | /** @var FizBuz $result */ |
|
206 | self::assertEquals('Alice', $result->getFiz()); |
|
207 | self::assertEquals('Bob', $result->getBuz()); |
|
208 | } |
|
209 | ||
210 | public function testTransformCustomHydratorInstance() |
|
211 | { |
|
@@ 210-239 (lines=30) @@ | ||
207 | self::assertEquals('Bob', $result->getBuz()); |
|
208 | } |
|
209 | ||
210 | public function testTransformCustomHydratorInstance() |
|
211 | { |
|
212 | $this->container->setService('config', [ |
|
213 | 'abacaphiliac/zend-transformer' => [ |
|
214 | 'transformers' => [ |
|
215 | 'FooBarToFizBuz' => [ |
|
216 | 'inputClass' => FooBar::class, |
|
217 | 'keyMap' => [ |
|
218 | 'foo' => 'fiz', |
|
219 | 'bar' => 'buz', |
|
220 | ], |
|
221 | 'hydrator' => new ClassMethods(), |
|
222 | 'outputClass' => FizBuz::class, |
|
223 | ], |
|
224 | ], |
|
225 | ], |
|
226 | ]); |
|
227 | ||
228 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
229 | ||
230 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
231 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
232 | ||
233 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
234 | self::assertInstanceOf(FizBuz::class, $result); |
|
235 | ||
236 | /** @var FizBuz $result */ |
|
237 | self::assertEquals('Alice', $result->getFiz()); |
|
238 | self::assertEquals('Bob', $result->getBuz()); |
|
239 | } |
|
240 | ||
241 | public function testTransformCustomKeyMapCallable() |
|
242 | { |
|
@@ 307-336 (lines=30) @@ | ||
304 | self::assertEquals('Bob', $result->getBuz()); |
|
305 | } |
|
306 | ||
307 | public function testTransformCustomInputValidatorInstance() |
|
308 | { |
|
309 | $this->container->setService('config', [ |
|
310 | 'abacaphiliac/zend-transformer' => [ |
|
311 | 'transformers' => [ |
|
312 | 'FooBarToFizBuz' => [ |
|
313 | 'inputClass' => FooBar::class, |
|
314 | 'inputValidator' => new ValidatorChain(), |
|
315 | 'keyMap' => [ |
|
316 | 'foo' => 'fiz', |
|
317 | 'bar' => 'buz', |
|
318 | ], |
|
319 | 'outputClass' => FizBuz::class, |
|
320 | ], |
|
321 | ], |
|
322 | ], |
|
323 | ]); |
|
324 | ||
325 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
326 | ||
327 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
328 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
329 | ||
330 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
331 | self::assertInstanceOf(FizBuz::class, $result); |
|
332 | ||
333 | /** @var FizBuz $result */ |
|
334 | self::assertEquals('Alice', $result->getFiz()); |
|
335 | self::assertEquals('Bob', $result->getBuz()); |
|
336 | } |
|
337 | ||
338 | public function testTransformCustomOutputValidatorInstance() |
|
339 | { |
|
@@ 338-367 (lines=30) @@ | ||
335 | self::assertEquals('Bob', $result->getBuz()); |
|
336 | } |
|
337 | ||
338 | public function testTransformCustomOutputValidatorInstance() |
|
339 | { |
|
340 | $this->container->setService('config', [ |
|
341 | 'abacaphiliac/zend-transformer' => [ |
|
342 | 'transformers' => [ |
|
343 | 'FooBarToFizBuz' => [ |
|
344 | 'inputClass' => FooBar::class, |
|
345 | 'keyMap' => [ |
|
346 | 'foo' => 'fiz', |
|
347 | 'bar' => 'buz', |
|
348 | ], |
|
349 | 'outputClass' => FizBuz::class, |
|
350 | 'outputValidator' => new ValidatorChain(), |
|
351 | ], |
|
352 | ], |
|
353 | ], |
|
354 | ]); |
|
355 | ||
356 | self::assertTrue($this->sut->canCreateServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz')); |
|
357 | ||
358 | $transformer = $this->sut->createServiceWithName($this->container, 'FooBarToFizBuz', 'FooBarToFizBuz'); |
|
359 | self::assertInstanceOf(TransformerInterface::class, $transformer); |
|
360 | ||
361 | $result = $transformer->transform(new FooBar('Alice', 'Bob'), new FizBuz()); |
|
362 | self::assertInstanceOf(FizBuz::class, $result); |
|
363 | ||
364 | /** @var FizBuz $result */ |
|
365 | self::assertEquals('Alice', $result->getFiz()); |
|
366 | self::assertEquals('Bob', $result->getBuz()); |
|
367 | } |
|
368 | } |
|
369 |