I have an activate method in service implementation class that is using OSGI configuration. I am looking for how to write Junit5 Test Cases for Activate method.
Solved! Go to Solution.
Views
Replies
Total Likes
As pointed out by @Jörg_Hoh , there's an even better way of doing it!
Create a map with the properties you want to pass to your service
Map<String,Object> parameters = new HashMap<>();
parameters.put("my_property","my property");
You can then pass this to your context with the registerInjectActivateService method:
context.registerInjectActivateService(myService, parameters);
_____________________________________
Original answer:
What you can do is create a mock-implementation of your OSGI configuration interface.
private static class MockConfig implements MyService.Configuration {
public String my_property() {
return "my property";
}
public Class<? extends Annotation> annotationType() {
throw new NotImplementedException();
}
}
You can then pass this to your unit test, so you can test that whatever needs to happen, happens:
void test_activate() throws Exception{
myService.activate(new MockConfig());
assertEquals("my property", myService.getMyProperty());
}
As pointed out by @Jörg_Hoh , there's an even better way of doing it!
Create a map with the properties you want to pass to your service
Map<String,Object> parameters = new HashMap<>();
parameters.put("my_property","my property");
You can then pass this to your context with the registerInjectActivateService method:
context.registerInjectActivateService(myService, parameters);
_____________________________________
Original answer:
What you can do is create a mock-implementation of your OSGI configuration interface.
private static class MockConfig implements MyService.Configuration {
public String my_property() {
return "my property";
}
public Class<? extends Annotation> annotationType() {
throw new NotImplementedException();
}
}
You can then pass this to your unit test, so you can test that whatever needs to happen, happens:
void test_activate() throws Exception{
myService.activate(new MockConfig());
assertEquals("my property", myService.getMyProperty());
}
Views
Replies
Total Likes
Views
Replies
Total Likes
You can get that done much easier if you are using SlingMocks. I have written a blog post about exactly the case you have: https://cqdump.joerghoh.de/2019/01/09/writing-unit-tests-for-aem-using-slingmocks/
Views
Replies
Total Likes
Views
Likes
Replies
Views
Like
Replies