Context
I am completely new to Java / JUinit  and I have some trouble understanding how to mock the following API response. In this Extractor class, I have a method getManagers (later to be used as a factory method to return List<Manager>)
public class Extractor {
    ....
    public String getManagers(HashMap parametters, String base_url, String token) throws IOException, InterruptedException {
        HttpClient client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build();
        HttpRequest request = HttpRequest
                .newBuilder(URI.create(String.format("%s/api/rest/query/HUB_REFERENTIALS/Employee/GD%s", base_url, assembleSemQL(parametters))))
                .header("API-Key", token).GET().build();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        return response.body();
}
To get more familiar with Mockito, I started with a trivial test. The point is to be able to write tests execution of which should not depend on the REST API being actually called. testGetManagers check that getManagers returns the same json body as the one loaded from, apiResponse1.json (I checked that apiResponse1.json is properly loaded)
@ExtendWith(MockitoExtension.class)
public class ExtractorTest {
    Extractor extractor = new Extractor();
    @Mock
    HttpClient client;
    HttpResponse response;
    HttpRequest httpRequest;
    @Test
    public void testGetManagers() throws IOException, InterruptedException {
        HashMap<String, String> parametters = new HashMap<String, String>();
        parametters.put("SrcGender", "F");
        // Here        
        Mockito.when(response.body()).thenReturn(Resources.toString(Resources.getResource("apiResponse1.json"), Charsets.UTF_8));
        String response = extractor.getManagers(parametters);
        .....
Issue
It looks like I failed to properly mock response.body(), for I end up with
java.lang.NullPointerException
    at com.comecompany.cockpit.ExtractorTest.testGetManagers(ExtractorTest.java:55)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
....
I think that the problem comes from what I include in @Mock (tried several combinaisons). I probably mis-transposed the logic of how I handle these cases in pytest to org.mockito.Mockito. When I only include HttpResponse response; in @Mock, I get a org.mockito.exceptions.misusing.UnnecessaryStubbingException I do not entirely understand.
What should I include in @Mock to inject this Json file when response.body() is called? Should I mock 'one degree before' (response or HttpResponse<String> response)?
Environnement
- openjdk11
 - mockito-junit-jupiter 2.23.0
 - junit-jupiter-api 5.7.0