@@ -795,6 +795,44 @@ public function testEnumMethod()
795
795
$ this ->assertNull ($ request ->enum ('int.doesnt_exist ' , TestIntegerEnumBacked::class));
796
796
}
797
797
798
+ public function testEnumsMethod ()
799
+ {
800
+ $ request = Request::create ('/ ' , 'GET ' , [
801
+ 'valid_enum_values ' => ['test ' , 'test ' ],
802
+ 'invalid_enum_values ' => ['invalid ' , 'invalid ' ],
803
+ 'empty_value_request ' => [],
804
+ 'string ' => [
805
+ 'minus_1 ' => ['-1 ' , '0 ' ],
806
+ '0 ' => '0 ' ,
807
+ 'plus_1 ' => '1 ' ,
808
+ 'doesnt_exist ' => '-1024 ' ,
809
+ ],
810
+ 'int ' => [
811
+ 'minus_1 ' => -1 ,
812
+ '0 ' => 0 ,
813
+ 'plus_1 ' => 1 ,
814
+ 'doesnt_exist ' => 1024 ,
815
+ ],
816
+ ]);
817
+
818
+ $ this ->assertEmpty ($ request ->enums ('doesnt_exist ' , TestEnumBacked::class));
819
+
820
+ $ this ->assertEquals ([TestEnumBacked::test, TestEnumBacked::test], $ request ->enums ('valid_enum_values ' , TestEnumBacked::class));
821
+
822
+ $ this ->assertEmpty ($ request ->enums ('invalid_enum_value ' , TestEnumBacked::class));
823
+ $ this ->assertEmpty ($ request ->enums ('empty_value_request ' , TestEnumBacked::class));
824
+ $ this ->assertEmpty ($ request ->enums ('valid_enum_value ' , TestEnum::class));
825
+
826
+ $ this ->assertEquals ([TestIntegerEnumBacked::minus_1, TestIntegerEnumBacked::zero], $ request ->enums ('string.minus_1 ' , TestIntegerEnumBacked::class));
827
+ $ this ->assertEquals ([TestIntegerEnumBacked::zero], $ request ->enums ('string.0 ' , TestIntegerEnumBacked::class));
828
+ $ this ->assertEquals ([TestIntegerEnumBacked::plus_1], $ request ->enums ('string.plus_1 ' , TestIntegerEnumBacked::class));
829
+ $ this ->assertEmpty ($ request ->enums ('string.doesnt_exist ' , TestIntegerEnumBacked::class));
830
+ $ this ->assertEquals ([TestIntegerEnumBacked::minus_1], $ request ->enums ('int.minus_1 ' , TestIntegerEnumBacked::class));
831
+ $ this ->assertEquals ([TestIntegerEnumBacked::zero], $ request ->enums ('int.0 ' , TestIntegerEnumBacked::class));
832
+ $ this ->assertEquals ([TestIntegerEnumBacked::plus_1], $ request ->enums ('int.plus_1 ' , TestIntegerEnumBacked::class));
833
+ $ this ->assertEmpty ($ request ->enums ('int.doesnt_exist ' , TestIntegerEnumBacked::class));
834
+ }
835
+
798
836
public function testArrayAccess ()
799
837
{
800
838
$ request = Request::create ('/ ' , 'GET ' , ['name ' => null , 'foo ' => ['bar ' => null , 'baz ' => '' ]]);
0 commit comments