Boa tarde, eu estou tendo problemas para conseguir realizar um teste unitário simples de um Controller. Quando realizo um teste unitário em um método do Controller, recebo o seguinte NullPointerException. Já tentei resolver de várias formas mas não estou conseguindo chegar à causa raiz. Alguém consegue dar uma força?
java.lang.NullPointerException
at br.com.guimsmendes.dnasimians.entrypoint.controller.SimianControllerTest.isSimianOk(SimianControllerTest.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
Método de teste
@Test
void isSimianOk() {
when(dnaUseCase.isSimian(any(DnaDomain.class))).thenReturn(true);
ResponseEntity<Object> result = simianController.isSimian(mockValidSimianRequest());
assertThat(result).isEqualTo(ResponseEntity.status(HttpStatus.OK).build());
}
private SimianRequest mockValidSimianRequest(){
List<String> dnaSequence = new LinkedList<>();
dnaSequence.add("ATCGA");
dnaSequence.add("CGTAG");
return new SimianRequest(dnaSequence);
}
Método do Controller que está sendo chamado
@PostMapping("/simian")
public ResponseEntity<Object> isSimian(SimianRequest request){
if(!dnaUseCase.isSimian(request.asDnaDomain())){
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
return ResponseEntity.status(HttpStatus.OK).build();
}