@@ -374,6 +374,23 @@ TEST(TestModelEnforcer, TestRBACModel) {
374374 TestEnforce (e, evaluator, false );
375375 evaluator = InitializeParams<casbin::DuktapeEvaluator>(" bob" , " data2" , " write" );
376376 TestEnforce (e, evaluator, true );
377+
378+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " read" );
379+ TestEnforce (e, evaluator, true );
380+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " write" );
381+ TestEnforce (e, evaluator, false );
382+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " read" );
383+ TestEnforce (e, evaluator, true );
384+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " write" );
385+ TestEnforce (e, evaluator, true );
386+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " read" );
387+ TestEnforce (e, evaluator, false );
388+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " write" );
389+ TestEnforce (e, evaluator, false );
390+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " read" );
391+ TestEnforce (e, evaluator, false );
392+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " write" );
393+ TestEnforce (e, evaluator, true );
377394}
378395
379396TEST (TestModelEnforcer, TestRBACModelWithResourceRoles) {
@@ -397,6 +414,23 @@ TEST(TestModelEnforcer, TestRBACModelWithResourceRoles) {
397414 TestEnforce (e, evaluator, false );
398415 evaluator = InitializeParams<casbin::DuktapeEvaluator>(" bob" , " data2" , " write" );
399416 TestEnforce (e, evaluator, true );
417+
418+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " read" );
419+ TestEnforce (e, evaluator, true );
420+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " write" );
421+ TestEnforce (e, evaluator, true );
422+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " read" );
423+ TestEnforce (e, evaluator, false );
424+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " write" );
425+ TestEnforce (e, evaluator, true );
426+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " read" );
427+ TestEnforce (e, evaluator, false );
428+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " write" );
429+ TestEnforce (e, evaluator, false );
430+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " read" );
431+ TestEnforce (e, evaluator, false );
432+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " write" );
433+ TestEnforce (e, evaluator, true );
400434}
401435
402436TEST (TestModelEnforcer, TestRBACModelWithDomains) {
@@ -545,6 +579,23 @@ TEST(TestModelEnforcer, TestRBACModelWithDeny) {
545579 TestEnforce (e, evaluator, false );
546580 evaluator = InitializeParams<casbin::DuktapeEvaluator>(" bob" , " data2" , " write" );
547581 TestEnforce (e, evaluator, true );
582+
583+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " read" );
584+ TestEnforce (e, evaluator, true );
585+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " write" );
586+ TestEnforce (e, evaluator, false );
587+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " read" );
588+ TestEnforce (e, evaluator, true );
589+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " write" );
590+ TestEnforce (e, evaluator, false );
591+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " read" );
592+ TestEnforce (e, evaluator, false );
593+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " write" );
594+ TestEnforce (e, evaluator, false );
595+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " read" );
596+ TestEnforce (e, evaluator, false );
597+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " write" );
598+ TestEnforce (e, evaluator, true );
548599}
549600
550601TEST (TestModelEnforcer, TestRBACModelWithOnlyDeny) {
@@ -580,6 +631,23 @@ TEST(TestModelEnforcer, TestRBACModelWithCustomData) {
580631 evaluator = InitializeParams<casbin::DuktapeEvaluator>(" bob" , " data2" , " write" );
581632 TestEnforce (e, evaluator, true );
582633
634+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " read" );
635+ TestEnforce (e, evaluator, true );
636+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " write" );
637+ TestEnforce (e, evaluator, false );
638+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " read" );
639+ TestEnforce (e, evaluator, true );
640+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " write" );
641+ TestEnforce (e, evaluator, true );
642+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " read" );
643+ TestEnforce (e, evaluator, false );
644+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " write" );
645+ TestEnforce (e, evaluator, false );
646+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " read" );
647+ TestEnforce (e, evaluator, true );
648+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " write" );
649+ TestEnforce (e, evaluator, true );
650+
583651 // You should also take the custom data as a parameter when deleting a grouping policy.
584652 // e.RemoveGroupingPolicy("bob", "data2_admin") won't work.
585653 // Or you can remove it by using RemoveFilteredGroupingPolicy().
@@ -602,6 +670,23 @@ TEST(TestModelEnforcer, TestRBACModelWithCustomData) {
602670 TestEnforce (e, evaluator, false );
603671 evaluator = InitializeParams<casbin::DuktapeEvaluator>(" bob" , " data2" , " write" );
604672 TestEnforce (e, evaluator, true );
673+
674+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " read" );
675+ TestEnforce (e, evaluator, true );
676+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data1" , " write" );
677+ TestEnforce (e, evaluator, false );
678+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " read" );
679+ TestEnforce (e, evaluator, true );
680+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" alice" , " data2" , " write" );
681+ TestEnforce (e, evaluator, true );
682+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " read" );
683+ TestEnforce (e, evaluator, false );
684+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data1" , " write" );
685+ TestEnforce (e, evaluator, false );
686+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " read" );
687+ TestEnforce (e, evaluator, false );
688+ evaluator = InitializeParams<casbin::ExprtkEvaluator>(" bob" , " data2" , " write" );
689+ TestEnforce (e, evaluator, true );
605690}
606691
607692TEST (TestModelEnforcer, TestRBACModelWithPattern) {
0 commit comments