Expand my Community achievements bar.

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