@@ -790,4 +790,86 @@ public void testHttpConstraint() throws IOException {
790790 Assert .assertFalse (mapRealm .hasResourcePermission (
791791 request , response , constraintsDelete , null ));
792792 }
793+
794+
795+ @ Test
796+ public void testUncoveredMethods () throws IOException {
797+ // Create a constraint for ROLE1
798+ SecurityConstraint constraint = new SecurityConstraint ();
799+ constraint .addAuthRole (ROLE1 );
800+ // Add a collection for GET
801+ SecurityCollection getCollection = new SecurityCollection ();
802+ getCollection .addMethod (Method .GET );
803+ getCollection .addPatternDecoded ("*.html" );
804+ constraint .addCollection (getCollection );
805+ // Add a collection for POST
806+ SecurityCollection postCollection = new SecurityCollection ();
807+ postCollection .addMethod (Method .POST );
808+ postCollection .addPatternDecoded ("*.html" );
809+ constraint .addCollection (postCollection );
810+
811+ TesterMapRealm mapRealm = new TesterMapRealm ();
812+
813+ // Set up the mock request and response
814+ TesterRequest request = new TesterRequest ();
815+ Response response = new TesterResponse ();
816+ Context context = request .getContext ();
817+ context .addSecurityRole (ROLE1 );
818+ context .addSecurityRole (ROLE2 );
819+ request .getMappingData ().context = context ;
820+
821+ // Create the principals
822+ List <String > userRoles1 = new ArrayList <>();
823+ userRoles1 .add (ROLE1 );
824+ GenericPrincipal gp1 = new GenericPrincipal (USER1 , userRoles1 );
825+
826+ List <String > userRoles2 = new ArrayList <>();
827+ userRoles2 .add (ROLE2 );
828+ GenericPrincipal gp2 = new GenericPrincipal (USER2 , userRoles2 );
829+
830+ List <String > userRoles99 = new ArrayList <>();
831+ GenericPrincipal gp99 = new GenericPrincipal (USER99 , userRoles99 );
832+
833+ // Add the constraint to the context
834+ context .addConstraint (constraint );
835+
836+
837+ // Only user1 should be able to perform a GET
838+ request .setMethod (Method .GET );
839+
840+ SecurityConstraint [] constraintsGet =
841+ mapRealm .findSecurityConstraints (request , context );
842+
843+ request .setUserPrincipal (null );
844+ Assert .assertFalse (mapRealm .hasResourcePermission (
845+ request , response , constraintsGet , null ));
846+ request .setUserPrincipal (gp1 );
847+ Assert .assertTrue (mapRealm .hasResourcePermission (
848+ request , response , constraintsGet , null ));
849+ request .setUserPrincipal (gp2 );
850+ Assert .assertFalse (mapRealm .hasResourcePermission (
851+ request , response , constraintsGet , null ));
852+ request .setUserPrincipal (gp99 );
853+ Assert .assertFalse (mapRealm .hasResourcePermission (
854+ request , response , constraintsGet , null ));
855+
856+ // Only user1 should be able to perform a POST
857+ request .setMethod (Method .POST );
858+
859+ SecurityConstraint [] constraintsPost =
860+ mapRealm .findSecurityConstraints (request , context );
861+
862+ request .setUserPrincipal (null );
863+ Assert .assertFalse (mapRealm .hasResourcePermission (
864+ request , response , constraintsPost , null ));
865+ request .setUserPrincipal (gp1 );
866+ Assert .assertTrue (mapRealm .hasResourcePermission (
867+ request , response , constraintsPost , null ));
868+ request .setUserPrincipal (gp2 );
869+ Assert .assertFalse (mapRealm .hasResourcePermission (
870+ request , response , constraintsPost , null ));
871+ request .setUserPrincipal (gp99 );
872+ Assert .assertFalse (mapRealm .hasResourcePermission (
873+ request , response , constraintsPost , null ));
874+ }
793875}
0 commit comments