SLING-10099 : Validators should all agree for a service user to be valid and should be configurable (tests, cleanup)
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 cbcba54..ef9ad62 100644
--- a/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java
+++ b/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImplTest.java
@@ -18,40 +18,36 @@
*/
package org.apache.sling.serviceusermapping.impl;
-import static junit.framework.TestCase.assertFalse;
-import static junit.framework.TestCase.assertTrue;
-import static junit.framework.TestCase.assertNull;
-import static junit.framework.TestCase.assertEquals;
-import static junit.framework.TestCase.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-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.ServiceUserMapper;
import org.apache.sling.serviceusermapping.ServiceUserValidator;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
-import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
-import junit.framework.TestCase;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import java.util.stream.StreamSupport;
+
+import static org.apache.sling.serviceusermapping.ServiceUserMapper.VALIDATOR_ID;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class ServiceUserMapperImplTest {
private static final String BUNDLE_SYMBOLIC1 = "bundle1";
@@ -122,29 +118,29 @@
assertTrue(mapper.isValidUser("org", "foo", "bar", false));
assertFalse(mapper.isValidUser("org", "foo", "bar", true));
- assertTrue(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", false));
- assertFalse(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", true));
+ assertTrue(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", false));
+ assertFalse(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", true));
Map<String, Object> properties = new HashMap<>();
- properties.put(ServiceUserMapper.VALIDATOR_ID, "bla");
+ properties.put(VALIDATOR_ID, "bla");
mapper.bindServiceUserValidator(userValidator, properties);
assertTrue(mapper.isValidUser("org", "foo", "bar", false));
assertFalse(mapper.isValidUser("org", "foo", "bar", true));
- assertTrue(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", false));
- assertFalse(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", true));
+ assertTrue(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", false));
+ assertFalse(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", true));
- properties.put(ServiceUserMapper.VALIDATOR_ID, "bli");
+ properties.put(VALIDATOR_ID, "bli");
mapper.bindServicePrincipalsValidator(principalsValidator2, properties);
assertTrue(mapper.isValidUser("org", "foo", "bar", false));
assertFalse(mapper.isValidUser("org", "foo", "bar", true));
- assertTrue(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", false));
- assertFalse(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", true));
+ assertTrue(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", false));
+ assertFalse(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", true));
- properties.put(ServiceUserMapper.VALIDATOR_ID, "blub");
+ properties.put(VALIDATOR_ID, "blub");
try {
mapper.bindServicePrincipalsValidator(principalsValidator1, properties);
fail();
@@ -155,8 +151,8 @@
assertFalse(mapper.isValidUser("org", "foo", "bar", false));
assertFalse(mapper.isValidUser("org", "foo", "bar", true));
- assertFalse(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", false));
- assertFalse(mapper.areValidPrincipals(Arrays.asList("baz"), "org", "foo", true));
+ assertFalse(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", false));
+ assertFalse(mapper.areValidPrincipals(Collections.singletonList("baz"), "org", "foo", true));
}
@Test
@@ -173,14 +169,14 @@
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
- TestCase.assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
- TestCase.assertEquals(NONE, sum.getServiceUserID(BUNDLE3, null));
- TestCase.assertEquals(NONE, sum.getServiceUserID(BUNDLE3, SUB));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ assertEquals(NONE, sum.getServiceUserID(BUNDLE3, null));
+ assertEquals(NONE, sum.getServiceUserID(BUNDLE3, SUB));
}
@Test
@@ -197,14 +193,14 @@
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
- TestCase.assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
- TestCase.assertEquals(NONE, sum.getServiceUserID(BUNDLE3, null));
- TestCase.assertEquals(NONE, sum.getServiceUserID(BUNDLE3, SUB));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ assertEquals(NONE, sum.getServiceUserID(BUNDLE3, null));
+ assertEquals(NONE, sum.getServiceUserID(BUNDLE3, SUB));
}
@Test
@@ -221,14 +217,14 @@
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
- TestCase.assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
- TestCase.assertEquals("serviceuser--" + BUNDLE_SYMBOLIC3, sum.getServiceUserID(BUNDLE3, null));
- TestCase.assertEquals("serviceuser--" + BUNDLE_SYMBOLIC3 + "--" + SUB, sum.getServiceUserID(BUNDLE3, SUB));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ assertEquals("serviceuser--" + BUNDLE_SYMBOLIC3, sum.getServiceUserID(BUNDLE3, null));
+ assertEquals("serviceuser--" + BUNDLE_SYMBOLIC3 + "--" + SUB, sum.getServiceUserID(BUNDLE3, SUB));
}
@Test
@@ -244,25 +240,15 @@
when(config.user_enable_default_mapping()).thenReturn(false);
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- ServiceUserValidator serviceUserValidator = new ServiceUserValidator() {
-
- @Override
- public boolean isValid(String serviceUserId, String serviceName,
- String subServiceName) {
- if (SAMPLE.equals(serviceUserId)) {
- return false;
- }
- return true;
- }
- };
+ ServiceUserValidator serviceUserValidator = (serviceUserId, serviceName, subServiceName) -> !SAMPLE.equals(serviceUserId);
sum.bindServiceUserValidator(serviceUserValidator, Collections.emptyMap());
- TestCase.assertEquals(null, sum.getServiceUserID(BUNDLE1, null));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
- TestCase.assertEquals(null, sum.getServiceUserID(BUNDLE1, ""));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
- TestCase.assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ assertNull(sum.getServiceUserID(BUNDLE1, null));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
+ assertNull(sum.getServiceUserID(BUNDLE1, ""));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
}
@Test
@@ -369,9 +355,7 @@
});
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- ServicePrincipalsValidator validator = (servicePrincipalNames, serviceName, subServiceName) -> {
- return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
- };
+ ServicePrincipalsValidator validator = (servicePrincipalNames, serviceName, subServiceName) -> StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
sum.bindServicePrincipalsValidator(validator, Collections.emptyMap());
assertNull(sum.getServicePrincipalNames(BUNDLE1, null));
@@ -391,14 +375,10 @@
});
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- ServicePrincipalsValidator sampleInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
- return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
- };
+ ServicePrincipalsValidator sampleInvalid = (servicePrincipalNames, serviceName, subServiceName) -> StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
sum.bindServicePrincipalsValidator(sampleInvalid, Collections.emptyMap());
- ServicePrincipalsValidator anotherInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
- return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(ANOTHER::equals);
- };
+ ServicePrincipalsValidator anotherInvalid = (servicePrincipalNames, serviceName, subServiceName) -> StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(ANOTHER::equals);
sum.bindServicePrincipalsValidator(anotherInvalid, Collections.emptyMap());
assertNull(sum.getServicePrincipalNames(BUNDLE1, null));
@@ -416,20 +396,66 @@
});
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(null, config);
- ServicePrincipalsValidator sampleInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
- return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
- };
+ ServicePrincipalsValidator sampleInvalid = (servicePrincipalNames, serviceName, subServiceName) -> StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(SAMPLE::equals);
sum.bindServicePrincipalsValidator(sampleInvalid, Collections.emptyMap());
- ServicePrincipalsValidator anotherInvalid = (servicePrincipalNames, serviceName, subServiceName) -> {
- return StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(ANOTHER::equals);
- };
+ ServicePrincipalsValidator anotherInvalid = (servicePrincipalNames, serviceName, subServiceName) -> StreamSupport.stream(servicePrincipalNames.spliterator(), false).noneMatch(ANOTHER::equals);
sum.bindServicePrincipalsValidator(anotherInvalid, Collections.emptyMap());
assertEqualPrincipalNames(sum.getServicePrincipalNames(BUNDLE1, null), "validPrincipal");
assertEqualPrincipalNames(sum.getServicePrincipalNames(BUNDLE1, SUB), "validPrincipal", SAMPLE_SUB);
}
+ @Test
+ public void test_getServicePrincipalNamesInternal_RequiredValidators() {
+ ServiceUserMapperImpl.Config config = mock(ServiceUserMapperImpl.Config.class);
+ when(config.user_mapping()).thenReturn(new String[] {
+ BUNDLE_SYMBOLIC1 + "=["+SAMPLE+"]", //
+ BUNDLE_SYMBOLIC1 + ":" + SUB + "=["+SAMPLE+"," + SAMPLE_SUB + "]"//
+ });
+ when(config.required_validators()).thenReturn(new String[]{"requiredId_1", "requiredId_2"});
+ when(config.require_validation()).thenReturn(false);
+
+ ServiceUserMapperImpl mapper = new ServiceUserMapperImpl(null, config);
+
+ // no required validator present
+ assertEqualPrincipalNames(mapper.getServicePrincipalNamesInternal(BUNDLE1, null), SAMPLE);
+ assertEqualPrincipalNames(mapper.getServicePrincipalNamesInternal(BUNDLE1, SUB), SAMPLE, SAMPLE_SUB);
+ }
+
+ @Test
+ public void test_getServicePrincipalNamesInternal_RequiredValidators_RequireValidation() {
+ ServiceUserMapperImpl.Config config = mock(ServiceUserMapperImpl.Config.class);
+ when(config.user_mapping()).thenReturn(new String[] {
+ BUNDLE_SYMBOLIC1 + "=["+SAMPLE+"]", //
+ BUNDLE_SYMBOLIC1 + ":" + SUB + "=["+SAMPLE+"," + SAMPLE_SUB + "]"//
+ });
+ when(config.required_validators()).thenReturn(new String[]{"requiredId_1", "requiredId_2"});
+ when(config.require_validation()).thenReturn(true);
+
+ ServiceUserMapperImpl mapper = new ServiceUserMapperImpl(null, config);
+ ServicePrincipalsValidator validator = (servicePrincipalNames, serviceName, subServiceName) -> true;
+
+ // no required validator present
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, null));
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, SUB));
+
+ // just one required validator present
+ mapper.bindServicePrincipalsValidator(validator, Collections.singletonMap(VALIDATOR_ID, "requiredId_1"));
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, null));
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, SUB));
+
+ // a non-required validator present in addition
+ mapper.bindServicePrincipalsValidator(validator, Collections.singletonMap(VALIDATOR_ID, "not_required"));
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, null));
+ assertNull(mapper.getServicePrincipalNamesInternal(BUNDLE1, SUB));
+
+ // all required validators present
+ mapper.bindServicePrincipalsValidator(validator, Collections.singletonMap(VALIDATOR_ID, "requiredId_2"));
+ assertEqualPrincipalNames(mapper.getServicePrincipalNamesInternal(BUNDLE1, null), SAMPLE);
+ assertEqualPrincipalNames(mapper.getServicePrincipalNamesInternal(BUNDLE1, SUB), SAMPLE, SAMPLE_SUB);
+ }
+
private static void assertEqualPrincipalNames(Iterable<String> result, String... expected) {
if (expected == null) {
assertNull(result);
@@ -437,12 +463,10 @@
assertFalse(result.iterator().hasNext());
} else {
Set<String> resultSet = new HashSet<>();
- Iterator<String> it = result.iterator();
- while (it.hasNext()) {
- resultSet.add(it.next());
+ for (String s : result) {
+ resultSet.add(s);
}
- Set<String> expectedSet = new HashSet<>();
- expectedSet.addAll(Arrays.asList(expected));
+ Set<String> expectedSet = new HashSet<>(Arrays.asList(expected));
assertEquals(expectedSet, resultSet);
}
}
@@ -484,12 +508,12 @@
mca2.configure(mca2Config);
sum.bindAmendment(mca2, mca2ConfigMap);
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
- TestCase.assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
- TestCase.assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
- TestCase.assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, null));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, null));
+ assertEquals(SAMPLE, sum.getServiceUserID(BUNDLE1, ""));
+ assertEquals(ANOTHER, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(SAMPLE_SUB, sum.getServiceUserID(BUNDLE1, SUB));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, SUB));
}
@Test
@@ -525,7 +549,7 @@
sum.bindAmendment(mca1, mca1ConfigMap);
sum.bindAmendment(mca2, mca2ConfigMap);
- TestCase.assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, ""));
+ assertEquals(ANOTHER_SUB, sum.getServiceUserID(BUNDLE2, ""));
}
@@ -544,18 +568,15 @@
ArgumentCaptor<Runnable> argument = ArgumentCaptor.forClass(Runnable.class);
final ExecutorService executor = mock(ExecutorService.class);
- when(executor.submit(argument.capture())).thenAnswer(new Answer<Future<Object>>() {
- @Override
- public Future<Object> answer(InvocationOnMock invocation) {
- argument.getValue().run();
- return null;
- }
+ when(executor.submit(argument.capture())).thenAnswer((Answer<Future<Object>>) invocation -> {
+ argument.getValue().run();
+ return null;
});
final ServiceRegistrationContextHelper context = new ServiceRegistrationContextHelper();
final ServiceUserMapperImpl sum = new ServiceUserMapperImpl(context.getBundleContext(), config, executor);
- TestCase.assertEquals(3, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
+ assertEquals(3, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
final MappingConfigAmendment mca1 = new MappingConfigAmendment();
@@ -570,7 +591,7 @@
mca1.configure(mca1Config);
sum.bindAmendment(mca1, mca1ConfigMap);
- TestCase.assertEquals(4, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
+ assertEquals(4, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
final MappingConfigAmendment mca2 = new MappingConfigAmendment();
@@ -585,15 +606,15 @@
mca2.configure(mca2Config);
sum.bindAmendment(mca2, mca2ConfigMap);
- TestCase.assertEquals(5, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
+ assertEquals(5, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
sum.unbindAmendment(mca1, mca1ConfigMap);
- TestCase.assertEquals(4, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
+ assertEquals(4, context.getRegistrations(ServiceUserMappedImpl.SERVICEUSERMAPPED).size());
}
- private class ServiceRegistrationContextHelper {
+ private static class ServiceRegistrationContextHelper {
final BundleContext bundleContext = mock(BundleContext.class);
@@ -602,13 +623,10 @@
public ServiceRegistrationContextHelper() {
when(bundleContext.registerService(any(String.class), any(Object.class), any(Dictionary.class)))
- .then(new Answer<ServiceRegistration>() {
- @Override
- public ServiceRegistration answer(InvocationOnMock invocationOnMock) throws Throwable {
+ .then((Answer<ServiceRegistration>) invocationOnMock -> {
- Object[] arguments = invocationOnMock.getArguments();
- return registerService((String) arguments[0], arguments[1], (Dictionary) arguments[2]);
- }
+ Object[] arguments = invocationOnMock.getArguments();
+ return registerService((String) arguments[0], arguments[1], (Dictionary) arguments[2]);
});
when(bundleContext.getBundle()).thenReturn(bundle);
when(bundle.getSymbolicName()).thenReturn("mock");
@@ -616,7 +634,7 @@
private ServiceRegistration registerService(String string, Object o, Dictionary dictionary) {
if (!registrations.containsKey(string)) {
- registrations.put(string, new HashMap<Object, Dictionary>());
+ registrations.put(string, new HashMap<>());
}
final Map<Object, Dictionary> serviceRegistrations = registrations.get(string);
serviceRegistrations.put(o, dictionary);