Author: angela
Date: Fri Feb 12 15:46:30 2016
New Revision: 1730046
URL: http://svn.apache.org/viewvc?rev=1730046&view=rev
Log:
minor improvement, test coverage
Modified:
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImpl.java
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImplTest.java
Modified:
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImpl.java?rev=1730046&r1=1730045&r2=1730046&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImpl.java
Fri Feb 12 15:46:30 2016
@@ -26,6 +26,7 @@ import com.google.common.collect.Immutab
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.ConfigurationPolicy;
+import org.apache.felix.scr.annotations.Modified;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
@@ -72,6 +73,15 @@ public class CugExcludeImpl extends CugE
@Activate
protected void activate(Map<String, Object> properties) {
- principalNames =
ImmutableSet.copyOf(PropertiesUtil.toStringArray(properties.get("principalNames"),
new String[0]));
+ setPrincipalNames(properties);
+ }
+
+ @Modified
+ protected void modified(Map<String, Object> properties) {
+ setPrincipalNames(properties);
+ }
+
+ private void setPrincipalNames(@Nonnull Map<String, Object> properties) {
+ this.principalNames =
ImmutableSet.copyOf(PropertiesUtil.toStringArray(properties.get("principalNames"),
new String[0]));
}
}
\ No newline at end of file
Modified:
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImplTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImplTest.java?rev=1730046&r1=1730045&r2=1730046&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImplTest.java
(original)
+++
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeImplTest.java
Fri Feb 12 15:46:30 2016
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.spi.se
import java.security.Principal;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -34,6 +35,7 @@ import static org.junit.Assert.assertTru
public class CugExcludeImplTest extends CugExcludeDefaultTest {
+ private String[] principalNames = new String[] {"a","b","c","test"};
private Set<Principal> principals = ImmutableSet.<Principal>of(new
PrincipalImpl("test"));
@Override
@@ -58,15 +60,36 @@ public class CugExcludeImplTest extends
@Test
public void testExcludeTest() {
- Map<String, Object> m = ImmutableMap.<String,
Object>of("principalNames", new String[] {"a","b","c","test"});
+ Map<String, Object> m = ImmutableMap.<String,
Object>of("principalNames", principalNames);
activate(m);
- assertTrue(exclude.isExcluded(principals));
+
+ Set<Principal> all = new HashSet<Principal>();
+ for (String name : principalNames) {
+ Principal p = new PrincipalImpl(name);
+ assertTrue(exclude.isExcluded(ImmutableSet.of(p)));
+
+ all.add(p);
+ assertTrue(exclude.isExcluded(all));
+ }
}
@Test
public void testExcludeAnother() {
- Map<String, Object> m = ImmutableMap.<String,
Object>of("principalNames", new String[] {"a","b","c","test"});
+ Map<String, Object> m = ImmutableMap.<String,
Object>of("principalNames", principalNames);
activate(m);
assertFalse(exclude.isExcluded(ImmutableSet.<Principal>of(new
PrincipalImpl("another"))));
}
+
+ @Test
+ public void testModifyExclude() {
+ Map<String, Object> m = ImmutableMap.<String,
Object>of("principalNames", principalNames);
+ activate(m);
+ ((CugExcludeImpl) exclude).modified(ImmutableMap.<String,
Object>of("principalNames", new String[]{"other"}));
+
+ for (String name : principalNames) {
+ Principal p = new PrincipalImpl(name);
+ assertFalse(exclude.isExcluded(ImmutableSet.of(p)));
+ }
+ assertTrue(exclude.isExcluded(ImmutableSet.<Principal>of(new
PrincipalImpl("other"))));
+ }
}
\ No newline at end of file