@@ -242,6 +242,9 @@ public function testNullValue()
242242 $ enumMap = new EnumMap (EnumBasic::class);
243243 $ enumMap [EnumBasic::ONE ()] = null ;
244244
245+ $ this ->assertSame (1 , $ enumMap ->count ());
246+ $ this ->assertSame ([EnumBasic::ONE ()], $ enumMap ->getKeys ());
247+
245248 $ enumMap ->rewind ();
246249 $ this ->assertSame (1 , $ enumMap ->count ());
247250 $ this ->assertTrue ($ enumMap ->valid ());
@@ -252,7 +255,28 @@ public function testNullValue()
252255 $ this ->assertFalse (isset ($ enumMap [EnumBasic::ONE ()]));
253256 $ this ->assertFalse ($ enumMap ->offsetExists (EnumBasic::ONE ));
254257 $ this ->assertFalse ($ enumMap ->offsetExists (EnumBasic::ONE ()));
258+ $ this ->assertTrue ($ enumMap ->contains (EnumBasic::ONE ));
259+ $ this ->assertTrue ($ enumMap ->contains (EnumBasic::ONE ()));
260+
261+ // add the same enumeration a second time should do nothing
262+ $ enumMap ->offsetSet (EnumBasic::ONE (), null );
263+ $ this ->assertSame (1 , $ enumMap ->count ());
264+ $ this ->assertSame ([EnumBasic::ONE ()], $ enumMap ->getKeys ());
265+
266+ // overwrite by non null value
267+ $ enumMap ->offsetSet (EnumBasic::ONE (), false );
268+ $ this ->assertSame (1 , $ enumMap ->count ());
269+ $ this ->assertSame ([EnumBasic::ONE ()], $ enumMap ->getKeys ());
255270
271+ $ this ->assertSame (1 , $ enumMap ->count ());
272+ $ this ->assertTrue ($ enumMap ->valid ());
273+ $ this ->assertSame (EnumBasic::ONE (), $ enumMap ->key ());
274+ $ this ->assertFalse ($ enumMap ->current ());
275+
276+ $ this ->assertTrue (isset ($ enumMap [EnumBasic::ONE ]));
277+ $ this ->assertTrue (isset ($ enumMap [EnumBasic::ONE ()]));
278+ $ this ->assertTrue ($ enumMap ->offsetExists (EnumBasic::ONE ));
279+ $ this ->assertTrue ($ enumMap ->offsetExists (EnumBasic::ONE ()));
256280 $ this ->assertTrue ($ enumMap ->contains (EnumBasic::ONE ));
257281 $ this ->assertTrue ($ enumMap ->contains (EnumBasic::ONE ()));
258282 }
0 commit comments