66
77use Doctrine \Common \Annotations \Reader ;
88use Doctrine \Common \Cache \ArrayCache ;
9- use Doctrine \ORM \Mapping \Driver \AnnotationDriver ;
10- use Doctrine \ORM \Mapping \Driver \AttributeDriver ;
9+ use Doctrine \ODM \MongoDB \Mapping \Driver \AnnotationDriver as MongoDBODMAnnotationDriver ;
10+ use Doctrine \ODM \MongoDB \Mapping \Driver \AttributeDriver as MongoDBODMAttributeDriver ;
11+ use Doctrine \ORM \Mapping \Driver \AnnotationDriver as ORMAnnotationDriver ;
12+ use Doctrine \ORM \Mapping \Driver \AttributeDriver as ORMAttributeDriver ;
1113use Doctrine \Persistence \Mapping \Driver \MappingDriverChain ;
1214use DoctrineModule \Service \DriverFactory ;
1315use DoctrineModuleTest \Service \Mock \MetadataDriverMock ;
@@ -75,34 +77,80 @@ public function testCreateDriverChain(): void
7577 /**
7678 * @requires PHP 8.0
7779 */
78- public function testCreateAttributeDriver (): void
80+ public function testCreateORMAttributeDriver (): void
7981 {
8082 $ serviceManager = new ServiceManager ();
8183 $ serviceManager ->setService (
8284 'config ' ,
8385 [
8486 'doctrine ' => [
8587 'driver ' => [
86- 'testDriver ' => ['class ' => AttributeDriver ::class],
88+ 'testDriver ' => ['class ' => ORMAttributeDriver ::class],
8789 ],
8890 ],
8991 ]
9092 );
9193
9294 $ factory = new DriverFactory ('testDriver ' );
93- $ driver = $ factory ->__invoke ($ serviceManager , AttributeDriver ::class);
94- $ this ->assertInstanceOf (AttributeDriver ::class, $ driver );
95+ $ driver = $ factory ->__invoke ($ serviceManager , ORMAttributeDriver ::class);
96+ $ this ->assertInstanceOf (ORMAttributeDriver ::class, $ driver );
9597 }
9698
97- public function testCreateAnnotationDriver (): void
99+ /**
100+ * @requires PHP 8.0
101+ */
102+ public function testCreateMongoDBODMAttributeDriver (): void
103+ {
104+ $ serviceManager = new ServiceManager ();
105+ $ serviceManager ->setService (
106+ 'config ' ,
107+ [
108+ 'doctrine ' => [
109+ 'driver ' => [
110+ 'testDriver ' => ['class ' => MongoDBODMAttributeDriver::class],
111+ ],
112+ ],
113+ ]
114+ );
115+
116+ $ factory = new DriverFactory ('testDriver ' );
117+ $ driver = $ factory ->__invoke ($ serviceManager , MongoDBODMAttributeDriver::class);
118+ $ this ->assertInstanceOf (MongoDBODMAttributeDriver::class, $ driver );
119+ }
120+
121+ public function testCreateORMAnnotationDriver (): void
122+ {
123+ $ serviceManager = new ServiceManager ();
124+ $ serviceManager ->setService (
125+ 'config ' ,
126+ [
127+ 'doctrine ' => [
128+ 'driver ' => [
129+ 'testDriver ' => ['class ' => ORMAnnotationDriver::class],
130+ ],
131+ ],
132+ ]
133+ );
134+ $ serviceManager ->setService (
135+ 'doctrine.cache.array ' ,
136+ new ArrayCache ()
137+ );
138+
139+ $ factory = new DriverFactory ('testDriver ' );
140+ $ driver = $ factory ->__invoke ($ serviceManager , ORMAnnotationDriver::class);
141+ $ this ->assertInstanceOf (ORMAnnotationDriver::class, $ driver );
142+ $ this ->assertInstanceOf (Reader::class, $ driver ->getReader ());
143+ }
144+
145+ public function testCreateMongoDBODMAnnotationDriver (): void
98146 {
99147 $ serviceManager = new ServiceManager ();
100148 $ serviceManager ->setService (
101149 'config ' ,
102150 [
103151 'doctrine ' => [
104152 'driver ' => [
105- 'testDriver ' => ['class ' => AnnotationDriver ::class],
153+ 'testDriver ' => ['class ' => MongoDBODMAnnotationDriver ::class],
106154 ],
107155 ],
108156 ]
@@ -113,8 +161,8 @@ public function testCreateAnnotationDriver(): void
113161 );
114162
115163 $ factory = new DriverFactory ('testDriver ' );
116- $ driver = $ factory ->__invoke ($ serviceManager , AnnotationDriver ::class);
117- $ this ->assertInstanceOf (AnnotationDriver ::class, $ driver );
164+ $ driver = $ factory ->__invoke ($ serviceManager , MongoDBODMAnnotationDriver ::class);
165+ $ this ->assertInstanceOf (MongoDBODMAnnotationDriver ::class, $ driver );
118166 $ this ->assertInstanceOf (Reader::class, $ driver ->getReader ());
119167 }
120168}
0 commit comments