@@ -566,4 +566,96 @@ public function testIsSupersetWrongInstance()
566566 $ this ->assertFalse ($ set1 ->isSuperset ($ set2 ));
567567 }
568568 }
569+
570+ public function testGetOrdinals ()
571+ {
572+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
573+ $ this ->assertSame (array (), $ set ->getOrdinals ());
574+
575+ foreach (EnumBasic::getConstants () as $ value ) {
576+ $ set ->attach ($ value );
577+ }
578+
579+ $ this ->assertSame (range (0 , count (EnumBasic::getConstants ()) - 1 ), $ set ->getOrdinals ());
580+ }
581+
582+ public function testGetOrdinalsDoesNotEffectIteratorPosition ()
583+ {
584+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
585+ $ set ->attach (EnumBasic::ONE );
586+ $ set ->attach (EnumBasic::TWO );
587+ $ set ->next ();
588+
589+ $ set ->getOrdinals ();
590+ $ this ->assertSame (EnumBasic::TWO , $ set ->current ()->getValue ());
591+ }
592+
593+ public function testGetEnumerators ()
594+ {
595+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
596+ $ this ->assertSame (array (), $ set ->getEnumerators ());
597+
598+ foreach (EnumBasic::getConstants () as $ value ) {
599+ $ set ->attach ($ value );
600+ }
601+
602+ $ this ->assertSame (EnumBasic::getEnumerators (), $ set ->getEnumerators ());
603+ }
604+
605+ public function testGetEnumeratorsDoesNotEffectIteratorPosition ()
606+ {
607+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
608+ $ set ->attach (EnumBasic::ONE );
609+ $ set ->attach (EnumBasic::TWO );
610+ $ set ->next ();
611+
612+ $ set ->getEnumerators ();
613+ $ this ->assertSame (EnumBasic::TWO , $ set ->current ()->getValue ());
614+ }
615+
616+ public function testGetValues ()
617+ {
618+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
619+ $ this ->assertSame (array (), $ set ->getValues ());
620+
621+ foreach (EnumBasic::getConstants () as $ value ) {
622+ $ set ->attach ($ value );
623+ }
624+
625+ $ this ->assertSame (array_values (EnumBasic::getConstants ()), $ set ->getValues ());
626+ }
627+
628+ public function testGetValuesDoesNotEffectIteratorPosition ()
629+ {
630+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
631+ $ set ->attach (EnumBasic::ONE );
632+ $ set ->attach (EnumBasic::TWO );
633+ $ set ->next ();
634+
635+ $ set ->getValues ();
636+ $ this ->assertSame (EnumBasic::TWO , $ set ->current ()->getValue ());
637+ }
638+
639+ public function testGetNames ()
640+ {
641+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
642+ $ this ->assertSame (array (), $ set ->getNames ());
643+
644+ foreach (EnumBasic::getConstants () as $ value ) {
645+ $ set ->attach ($ value );
646+ }
647+
648+ $ this ->assertSame (array_keys (EnumBasic::getConstants ()), $ set ->getNames ());
649+ }
650+
651+ public function testGetNamesDoesNotEffectIteratorPosition ()
652+ {
653+ $ set = new EnumSet ('MabeEnumTest\TestAsset\EnumBasic ' );
654+ $ set ->attach (EnumBasic::ONE );
655+ $ set ->attach (EnumBasic::TWO );
656+ $ set ->next ();
657+
658+ $ set ->getNames ();
659+ $ this ->assertSame (EnumBasic::TWO , $ set ->current ()->getValue ());
660+ }
569661}
0 commit comments