@@ -125,6 +125,32 @@ void testBuildWithPermissionsVarargs() {
125125 });
126126 }
127127
128+ @ Test
129+ void testBuildWithPermissionsModeString () {
130+ assertThatExceptionOfType (IllegalArgumentException .class )
131+ .isThrownBy (() -> builder .setPermissions ((String ) null ))
132+ .withMessage ("Invalid mode string 'null'" );
133+ assertThatExceptionOfType (IllegalArgumentException .class )
134+ .isThrownBy (() -> builder .setPermissions ("" )).withMessage ("Invalid mode string ''" );
135+ assertThatExceptionOfType (IllegalArgumentException .class )
136+ .isThrownBy (() -> builder .setPermissions ("xxxx" )).withMessage ("Invalid mode string 'xxxx'" );
137+ assertThatExceptionOfType (IllegalArgumentException .class )
138+ .isThrownBy (() -> builder .setPermissions ("a" ))
139+ .withMessage ("Unknown char 'a' in mode string 'a'" );
140+ builder .setType (ALLOW ).setPrincipal (principal ).setPermissions ("rw-" );
141+ assertThat (builder .build ()).satisfies (aclEntry -> {
142+ assertThat (aclEntry .type ()).isEqualTo (ALLOW );
143+ assertThat (aclEntry .permissions ()).containsExactlyInAnyOrder (READ , WRITE )
144+ .isInstanceOf (EnumSet .class );
145+ });
146+ builder .setType (ALLOW ).setPrincipal (principal ).setPermissions ("r-x" );
147+ assertThat (builder .build ()).satisfies (aclEntry -> {
148+ assertThat (aclEntry .type ()).isEqualTo (ALLOW );
149+ assertThat (aclEntry .permissions ()).containsExactlyInAnyOrder (READ , EXECUTE )
150+ .isInstanceOf (EnumSet .class );
151+ });
152+ }
153+
128154 @ Test
129155 void testBuildWithEmpptyFlagsSet () {
130156 builder .setType (DENY ).setPrincipal (principal );
0 commit comments