@@ -115,4 +115,69 @@ public function test_role_and_permission_function_together_with_backed_enum()
115115 $ this ->getLastRouteMiddlewareFromRouter ($ router )
116116 );
117117 }
118+
119+ /** @test */
120+ #[Test]
121+ public function test_role_or_permission_function ()
122+ {
123+ $ router = $ this ->getRouter ();
124+
125+ $ router ->get ('role-or-permission-test ' , $ this ->getRouteResponse ())
126+ ->name ('role-or-permission.test ' )
127+ ->roleOrPermission ('admin|edit articles ' );
128+
129+ $ this ->assertEquals (['role_or_permission:admin|edit articles ' ], $ this ->getLastRouteMiddlewareFromRouter ($ router ));
130+ }
131+
132+ /** @test */
133+ #[Test]
134+ public function test_role_or_permission_function_with_array ()
135+ {
136+ $ router = $ this ->getRouter ();
137+
138+ $ router ->get ('role-or-permission-array-test ' , $ this ->getRouteResponse ())
139+ ->name ('role-or-permission-array.test ' )
140+ ->roleOrPermission (['admin ' , 'edit articles ' ]);
141+
142+ $ this ->assertEquals (['role_or_permission:admin|edit articles ' ], $ this ->getLastRouteMiddlewareFromRouter ($ router ));
143+ }
144+
145+ /**
146+ * @test
147+ *
148+ * @requires PHP 8.1.0
149+ */
150+ #[RequiresPhp('>= 8.1.0 ' )]
151+ #[Test]
152+ public function test_role_or_permission_function_with_backed_enum ()
153+ {
154+ $ router = $ this ->getRouter ();
155+
156+ $ router ->get ('role-or-permission-test.enum ' , $ this ->getRouteResponse ())
157+ ->name ('role-or-permission.test.enum ' )
158+ ->roleOrPermission (TestRolePermissionsEnum::USERMANAGER );
159+
160+ $ this ->assertEquals (['role_or_permission: ' .TestRolePermissionsEnum::USERMANAGER ->value ], $ this ->getLastRouteMiddlewareFromRouter ($ router ));
161+ }
162+
163+ /**
164+ * @test
165+ *
166+ * @requires PHP 8.1.0
167+ */
168+ #[RequiresPhp('>= 8.1.0 ' )]
169+ #[Test]
170+ public function test_role_or_permission_function_with_backed_enum_array ()
171+ {
172+ $ router = $ this ->getRouter ();
173+
174+ $ router ->get ('role-or-permission-array-test.enum ' , $ this ->getRouteResponse ())
175+ ->name ('role-or-permission-array.test.enum ' )
176+ ->roleOrPermission ([TestRolePermissionsEnum::USERMANAGER , TestRolePermissionsEnum::EDITARTICLES ]); // @phpstan-ignore-line
177+
178+ $ this ->assertEquals (
179+ ['role_or_permission: ' .TestRolePermissionsEnum::USERMANAGER ->value .'| ' .TestRolePermissionsEnum::EDITARTICLES ->value ], // @phpstan-ignore-line
180+ $ this ->getLastRouteMiddlewareFromRouter ($ router )
181+ );
182+ }
118183}
0 commit comments