You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/01/28 12:58:51 UTC
[sling-org-apache-sling-serviceusermapper] 01/01: SLING-10099 :
Validators should all agree for a service user to be valid and should be
configurable (tests with 2 validators)
This is an automated email from the ASF dual-hosted git repository.
angela pushed a commit to branch issues/SLING-10099
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-serviceusermapper.git
commit 228889cbdc50367c5656dc14b85c6ed6603eb1a0
Author: angela <an...@adobe.com>
AuthorDate: Thu Jan 28 13:58:29 2021 +0100
SLING-10099 : Validators should all agree for a service user to be valid and should be configurable (tests with 2 validators)
---
.../impl/ServiceUserMapperImplTest.java | 67 ++++++++++++++++++----
1 file changed, 57 insertions(+), 10 deletions(-)
diff --git a/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java b/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java
index 92c8abf..f94b8af 100644
--- a/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java
+++ b/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java
@@ -34,6 +34,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
+import java.util.stream.StreamSupport;
import org.apache.sling.serviceusermapping.ServicePrincipalsValidator;
import org.apache.sling.serviceusermapping.ServiceUserValidator;
@@ -205,6 +206,33 @@ public class ServiceUserMapperImplTest {
}
@Test
+ public void test_getServiceUserID_WithMultipleValidators() {
+ ServiceUserMapperImpl.Config config = mock(ServiceUserMapperImpl.Config.class);
+ when(config.user_mapping()).thenReturn(new String[] {
+ BUNDLE_SYMBOLIC1 + "=" + SAMPLE, //
+ BUNDLE_SYMBOLIC2 + "=" + ANOTHER, //
+ BUNDLE_SYMBOLIC1 + ":" + SUB + "=" + SAMPLE_SUB, //
+ BUNDLE_SYMBOLIC2 + ":" + SUB + "=" + ANOTHER_SUB //
+ });
+ when(config.user_default()).thenReturn(NONE);
+ when(config.user_enable_default_mapping()).thenReturn(false);
+
+ final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
+ ServiceUserValidator sampleInvalid = (serviceUserId, serviceName, subServiceName) -> !SAMPLE.equals(serviceUserId);
+ sum.bindServiceUserValidator(sampleInvalid);
+
+ ServiceUserValidator anotherInvalid = (serviceUserId, serviceName, subServiceName) -> !ANOTHER.equals(serviceUserId);
+ sum.bindServiceUserValidator(anotherInvalid);
+
+ assertNull(sum.getServiceUserID(BUNDLE1, null));
+ assertNull(sum.getServiceUserID(BUNDLE2, null));
+ assertNull(sum.getServiceUserID(BUNDLE1, ""));
+ assertNull(sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ }
+
+ @Test
public void test_getServicePrincipalNames() {
ServiceUserMapperImpl.Config config = mock(ServiceUserMapperImpl.Config.class);
when(config.user_mapping()).thenReturn(new String[] {
@@ -281,16 +309,8 @@ public class ServiceUserMapperImplTest {
});
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- ServicePrincipalsValidator validator = new ServicePrincipalsValidator() {
- @Override
- public boolean isValid(Iterable<String> servicePrincipalNames, String serviceName, String subServiceName) {
- for (String pName : servicePrincipalNames) {
- if (SAMPLE.equals(pName)) {
- return false;
- }
- }
- return true;
- }
+ ServicePrincipalsValidator validator = (servicePrincipalNames, serviceName, subServiceName) -> {
+ return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
};
sum.bindServicePrincipalsValidator(validator);
@@ -300,6 +320,33 @@ public class ServiceUserMapperImplTest {
assertNull(sum.getServicePrincipalNames(BUNDLE2, SUB));
}
+ @Test
+ public void test_getServicePrincipalnames_WithMultipleValidators() {
+ ServiceUserMapperImpl.Config config = mock(ServiceUserMapperImpl.Config.class);
+ when(config.user_mapping()).thenReturn(new String[] {
+ BUNDLE_SYMBOLIC1 + "=[" + SAMPLE + "]", //
+ BUNDLE_SYMBOLIC2 + "=[" + ANOTHER + "," + SAMPLE + "]", //
+ BUNDLE_SYMBOLIC1 + ":" + SUB + "=[validPrincipal," + SAMPLE + "]", //
+ BUNDLE_SYMBOLIC2 + ":" + SUB + "=[validPrincipal," + SAMPLE_SUB + "," + ANOTHER + "]"//
+ });
+
+ final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
+ ServicePrincipalsValidator sampleInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
+ return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
+ };
+ sum.bindServicePrincipalsValidator(sampleInvalid);
+
+ ServicePrincipalsValidator anotherInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
+ return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(ANOTHER::equals);
+ };
+ sum.bindServicePrincipalsValidator(anotherInvalid);
+
+ assertNull(sum.getServicePrincipalNames(BUNDLE1, null));
+ assertNull(sum.getServicePrincipalNames(BUNDLE2, null));
+ assertNull(sum.getServicePrincipalNames(BUNDLE1, SUB));
+ assertNull(sum.getServicePrincipalNames(BUNDLE2, SUB));
+ }
+
private static void assertEqualPrincipalNames(Iterable<String> result, String... expected) {
if (expected == null) {
assertNull(result);