Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

Commit f75c218

Browse files
committed
Added unit test for #224
1 parent 6a7aded commit f75c218

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

test/Service/FormAnnotationBuilderFactoryTest.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
use PHPUnit_Framework_TestCase as TestCase;
1313
use Zend\EventManager\EventManagerInterface;
14+
use Zend\Form\Annotation\AnnotationBuilder;
1415
use Zend\Mvc\Service\FormAnnotationBuilderFactory;
1516
use Zend\ServiceManager\ServiceManager;
1617

@@ -39,6 +40,60 @@ public function testCreateServiceSetsPreserveDefinedOrder()
3940
$this->assertTrue($service->preserveDefinedOrder(), 'Preserve defined order was not set correctly');
4041
}
4142

43+
44+
public function testInjectFactoryInCorrectOrderV2()
45+
{
46+
$serviceLocator = new ServiceManager();
47+
if (method_exists($serviceLocator, 'build')) {
48+
$this->markTestSkipped('`zendframework/zend-servicemanager` v2 needed, skipped test');
49+
}
50+
51+
$this->prepareServiceLocator($serviceLocator, []);
52+
$serviceLocator->setAllowOverride(true);
53+
54+
$mockElementManager = $this
55+
->getMockBuilder('Zend\Form\FormElementManager\FormElementManagerV2Polyfill')
56+
->disableOriginalConstructor()
57+
->getMock();
58+
$serviceLocator->setService('FormElementManager', $mockElementManager);
59+
60+
$mockElementManager
61+
->expects($this->once())
62+
->method('injectFactory')
63+
->with($this->callback(function ($annotationBuilder) {
64+
return $annotationBuilder instanceof AnnotationBuilder;
65+
}), $serviceLocator);
66+
67+
$sut = new FormAnnotationBuilderFactory();
68+
$sut->createService($serviceLocator);
69+
}
70+
71+
public function testInjectFactoryInCorrectOrderV3()
72+
{
73+
$serviceLocator = new ServiceManager();
74+
if (!method_exists($serviceLocator, 'build')) {
75+
$this->markTestSkipped('`zendframework/zend-servicemanager` v3 needed, skipped test');
76+
}
77+
$this->prepareServiceLocator($serviceLocator, []);
78+
$serviceLocator->setAllowOverride(true);
79+
80+
$mockElementManager = $this
81+
->getMockBuilder('Zend\Form\FormElementManager\FormElementManagerV3Polyfill')
82+
->disableOriginalConstructor()
83+
->getMock();
84+
$serviceLocator->setService('FormElementManager', $mockElementManager);
85+
86+
$mockElementManager
87+
->expects($this->once())
88+
->method('injectFactory')
89+
->with($serviceLocator, $this->callback(function ($annotationBuilder) {
90+
return $annotationBuilder instanceof AnnotationBuilder;
91+
}));
92+
93+
$sut = new FormAnnotationBuilderFactory();
94+
$sut->__invoke($serviceLocator, AnnotationBuilder::class);
95+
}
96+
4297
/**
4398
* @param ServiceManager $manager
4499
* @param array $config

0 commit comments

Comments
 (0)