    @Test
    public void testETagHeadScenario() throws Exception {

        var response = aResponse().withStatus(200).withHeader("ETag", "1ab");
        stubFor(headPath().willReturn(response));
        stubFor(getPath().willReturn(response.withBody("init")));

        var source = Http.builder().receiveBufferSize(5).build();
        var id = Http.url(defaultURL(), ETAG_HEAD);
        var loadedResource = source.load(id);
        assertThat(IOUtils.toString(loadedResource.getInputStream(), UTF_8)).isEqualTo("init");
        verify(exactly(0), headRequestedFor(urlPathEqualTo(PATH)));
        verify(exactly(1), getRequestedFor(urlPathEqualTo(PATH)));

        assertThat(source.loadIfModified(id, loadedResource.getVersion())).isNull();
        verify(exactly(1), headRequestedFor(urlPathEqualTo(PATH)));
        verify(exactly(1), getRequestedFor(urlPathEqualTo(PATH)));

        removeAllMappings();

        response = aResponse().withStatus(200).withHeader("ETag", "1ac");
        stubFor(headPath().withHeader("If-None-Match", equalTo("1ab")).willReturn(response));
        stubFor(getPath().willReturn(response.withBody("one")));

        loadedResource = source.loadIfModified(id, loadedResource.getVersion());
        assertThat(loadedResource).isNotNull();
        assertThat(IOUtils.toString(loadedResource.getInputStream(), UTF_8)).isEqualTo("one");
    }