@@ -144,18 +144,62 @@ public function testResolvesDescriptions(): void
144144 'two ' => 2 ,
145145 'three ' => null ,
146146 'four ' => 4 ,
147+ 'five ' => 4 ,
147148 ]);
148149 $ resolver ->setDescriptions ([
149150 'two ' => 'Two is the number ' ,
150151 'four ' => 'Four is also a number ' ,
151152 ]);
153+ $ resolver ->setDescriptions ([
154+ 'five ' => 'Five is the number ' ,
155+ ]);
152156 self ::assertEquals ([
153157 'two ' => 'Two is the number ' ,
154158 'four ' => 'Four is also a number ' ,
155159 'three ' => null ,
160+ 'five ' => 'Five is the number ' ,
156161 ], $ resolver ->resolveDescriptions ());
157162 }
158163
164+ public function testResolvesEnums (): void
165+ {
166+ $ resolver = new Resolver ();
167+ $ resolver ->setDefaults ([
168+ 'two ' => 2 ,
169+ ]);
170+ $ resolver ->setEnums ([
171+ 'two ' => [2 ],
172+ ]);
173+ $ resolver ->setEnums ([
174+ 'two ' => [2 , 3 ],
175+ ]);
176+ self ::assertEquals ([
177+ 2 ,
178+ 3 ,
179+ ], $ resolver ->definitions ()->get ('two ' )->enum ());
180+ }
181+
182+ public function testExceptionOnInvalidTypeAfterMerge (): void
183+ {
184+ $ this ->expectException (InvalidMap::class);
185+ $ this ->expectExceptionMessage ('got "NULL" ' );
186+ $ resolver = new Resolver ();
187+ $ resolver ->setDefaults ([
188+ 'two ' => 2 ,
189+ 'three ' => null ,
190+ ]);
191+ $ resolver ->setTypes ([
192+ 'two ' => 'integer ' ,
193+ ]);
194+ $ resolver ->setTypes ([
195+ 'three ' => 'int ' ,
196+ ]);
197+ self ::assertEquals ([
198+ 'two ' => 2 ,
199+ 'three ' => null ,
200+ ], $ resolver ->resolve ([]));
201+ }
202+
159203 public function testReturnsDefinition (): void
160204 {
161205 $ resolver = new Resolver ();
0 commit comments