In Mockito test cases, I m facing this response entity is null error which ideally should not be happening as I have mocked the response entity as well.
My Code:
Mockito.when(restTemplate.exchange(ArgumentMatchers.anyString(), Mockito.any(HttpMethod.class), ArgumentMatchers.any(), ArgumentMatchers.<Class<byte[]>>any()))
.thenReturn(new ResponseEntity("test".getBytes(),HttpStatus.OK));
Error: java.lang.NullPointerException: Cannot invoke "org.springframework.http.ResponseEntity.getBody()" because "responseEntity" is null
METHOD:
public void getLetters() {
try {
List<letters> records = letterRepository.getletters();
HttpHeaders headers = httpClientToken.getHeader(
tokenurl,
Client,
Secret,
Granttype );
ResponseEntity<byte[]> responseEntity;
HttpEntity<?> entity = new HttpEntity<>(headers);
for(int i = 0; i<records.size(); i++) {
String Url = http://localhost:8080/documents/getdocument;
URI uri = UriComponentsBuilder.fromHttpUrl(Objects.requireNonNull(Url))
.queryParam("spaceId", records.get(i).letterId)
.build()
.toUri();
try {
responseEntity = restTemplate.getTemplateAttributesRestTemplate().exchange(uri, HttpMethod.GET, entity, byte[].class);
InputStream anyInputStream = new ByteArrayInputStream(responseEntity.getBody());
str = "C:\\Users\\hm\\Downloads\\letter.pdf”;
OutputStream outputStream = new OutputStream(str);
copyFile(anyInputStream, outputStream, 1024 * 1024 * 10);
} catch (Exception e) {
e.printStackTrace();
} }
}
catch (Exception e){
e.printStackTrace();
}
}
Any idea as to why this error is being thrown and how to resolve it?