public CumulativePermission set(Permission permission) { this.mask |= permission.getMask(); this.pattern = AclFormattingUtils.mergePatterns(this.pattern, permission.getPattern()); return this; }
@Test public final void testMergePatterns() throws Exception { String original = "...............................R"; String extraBits = "...........................A...."; assertThat(AclFormattingUtils.mergePatterns(original, extraBits)).isEqualTo( "...........................A...R"); assertThat(AclFormattingUtils.mergePatterns("ABCDEF", "......")).isEqualTo( "ABCDEF"); assertThat(AclFormattingUtils.mergePatterns("ABCDEF", "GHIJKL")).isEqualTo( "GHIJKL"); }
@Test public final void testMergePatternsParametersConstraints() throws Exception { try { AclFormattingUtils.mergePatterns(null, "SOME STRING"); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { AclFormattingUtils.mergePatterns("SOME STRING", null); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { AclFormattingUtils.mergePatterns("SOME STRING", "LONGER SOME STRING"); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { AclFormattingUtils.mergePatterns("SOME STRING", "SAME LENGTH"); } catch (IllegalArgumentException notExpected) { } }
public Builder add(Permission permission) { this.mask |= permission.getMask(); this.pattern = AclFormattingUtils.mergePatterns(this.pattern, permission.getPattern()); return this; }
public CumulativePermission set(Permission permission) { this.mask |= permission.getMask(); this.pattern = AclFormattingUtils.mergePatterns(this.pattern, permission.getPattern()); return this; }