diff --git a/pom.xml b/pom.xml
index dc30e98..d588e6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -198,6 +198,12 @@
3.5.4
test
+
+ org.apache.sling
+ org.apache.sling.testing.osgi-mock.junit5
+ 3.5.4
+ test
+
org.mockito
mockito-core
diff --git a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
index ee89543..a38efbc 100644
--- a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
+++ b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactoryTest.java
@@ -34,32 +34,32 @@
import org.apache.sling.models.testutil.ModelAdapterFactoryUtil;
import org.apache.sling.scripting.api.BindingsValuesProvidersByContext;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.sling.testing.mock.osgi.junit5.OsgiContextExtension;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.when;
/**
*
*/
-@RunWith(MockitoJUnitRunner.class)
-public class ModelAdapterFactoryTest {
+@ExtendWith({OsgiContextExtension.class, MockitoExtension.class})
+class ModelAdapterFactoryTest {
- @Rule
- public final OsgiContext context = new OsgiContext();
+ final OsgiContext context = new OsgiContext();
@Mock
private AdapterManager adapterManager;
@@ -87,9 +87,9 @@ public class ModelAdapterFactoryTest {
private ModelAdapterFactory factory;
@SuppressWarnings("deprecation")
- @Before
- public void setUp() {
- when(resourceResolver.getSearchPath()).thenReturn(new String[] {"/apps/", "/libs/"});
+ @BeforeEach
+ void setUp() {
+ lenient().when(resourceResolver.getSearchPath()).thenReturn(new String[] {"/apps/", "/libs/"});
context.registerService(BindingsValuesProvidersByContext.class, bindingsValuesProvidersByContext);
context.registerService(AdapterManager.class, adapterManager);
@@ -97,10 +97,10 @@ public void setUp() {
ModelAdapterFactoryUtil.addModelsForPackage(context.bundleContext(), JakartaModel1.class, JavaxModel2.class);
- Mockito.when(resource.getResourceType()).thenReturn("nt:unstructured");
- Mockito.when(resource.getResourceResolver()).thenReturn(resourceResolver);
- Mockito.when(jakartaRequest.getResource()).thenReturn(resource);
- Mockito.when(javaxRequest.getResource()).thenReturn(resource);
+ lenient().when(resource.getResourceType()).thenReturn("nt:unstructured");
+ lenient().when(resource.getResourceResolver()).thenReturn(resourceResolver);
+ lenient().when(jakartaRequest.getResource()).thenReturn(resource);
+ lenient().when(javaxRequest.getResource()).thenReturn(resource);
}
protected void registerModel(final Class> adaptableType, final Class> clazz) {
@@ -114,7 +114,7 @@ protected void registerModel(final Class> adaptableType, final Class> clazz)
*/
@Deprecated(since = "2.0.0")
@Test
- public void testCreateModelFromWrappedRequestSlingHttpServletRequestResourceClassOfT() {
+ void testCreateModelFromWrappedRequestSlingHttpServletRequestResourceClassOfT() {
assertNotNull(factory.createModelFromWrappedRequest(javaxRequest, resource, JavaxModel2.class));
}
@@ -122,7 +122,7 @@ public void testCreateModelFromWrappedRequestSlingHttpServletRequestResourceClas
* Test method for {@link org.apache.sling.models.impl.ModelAdapterFactory#createModelFromWrappedRequest(org.apache.sling.api.SlingJakartaHttpServletRequest, org.apache.sling.api.resource.Resource, java.lang.Class)}.
*/
@Test
- public void testCreateModelFromWrappedRequestSlingJakartaHttpServletRequestResourceClassOfT() {
+ void testCreateModelFromWrappedRequestSlingJakartaHttpServletRequestResourceClassOfT() {
assertNotNull(factory.createModelFromWrappedRequest(jakartaRequest, resource, JakartaModel1.class));
}
@@ -132,7 +132,7 @@ public void testCreateModelFromWrappedRequestSlingJakartaHttpServletRequestResou
*/
@Deprecated(since = "2.0.0")
@Test
- public void testIsModelClassObjectClassOfQ() {
+ void testIsModelClassObjectClassOfQ() {
assertTrue(factory.isModelClass(jakartaRequest, JakartaModel1.class));
assertTrue(factory.isModelClass(jakartaRequest, JavaxModel2.class));
assertFalse(factory.isModelClass(jakartaRequest, Object.class));
@@ -143,7 +143,7 @@ public void testIsModelClassObjectClassOfQ() {
*/
@SuppressWarnings("deprecation")
@Test
- public void testIsModelClassClassOfQ() {
+ void testIsModelClassClassOfQ() {
assertTrue(factory.isModelClass(JakartaModel1.class));
assertTrue(factory.isModelClass(JavaxModel2.class));
assertFalse(factory.isModelClass(Object.class));
@@ -155,7 +155,7 @@ public void testIsModelClassClassOfQ() {
*/
@Deprecated(since = "2.0.0")
@Test
- public void testIsModelAvailableForRequestSlingHttpServletRequest() {
+ void testIsModelAvailableForRequestSlingHttpServletRequest() {
assertFalse(factory.isModelAvailableForRequest(javaxRequest));
registerModel(org.apache.sling.api.SlingHttpServletRequest.class, JavaxModel2.class);
@@ -167,7 +167,7 @@ public void testIsModelAvailableForRequestSlingHttpServletRequest() {
* Test method for {@link org.apache.sling.models.impl.ModelAdapterFactory#isModelAvailableForRequest(org.apache.sling.api.SlingJakartaHttpServletRequest)}.
*/
@Test
- public void testIsModelAvailableForRequestSlingJakartaHttpServletRequest() {
+ void testIsModelAvailableForRequestSlingJakartaHttpServletRequest() {
assertFalse(factory.isModelAvailableForRequest(jakartaRequest));
registerModel(SlingJakartaHttpServletRequest.class, JakartaModel1.class);
@@ -179,7 +179,7 @@ public void testIsModelAvailableForRequestSlingJakartaHttpServletRequest() {
* Test method for {@link org.apache.sling.models.impl.ModelAdapterFactory#getModelFromResource(org.apache.sling.api.resource.Resource)}.
*/
@Test
- public void testGetModelFromResource() {
+ void testGetModelFromResource() {
assertThrows(ModelClassException.class, () -> factory.getModelFromResource(resource));
registerModel(Resource.class, JakartaModel1.class);
@@ -195,7 +195,7 @@ public void testGetModelFromResource() {
@SuppressWarnings("deprecation")
@Deprecated(since = "2.0.0")
@Test
- public void testGetModelFromRequestSlingHttpServletRequest() {
+ void testGetModelFromRequestSlingHttpServletRequest() {
assertThrows(ModelClassException.class, () -> factory.getModelFromRequest(javaxRequest));
registerModel(org.apache.sling.api.SlingHttpServletRequest.class, JavaxModel2.class);
@@ -208,7 +208,7 @@ public void testGetModelFromRequestSlingHttpServletRequest() {
* Test method for {@link org.apache.sling.models.impl.ModelAdapterFactory#getModelFromRequest(org.apache.sling.api.SlingJakartaHttpServletRequest)}.
*/
@Test
- public void testGetModelFromRequestSlingJakartaHttpServletRequest() {
+ void testGetModelFromRequestSlingJakartaHttpServletRequest() {
assertThrows(ModelClassException.class, () -> factory.getModelFromRequest(jakartaRequest));
registerModel(SlingJakartaHttpServletRequest.class, JakartaModel1.class);
@@ -224,7 +224,7 @@ public void testGetModelFromRequestSlingJakartaHttpServletRequest() {
@Deprecated(since = "2.0.0")
@SuppressWarnings({"unchecked", "deprecation"})
@Test
- public void testExportModelForRequestSlingHttpServletRequestStringClassOfTMapOfStringString()
+ void testExportModelForRequestSlingHttpServletRequestStringClassOfTMapOfStringString()
throws ExportException, MissingExporterException {
Map options = Map.of();
assertThrows(
@@ -232,9 +232,9 @@ public void testExportModelForRequestSlingHttpServletRequestStringClassOfTMapOfS
() -> factory.exportModelForRequest(javaxRequest, "exporter1", JavaxModel2.class, options));
ModelExporter mockExporter = context.registerService(ModelExporter.class, Mockito.mock(ModelExporter.class));
- Mockito.when(mockExporter.getName()).thenReturn("exporter1");
- Mockito.when(mockExporter.isSupported(JavaxModel2.class)).thenReturn(true);
- Mockito.when(mockExporter.export(any(), any(Class.class), anyMap())).thenAnswer(invocation -> {
+ when(mockExporter.getName()).thenReturn("exporter1");
+ when(mockExporter.isSupported(JavaxModel2.class)).thenReturn(true);
+ when(mockExporter.export(any(), any(Class.class), anyMap())).thenAnswer(invocation -> {
return invocation.getArgument(0, JavaxModel2.class);
});
@@ -250,7 +250,7 @@ public void testExportModelForRequestSlingHttpServletRequestStringClassOfTMapOfS
*/
@SuppressWarnings("unchecked")
@Test
- public void testExportModelForRequestSlingJakartaHttpServletRequestStringClassOfTMapOfStringString()
+ void testExportModelForRequestSlingJakartaHttpServletRequestStringClassOfTMapOfStringString()
throws ExportException, MissingExporterException {
Map options = Map.of();
assertThrows(
@@ -258,9 +258,9 @@ public void testExportModelForRequestSlingJakartaHttpServletRequestStringClassOf
() -> factory.exportModelForRequest(jakartaRequest, "exporter1", JakartaModel1.class, options));
ModelExporter mockExporter = context.registerService(ModelExporter.class, Mockito.mock(ModelExporter.class));
- Mockito.when(mockExporter.getName()).thenReturn("exporter1");
- Mockito.when(mockExporter.isSupported(JakartaModel1.class)).thenReturn(true);
- Mockito.when(mockExporter.export(any(), any(Class.class), anyMap())).thenAnswer(invocation -> {
+ when(mockExporter.getName()).thenReturn("exporter1");
+ when(mockExporter.isSupported(JakartaModel1.class)).thenReturn(true);
+ when(mockExporter.export(any(), any(Class.class), anyMap())).thenAnswer(invocation -> {
return invocation.getArgument(0, JakartaModel1.class);
});
@@ -277,7 +277,7 @@ public void testExportModelForRequestSlingJakartaHttpServletRequestStringClassOf
*/
@Deprecated(since = "2.0.0")
@Test
- public void testGetModelFromWrappedRequestSlingHttpServletRequestResourceClassOfT() {
+ void testGetModelFromWrappedRequestSlingHttpServletRequestResourceClassOfT() {
JavaxModel2 modelFromWrappedRequest =
factory.getModelFromWrappedRequest(javaxRequest, resource, JavaxModel2.class);
assertNull(modelFromWrappedRequest);
@@ -296,7 +296,7 @@ public void testGetModelFromWrappedRequestSlingHttpServletRequestResourceClassOf
* Test method for {@link org.apache.sling.models.impl.ModelAdapterFactory#getModelFromWrappedRequest(org.apache.sling.api.SlingJakartaHttpServletRequest, org.apache.sling.api.resource.Resource, java.lang.Class)}.
*/
@Test
- public void testGetModelFromWrappedRequestSlingJakartaHttpServletRequestResourceClassOfT() {
+ void testGetModelFromWrappedRequestSlingJakartaHttpServletRequestResourceClassOfT() {
assertNotNull(factory.createModelFromWrappedRequest(jakartaRequest, resource, JakartaModel1.class));
JakartaModel1 target = new JakartaModel1();
diff --git a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
index 3bdac2d..991aca1 100644
--- a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
+++ b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_ImplementationPickerOrderTest.java
@@ -27,13 +27,13 @@
import org.apache.sling.models.testutil.ModelAdapterFactoryUtil;
import org.apache.sling.scripting.api.BindingsValuesProvidersByContext;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
+import org.apache.sling.testing.mock.osgi.junit5.OsgiContextExtension;
import org.jetbrains.annotations.NotNull;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.Assert.assertEquals;
import static org.osgi.framework.Constants.SERVICE_RANKING;
@@ -42,11 +42,10 @@
* Tests in which order the implementation pickers are handled depending on service ranking.
* For historic/backwards compatibility reasons, higher ranking value means lower priority (inverse to DS behavior).
*/
-@RunWith(MockitoJUnitRunner.class)
-public class ModelAdapterFactory_ImplementationPickerOrderTest {
+@ExtendWith({OsgiContextExtension.class, MockitoExtension.class})
+class ModelAdapterFactory_ImplementationPickerOrderTest {
- @Rule
- public final OsgiContext context = new OsgiContext();
+ final OsgiContext context = new OsgiContext();
@Mock
private AdapterManager adapterManager;
@@ -59,8 +58,8 @@ public class ModelAdapterFactory_ImplementationPickerOrderTest {
private ModelAdapterFactory factory;
- @Before
- public void setUp() {
+ @BeforeEach
+ void setUp() {
context.registerService(BindingsValuesProvidersByContext.class, bindingsValuesProvidersByContext);
context.registerService(AdapterManager.class, adapterManager);
factory = context.registerInjectActivateService(ModelAdapterFactory.class);
@@ -69,7 +68,7 @@ public void setUp() {
}
@Test
- public void testFirstImplementationPicker() {
+ void testFirstImplementationPicker() {
context.registerService(
ImplementationPicker.class, new FirstImplementationPicker(), SERVICE_RANKING, Integer.MAX_VALUE);
@@ -78,7 +77,7 @@ public void testFirstImplementationPicker() {
}
@Test
- public void testMultipleImplementationPickers() {
+ void testMultipleImplementationPickers() {
// LastImplementationPicker has higher priority
context.registerService(
ImplementationPicker.class, new FirstImplementationPicker(), SERVICE_RANKING, Integer.MAX_VALUE);
diff --git a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
index 6e3321a..5494bef 100644
--- a/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
+++ b/src/test/java/org/apache/sling/models/impl/ModelAdapterFactory_InjectorOrderTest.java
@@ -33,27 +33,26 @@
import org.apache.sling.models.spi.Injector;
import org.apache.sling.models.testutil.ModelAdapterFactoryUtil;
import org.apache.sling.scripting.api.BindingsValuesProvidersByContext;
-import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.sling.testing.mock.osgi.junit5.OsgiContext;
+import org.apache.sling.testing.mock.osgi.junit5.OsgiContextExtension;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.when;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.lenient;
import static org.osgi.framework.Constants.SERVICE_RANKING;
/**
* Tests in which order the injectors are handled depending on service ranking.
* For historic/backwards compatibility reasons, higher ranking value means lower priority (inverse to DS behavior).
*/
-@RunWith(MockitoJUnitRunner.class)
-public class ModelAdapterFactory_InjectorOrderTest {
+@ExtendWith({OsgiContextExtension.class, MockitoExtension.class})
+class ModelAdapterFactory_InjectorOrderTest {
- @Rule
- public final OsgiContext context = new OsgiContext();
+ final OsgiContext context = new OsgiContext();
@Mock
private AdapterManager adapterManager;
@@ -70,21 +69,21 @@ public class ModelAdapterFactory_InjectorOrderTest {
private ModelAdapterFactory factory;
@SuppressWarnings("null")
- @Before
- public void setUp() {
+ @BeforeEach
+ void setUp() {
context.registerService(BindingsValuesProvidersByContext.class, bindingsValuesProvidersByContext);
context.registerService(AdapterManager.class, adapterManager);
factory = context.registerInjectActivateService(ModelAdapterFactory.class);
ModelAdapterFactoryUtil.addModelsForPackage(context.bundleContext(), TestModel.class);
- when(request.getResource()).thenReturn(resource);
- when(resource.adaptTo(ValueMap.class)).thenReturn(new ValueMapDecorator(Map.of("prop1", 1)));
- when(request.getAttribute("prop1")).thenReturn(2);
+ lenient().when(request.getResource()).thenReturn(resource);
+ lenient().when(resource.adaptTo(ValueMap.class)).thenReturn(new ValueMapDecorator(Map.of("prop1", 1)));
+ lenient().when(request.getAttribute("prop1")).thenReturn(2);
}
@Test
- public void testSingleInjector_ValueMap() {
+ void testSingleInjector_ValueMap() {
context.registerService(Injector.class, new ValueMapInjector(), SERVICE_RANKING, 2000);
TestModel model = factory.createModel(request, TestModel.class);
@@ -92,7 +91,7 @@ public void testSingleInjector_ValueMap() {
}
@Test
- public void testSingleInjector_RequestAttribute() {
+ void testSingleInjector_RequestAttribute() {
context.registerService(Injector.class, new RequestAttributeInjector(), SERVICE_RANKING, 4000);
TestModel model = factory.createModel(request, TestModel.class);
@@ -100,7 +99,7 @@ public void testSingleInjector_RequestAttribute() {
}
@Test
- public void testMultipleInjectors() {
+ void testMultipleInjectors() {
// ValueMapInjector has higher priority
context.registerService(Injector.class, new RequestAttributeInjector(), SERVICE_RANKING, 4000);
context.registerService(Injector.class, new ValueMapInjector(), SERVICE_RANKING, 2000);
diff --git a/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java b/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
index 3f340fc..56449a1 100644
--- a/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
+++ b/src/test/java/org/apache/sling/models/impl/ModelPackageBundleListenerTest.java
@@ -26,21 +26,24 @@
import org.apache.sling.models.testmodels.classes.ChildModel;
import org.apache.sling.models.testmodels.classes.SimpleModelWithInvalidSecondAnnotation;
import org.apache.sling.models.testmodels.classes.annotations.Hidden;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.stubbing.Answer;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
import org.springframework.core.OverridingClassLoader;
-@RunWith(MockitoJUnitRunner.class)
-public class ModelPackageBundleListenerTest {
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+class ModelPackageBundleListenerTest {
@Mock
private BundleContext mockBundleContext;
@@ -79,25 +82,25 @@ protected Class> loadClassForOverriding(String name) throws ClassNotFoundExcep
}
@Test
- public void testAddingBundleWithResolvableModelAnnotation() throws ClassNotFoundException {
- Assert.assertFalse(
- "Model should not yet have been registered but was",
- adapterImplementations.isModelClass(ChildModel.class));
+ void testAddingBundleWithResolvableModelAnnotation() throws ClassNotFoundException {
+ assertFalse(
+ adapterImplementations.isModelClass(ChildModel.class),
+ "Model should not yet have been registered but was");
ModelPackageBundleListener listener = createListenerForBundleWithClass(ChildModel.class);
listener.addingBundle(mockBundle, new BundleEvent(BundleEvent.STARTED, mockBundle));
- Assert.assertTrue(
- "Model should have been registered but was not", adapterImplementations.isModelClass(ChildModel.class));
+ assertTrue(
+ adapterImplementations.isModelClass(ChildModel.class), "Model should have been registered but was not");
}
@Test
- public void testAddingBundleWithNonResolvableNonModelAnnotation() throws ClassNotFoundException {
+ void testAddingBundleWithNonResolvableNonModelAnnotation() throws ClassNotFoundException {
ClassLoader classLoader = new HideClassesClassLoader(this.getClass().getClassLoader(), Hidden.class.getName());
ModelPackageBundleListener listener =
createListenerForBundleWithClass(classLoader, SimpleModelWithInvalidSecondAnnotation.class.getName());
listener.addingBundle(mockBundle, new BundleEvent(BundleEvent.STARTED, mockBundle));
- Assert.assertFalse(
- "Model should not yet have been registered but was",
- adapterImplementations.isModelClass(SimpleModelWithInvalidSecondAnnotation.class));
+ assertFalse(
+ adapterImplementations.isModelClass(SimpleModelWithInvalidSecondAnnotation.class),
+ "Model should not yet have been registered but was");
}
private ModelPackageBundleListener createListenerForBundleWithClass(Class> modelClass)
@@ -109,8 +112,8 @@ private ModelPackageBundleListener createListenerForBundleWithClass(ClassLoader
throws ClassNotFoundException {
Dictionary headers = new Hashtable<>();
headers.put(ModelPackageBundleListener.CLASSES_HEADER, className);
- Mockito.when(mockBundle.getHeaders()).thenReturn(headers);
- Mockito.when(mockBundle.loadClass(Mockito.anyString())).thenAnswer(new Answer>() {
+ when(mockBundle.getHeaders()).thenReturn(headers);
+ when(mockBundle.loadClass(anyString())).thenAnswer(new Answer>() {
@Override
public Class> answer(InvocationOnMock invocation) throws Throwable {
Object argument = invocation.getArguments()[0];
diff --git a/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java b/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
index adff2b6..8dac5fc 100644
--- a/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
+++ b/src/test/java/org/apache/sling/models/impl/MultipleInjectorTest.java
@@ -29,21 +29,21 @@
import org.apache.sling.models.factory.ModelClassException;
import org.apache.sling.models.impl.injectors.BindingsInjector;
import org.apache.sling.models.impl.injectors.RequestAttributeInjector;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.Mockito.lenient;
-import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
-public class MultipleInjectorTest {
+@ExtendWith(MockitoExtension.class)
+class MultipleInjectorTest {
@Spy
private BindingsInjector bindingsInjector;
@@ -58,8 +58,8 @@ public class MultipleInjectorTest {
private SlingBindings bindings;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
bindings = new SlingBindings();
factory = AdapterFactoryTest.createModelAdapterFactory();
@@ -67,13 +67,13 @@ public void setup() {
factory.injectors = Arrays.asList(bindingsInjector, attributesInjector);
factory.bindStaticInjectAnnotationProcessorFactory(bindingsInjector, new ServicePropertiesMap(1, 1));
- when(request.getAttribute(SlingBindings.class.getName())).thenReturn(bindings);
+ lenient().when(request.getAttribute(SlingBindings.class.getName())).thenReturn(bindings);
factory.adapterImplementations.addClassesAsAdapterAndImplementation(
ForTwoInjectorsWithSource.class, ForTwoInjectors.class, ForTwoInjectorsWithInvalidSource.class);
}
@Test
- public void testInjectorOrder() {
+ void testInjectorOrder() {
String bindingsValue = "bindings value";
bindings.put("firstAttribute", bindingsValue);
@@ -87,12 +87,12 @@ public void testInjectorOrder() {
}
@Test
- public void testInjectorOrderWithSource() {
+ void testInjectorOrderWithSource() {
String bindingsValue = "bindings value";
bindings.put("firstAttribute", bindingsValue);
String attributeValue = "attribute value";
- when(request.getAttribute("firstAttribute")).thenReturn(attributeValue);
+ lenient().when(request.getAttribute("firstAttribute")).thenReturn(attributeValue);
ForTwoInjectorsWithSource obj = factory.getAdapter(request, ForTwoInjectorsWithSource.class);
@@ -101,14 +101,15 @@ public void testInjectorOrderWithSource() {
}
@Test
- public void testInjectorWithInvalidSource() {
+ void testInjectorWithInvalidSource() {
ForTwoInjectorsWithInvalidSource obj = factory.getAdapter(request, ForTwoInjectorsWithInvalidSource.class);
assertNull(obj);
}
- @Test(expected = ModelClassException.class)
- public void testInjectorWithInvalidSourceWithException() {
- factory.createModel(request, ForTwoInjectorsWithInvalidSource.class);
+ @Test
+ void testInjectorWithInvalidSourceWithException() {
+ assertThrows(
+ ModelClassException.class, () -> factory.createModel(request, ForTwoInjectorsWithInvalidSource.class));
}
@Model(adaptables = SlingJakartaHttpServletRequest.class)
diff --git a/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java b/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
index a0fc22f..4f2b62e 100644
--- a/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
+++ b/src/test/java/org/apache/sling/models/impl/OSGiInjectionTest.java
@@ -36,29 +36,30 @@
import org.apache.sling.models.testmodels.classes.SimpleOSGiModel;
import org.apache.sling.models.testmodels.interfaces.ServiceInterface;
import org.hamcrest.Matchers;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleListener;
import org.osgi.framework.ServiceReference;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
-public class OSGiInjectionTest {
+@ExtendWith(MockitoExtension.class)
+class OSGiInjectionTest {
private ModelAdapterFactory factory;
@Mock
@@ -69,8 +70,8 @@ public class OSGiInjectionTest {
private SlingBindings bindings = new SlingBindings();
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
factory = AdapterFactoryTest.createModelAdapterFactory(bundleContext);
OSGiServiceInjector injectorFactory = new OSGiServiceInjector();
@@ -92,13 +93,13 @@ public void setup() {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testSimpleOSGiModelField() throws Exception {
- ServiceReference ref = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testSimpleOSGiModelField() throws Exception {
+ ServiceReference> ref = mock(ServiceReference.class);
ServiceInterface service = mock(ServiceInterface.class);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref});
- when(bundleContext.getService(ref)).thenReturn(service);
+ doReturn(service).when(bundleContext).getService(ref);
Resource res = mock(Resource.class);
@@ -111,14 +112,14 @@ public void testSimpleOSGiModelField() throws Exception {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testListOSGiModelField() throws Exception {
- ServiceReference ref1 = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testListOSGiModelField() throws Exception {
+ ServiceReference> ref1 = mock(ServiceReference.class);
ServiceInterface service1 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref1)).thenReturn(service1);
- ServiceReference ref2 = mock(ServiceReference.class);
+ doReturn(service1).when(bundleContext).getService(ref1);
+ ServiceReference> ref2 = mock(ServiceReference.class);
ServiceInterface service2 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref2)).thenReturn(service2);
+ doReturn(service2).when(bundleContext).getService(ref2);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref1, ref2});
@@ -136,14 +137,14 @@ public void testListOSGiModelField() throws Exception {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testArrayOSGiModelField() throws Exception {
- ServiceReference ref1 = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testArrayOSGiModelField() throws Exception {
+ ServiceReference> ref1 = mock(ServiceReference.class);
ServiceInterface service1 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref1)).thenReturn(service1);
- ServiceReference ref2 = mock(ServiceReference.class);
+ doReturn(service1).when(bundleContext).getService(ref1);
+ ServiceReference> ref2 = mock(ServiceReference.class);
ServiceInterface service2 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref2)).thenReturn(service2);
+ doReturn(service2).when(bundleContext).getService(ref2);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref1, ref2});
@@ -162,7 +163,7 @@ public void testArrayOSGiModelField() throws Exception {
@Test
@SuppressWarnings("null")
- public void testOptionalArrayOSGiModelField() throws Exception {
+ void testOptionalArrayOSGiModelField() {
Resource res = mock(Resource.class);
@@ -175,7 +176,7 @@ public void testOptionalArrayOSGiModelField() throws Exception {
@Test
@SuppressWarnings("null")
- public void testOptionalListOSGiModelField() throws Exception {
+ void testOptionalListOSGiModelField() {
Resource res = mock(Resource.class);
OptionalListOSGiModel model = factory.getAdapter(res, OptionalListOSGiModel.class);
@@ -186,14 +187,14 @@ public void testOptionalListOSGiModelField() throws Exception {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testCollectionOSGiModelField() throws Exception {
- ServiceReference ref1 = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testCollectionOSGiModelField() throws Exception {
+ ServiceReference> ref1 = mock(ServiceReference.class);
ServiceInterface service1 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref1)).thenReturn(service1);
- ServiceReference ref2 = mock(ServiceReference.class);
+ doReturn(service1).when(bundleContext).getService(ref1);
+ ServiceReference> ref2 = mock(ServiceReference.class);
ServiceInterface service2 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref2)).thenReturn(service2);
+ doReturn(service2).when(bundleContext).getService(ref2);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref1, ref2});
@@ -211,14 +212,14 @@ public void testCollectionOSGiModelField() throws Exception {
}
@Test
- @SuppressWarnings({"unused", "unchecked", "null"})
- public void testSetOSGiModelField() throws Exception {
- ServiceReference ref1 = mock(ServiceReference.class);
+ @SuppressWarnings({"unused", "null"})
+ void testSetOSGiModelField() throws Exception {
+ ServiceReference> ref1 = mock(ServiceReference.class);
ServiceInterface service1 = mock(ServiceInterface.class);
- lenient().when(bundleContext.getService(ref1)).thenReturn(service1);
- ServiceReference ref2 = mock(ServiceReference.class);
+ lenient().doReturn(service1).when(bundleContext).getService(ref1);
+ ServiceReference> ref2 = mock(ServiceReference.class);
ServiceInterface service2 = mock(ServiceInterface.class);
- lenient().when(bundleContext.getService(ref2)).thenReturn(service2);
+ lenient().doReturn(service2).when(bundleContext).getService(ref2);
lenient()
.when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
@@ -238,13 +239,13 @@ public void testSetOSGiModelField() throws Exception {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testSimpleOSGiModelConstructor() throws Exception {
- ServiceReference ref = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testSimpleOSGiModelConstructor() throws Exception {
+ ServiceReference> ref = mock(ServiceReference.class);
ServiceInterface service = mock(ServiceInterface.class);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref});
- when(bundleContext.getService(ref)).thenReturn(service);
+ doReturn(service).when(bundleContext).getService(ref);
Resource res = mock(Resource.class);
@@ -258,14 +259,14 @@ public void testSimpleOSGiModelConstructor() throws Exception {
}
@Test
- @SuppressWarnings({"unchecked", "null"})
- public void testListOSGiModelConstructor() throws Exception {
- ServiceReference ref1 = mock(ServiceReference.class);
+ @SuppressWarnings({"null"})
+ void testListOSGiModelConstructor() throws Exception {
+ ServiceReference> ref1 = mock(ServiceReference.class);
ServiceInterface service1 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref1)).thenReturn(service1);
- ServiceReference ref2 = mock(ServiceReference.class);
+ doReturn(service1).when(bundleContext).getService(ref1);
+ ServiceReference> ref2 = mock(ServiceReference.class);
ServiceInterface service2 = mock(ServiceInterface.class);
- when(bundleContext.getService(ref2)).thenReturn(service2);
+ doReturn(service2).when(bundleContext).getService(ref2);
when(bundleContext.getServiceReferences(ServiceInterface.class.getName(), null))
.thenReturn(new ServiceReference[] {ref1, ref2});
diff --git a/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java b/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
index 541315d..678a2c4 100644
--- a/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
+++ b/src/test/java/org/apache/sling/models/impl/OptionalObjectsTest.java
@@ -31,24 +31,26 @@
import org.apache.sling.models.spi.injectorspecific.InjectAnnotationProcessorFactory;
import org.apache.sling.models.spi.injectorspecific.InjectAnnotationProcessorFactory2;
import org.apache.sling.models.testmodels.classes.OptionalObjectsModel;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
-import static org.junit.Assert.*;
-import static org.mockito.ArgumentMatchers.eq;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
-public class OptionalObjectsTest {
+@ExtendWith(MockitoExtension.class)
+class OptionalObjectsTest {
private ModelAdapterFactory factory;
@@ -63,8 +65,8 @@ public class OptionalObjectsTest {
@Mock
private Logger log;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
factory = AdapterFactoryTest.createModelAdapterFactory();
osgiInjector = new OSGiServiceInjector();
@@ -89,13 +91,13 @@ public void setup() {
SlingBindings bindings = new SlingBindings();
bindings.setLog(log);
- Mockito.when(request.getAttribute(SlingBindings.class.getName())).thenReturn(bindings);
+ lenient().when(request.getAttribute(SlingBindings.class.getName())).thenReturn(bindings);
factory.adapterImplementations.addClassesAsAdapterAndImplementation(OptionalObjectsModel.class);
}
@Test
- public void testFieldInjectionClass() {
+ void testFieldInjectionClass() {
Map map = new HashMap<>();
map.put("optionalString", "foo bar baz");
map.put("optionalByte", Byte.valueOf("1"));
@@ -147,7 +149,7 @@ public void testFieldInjectionClass() {
}
@Test
- public void testFieldInjectionListsAndArrays() {
+ void testFieldInjectionListsAndArrays() {
Map map = new HashMap<>();
map.put("intList", new Integer[] {1, 2, 9, 8});
@@ -178,11 +180,11 @@ public void testFieldInjectionListsAndArrays() {
}
@Test
- public void testFieldInjectionsChildResource() throws Exception {
+ void testFieldInjectionsChildResource() {
Resource res = mock(Resource.class);
Resource child = mock(Resource.class);
- when(child.getName()).thenReturn("child");
- when(res.getChild(eq("child"))).thenReturn(child);
+ lenient().when(child.getName()).thenReturn("child");
+ lenient().when(res.getChild("child")).thenReturn(child);
OptionalObjectsModel model = factory.getAdapter(res, OptionalObjectsModel.class);
assertNotNull(model);
@@ -192,7 +194,7 @@ public void testFieldInjectionsChildResource() throws Exception {
}
@Test
- public void testFieldInjectionsScriptVariable() throws Exception {
+ void testFieldInjectionsScriptVariable() {
SlingBindings bindings = new SlingBindings();
SlingScriptHelper helper = mock(SlingScriptHelper.class);
bindings.setSling(helper);
@@ -205,21 +207,24 @@ public void testFieldInjectionsScriptVariable() throws Exception {
}
@Test
- public void testFieldInjectionsOSGiService() throws InvalidSyntaxException {
- ServiceReference ref = mock(ServiceReference.class);
- Logger log = mock(Logger.class);
- when(bundleContext.getServiceReferences(Logger.class.getName(), null)).thenReturn(new ServiceReference[] {ref});
- when(bundleContext.getService(ref)).thenReturn(log);
+ void testFieldInjectionsOSGiService() throws InvalidSyntaxException {
+ ServiceReference> ref = mock(ServiceReference.class);
+ Logger logger = mock(Logger.class);
+ lenient()
+ .when(bundleContext.getServiceReferences(Logger.class.getName(), null))
+ .thenReturn(new ServiceReference[] {ref});
+
+ doReturn(logger).when(bundleContext).getService(ref);
OptionalObjectsModel model = factory.getAdapter(request, OptionalObjectsModel.class);
assertNotNull(model);
- assertEquals(log, model.getLog().get());
+ assertEquals(logger, model.getLog().get());
}
@Test
- public void testFieldInjectionsRequestAttribute() throws InvalidSyntaxException {
+ void testFieldInjectionsRequestAttribute() {
Object attribute = new Object();
- when(request.getAttribute("attribute")).thenReturn(attribute);
+ lenient().when(request.getAttribute("attribute")).thenReturn(attribute);
OptionalObjectsModel model = factory.getAdapter(request, OptionalObjectsModel.class);
assertNotNull(model);
diff --git a/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java b/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
index 32bdfd6..ca8ae09 100644
--- a/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
+++ b/src/test/java/org/apache/sling/models/impl/OptionalPrimitivesTest.java
@@ -24,14 +24,14 @@
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.models.impl.injectors.ChildResourceInjector;
import org.apache.sling.models.impl.injectors.ValueMapInjector;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -39,13 +39,13 @@
/**
* Validates that @Optional annotations works with primitive values which do not support null
*/
-@RunWith(MockitoJUnitRunner.class)
-public class OptionalPrimitivesTest {
+@ExtendWith(MockitoExtension.class)
+class OptionalPrimitivesTest {
private ModelAdapterFactory factory;
- @Before
- public void setup() {
+ @BeforeEach
+ void setup() {
factory = AdapterFactoryTest.createModelAdapterFactory();
factory.injectors = Arrays.asList(new ChildResourceInjector(), new ValueMapInjector());
factory.adapterImplementations.addClassesAsAdapterAndImplementation(
@@ -55,7 +55,7 @@ public void setup() {
}
@Test
- public void testFieldInjectionClass() {
+ void testFieldInjectionClass() {
ValueMap vm = ValueMap.EMPTY;
Resource res = mock(Resource.class);
@@ -87,7 +87,7 @@ public void testFieldInjectionClass() {
}
@Test
- public void testConstructorInjection() {
+ void testConstructorInjection() {
ValueMap vm = ValueMap.EMPTY;
Resource res = mock(Resource.class);
@@ -121,7 +121,7 @@ public void testConstructorInjection() {
}
@Test
- public void testFieldInjectionInterface() {
+ void testFieldInjectionInterface() {
ValueMap vm = ValueMap.EMPTY;
Resource res = mock(Resource.class);