Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

How to mock SlingSettingsService run modes in Junit5?

baw_gov
Level 2
Level 2

I am trying to Mock SlingSettingsService with run modes in Junit5.

 

In my h.java file, in Activate method I have.

srun = slingSettingsService.getRunModes().contains("runMode");

How do I mock this in my htest.java file? This is for Junit5.

1 Accepted Solution
BrianKasingli
Correct answer by
Community Advisor
Community Advisor

@baw_gov,

you can do something like this:

 

@ExtendWith(AemContextExtension.class)
public class ExampleTest {

    private final AemContext context = new AemContext();

    Set<String> mockRunModes = new TreeSet<String>();

    @Mock
    private SlingSettingsService slingSettingsService;
    
    @Before
    public void before() {
        when(slingSettingsService.getRunModes()).thenReturn(mockRunModes);
    }

    @Test
    public void testSomething() {
        mockRunModes.add("publish");
        Resource resource = context.resourceResolver().getResource("/content/sample/en");
        Page page = resource.adaptTo(MyClass.class);
        // further testing
    }
}

 

View solution in original post

2 Replies
BrianKasingli
Correct answer by
Community Advisor
Community Advisor

@baw_gov,

you can do something like this:

 

@ExtendWith(AemContextExtension.class)
public class ExampleTest {

    private final AemContext context = new AemContext();

    Set<String> mockRunModes = new TreeSet<String>();

    @Mock
    private SlingSettingsService slingSettingsService;
    
    @Before
    public void before() {
        when(slingSettingsService.getRunModes()).thenReturn(mockRunModes);
    }

    @Test
    public void testSomething() {
        mockRunModes.add("publish");
        Resource resource = context.resourceResolver().getResource("/content/sample/en");
        Page page = resource.adaptTo(MyClass.class);
        // further testing
    }
}

 

View solution in original post