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

Junit Test Case with RequestParameterMap not working

Avatar

Level 3

Hi All,

 

Am writing one test case with RequestParameterMap, but it's throwing nullpointer exception . 

 

Below one is the code snippet .

 

@test
public void validateUserData() {
Map<String, RequestParameter[]> params = new HashMap<>();
params.put("firstName", getRequestParameter("firstName", "test"));
params.put("lastName", getRequestParameter("lastName", "test last"));

when(request.getParameterMap()).thenReturn(params);
RequestParameterMap requestParameterMap = Mockito.mock(RequestParameterMap.class);
when(requestParameterMap.entrySet()).thenReturn(params.entrySet());

UserInfo user = userService.getUserInfo(requestParameterMap);
assertEquals("firstName", user.getFirstName());
}

 

when i try to get the values from requestParameterMap , it's giving null pointer exception.

 

Could you please help me resolve  this  issue .

 

Thanks

1 Accepted Solution

Avatar

Correct answer by
Employee

Have you tried using AEM Mock's AemContext to create mock sling request context?

 

I highly, highly recommend using AEM Mocks when possible rather than mocking out everything yourself. These sorts of problems should go away, and also lets you write more natural tests.

 

https://wcm.io/testing/aem-mock/usage.html

 

 

View solution in original post

2 Replies

Avatar

Community Advisor

can you please post complete test class here, 

 

== The below code is correct and should work ==

RequestParameterMap requestParameterMap = mock(RequestParameterMap.class);
when(requestParameterMap.entrySet()).thenReturn(params.entrySet());

 

=== try this one

when(parameterMap.isEmpty()).thenReturn(Boolean.FALSE);
when(parameterMap.getValue("firstName")).thenReturn("test");

Avatar

Correct answer by
Employee

Have you tried using AEM Mock's AemContext to create mock sling request context?

 

I highly, highly recommend using AEM Mocks when possible rather than mocking out everything yourself. These sorts of problems should go away, and also lets you write more natural tests.

 

https://wcm.io/testing/aem-mock/usage.html