Ignore:
Timestamp:
2024-07-29T17:57:38+02:00 (12 months ago)
Author:
taylor.smock
Message:

Fix tests broken by r19152

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJobTest.java

    r19050 r19155  
    2121import java.util.concurrent.TimeUnit;
    2222
     23import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
    2324import org.apache.commons.jcs3.access.behavior.ICacheAccess;
    2425import org.apache.commons.jcs3.engine.behavior.ICacheElement;
     
    3334import org.openstreetmap.josm.tools.Logging;
    3435
    35 import com.github.tomakehurst.wiremock.WireMockServer;
    3636import com.github.tomakehurst.wiremock.matching.UrlPattern;
    3737
     
    4747     * mocked tile server
    4848     */
    49     @BasicWiremock
    50     WireMockServer tileServer;
     49    WireMockRuntimeInfo tileServer;
    5150
    5251    private static class TestCachedTileLoaderJob extends JCSCachedTileLoaderJob<String, CacheEntry> {
     
    105104    /**
    106105     * Always clear cache before tests
    107      * @throws Exception when clearing fails
    108106     */
    109107    @BeforeEach
    110     void clearCache() throws Exception {
     108    void clearCache() {
    111109        getCache().clear();
    112110    }
    113111
     112    @BeforeEach
     113    void setup(WireMockRuntimeInfo wireMockRuntimeInfo) {
     114        this.tileServer = wireMockRuntimeInfo;
     115    }
     116
    114117    /**
    115118     * Test status codes
    116      * @throws InterruptedException in case of thread interruption
    117119     * @throws IOException in case of I/O error
    118120     */
    119121    @Test
    120     void testStatusCodes() throws IOException, InterruptedException {
     122    void testStatusCodes() throws IOException {
    121123        doTestStatusCode(200);
    122124        doTestStatusCode(401);
     
    155157
    156158    private void doTestStatusCode(int responseCode) throws IOException {
    157         tileServer.stubFor(get(urlEqualTo("/httpstat/" + responseCode)).willReturn(aResponse().withStatus(responseCode)));
     159        tileServer.getWireMock().register(get(urlEqualTo("/httpstat/" + responseCode)).willReturn(aResponse().withStatus(responseCode)));
    158160        TestCachedTileLoaderJob job = getStatusLoaderJob(responseCode);
    159161        Listener listener = submitJob(job);
     
    196198        createHeadGetStub(urlEqualTo("/test"), expires, testStart, "eTag", "mock entry");
    197199
    198         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
    199         Listener listener = submitJob(job, false);
    200         tileServer.verify(0, getRequestedFor(anyUrl()));
     200        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
     201        Listener listener = submitJob(job, false);
     202        tileServer.getWireMock().verifyThat(0, getRequestedFor(anyUrl()));
    201203        assertArrayEquals("cached entry".getBytes(StandardCharsets.UTF_8), listener.data);
    202204    }
     
    217219        createHeadGetStub(urlEqualTo("/test"), expires, testStart, "eTag", "mock entry");
    218220
    219         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
     221        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
    220222        Listener listener = submitJob(job, true);
    221         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     223        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    222224        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    223225    }
     
    231233    void testSettingMinimumExpiryWhenNoExpires() throws IOException {
    232234        long testStart = System.currentTimeMillis();
    233         tileServer.stubFor(get(urlEqualTo("/test")).willReturn(aResponse().withBody("mock entry")));
    234 
    235         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
    236         Listener listener = submitJob(job, false);
    237         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     235        tileServer.getWireMock().register(get(urlEqualTo("/test")).willReturn(aResponse().withBody("mock entry")));
     236
     237        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
     238        Listener listener = submitJob(job, false);
     239        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    238240
    239241        assertTrue(listener.attributes.getExpirationTime() >= testStart + JCSCachedTileLoaderJob.DEFAULT_EXPIRE_TIME,
     
    260262        long testStart = System.currentTimeMillis();
    261263        long expires = TimeUnit.DAYS.toSeconds(1);
    262         tileServer.stubFor(get(urlEqualTo("/test"))
     264        tileServer.getWireMock().register(get(urlEqualTo("/test"))
    263265                .willReturn(aResponse()
    264266                        .withHeader("Cache-control", "max-age=" + expires)
     
    267269                );
    268270
    269         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
    270         Listener listener = submitJob(job, false);
    271         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     271        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
     272        Listener listener = submitJob(job, false);
     273        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    272274
    273275        assertTrue(listener.attributes.getExpirationTime() >= testStart + TimeUnit.SECONDS.toMillis(expires),
     
    298300        createHeadGetStub(urlEqualTo("/test"), (JCSCachedTileLoaderJob.DEFAULT_EXPIRE_TIME / 10), testStart, "eTag", "mock entry");
    299301
    300         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test", minimumExpiryTimeSeconds);
    301         Listener listener = submitJob(job, false);
    302         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     302        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test", minimumExpiryTimeSeconds);
     303        Listener listener = submitJob(job, false);
     304        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    303305        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    304306
     
    331333        createHeadGetStub(urlEqualTo("/test"), (JCSCachedTileLoaderJob.DEFAULT_EXPIRE_TIME / 10), testStart, "eTag", "mock entry");
    332334
    333         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test", minimumExpiryTimeSeconds);
    334         Listener listener = submitJob(job, false);
    335         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     335        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test", minimumExpiryTimeSeconds);
     336        Listener listener = submitJob(job, false);
     337        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    336338        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    337339
     
    367369        int minimumExpiryTimeSeconds = 0;
    368370
    369         tileServer.stubFor(get(urlEqualTo("/test"))
     371        tileServer.getWireMock().register(get(urlEqualTo("/test"))
    370372                .willReturn(aResponse()
    371373                        .withHeader("Expires", TestUtils.getHTTPDate(testStart + (JCSCachedTileLoaderJob.DEFAULT_EXPIRE_TIME / 10)))
     
    375377                        )
    376378                );
    377         tileServer.stubFor(head(urlEqualTo("/test"))
     379        tileServer.getWireMock().register(head(urlEqualTo("/test"))
    378380                .willReturn(aResponse()
    379381                        .withHeader("Expires", TestUtils.getHTTPDate(testStart + (JCSCachedTileLoaderJob.DEFAULT_EXPIRE_TIME / 10)))
     
    382384                        )
    383385                );
    384         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test", minimumExpiryTimeSeconds);
    385         Listener listener = submitJob(job, false);
    386         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     386        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test", minimumExpiryTimeSeconds);
     387        Listener listener = submitJob(job, false);
     388        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    387389        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    388390
     
    413415        int minimumExpiryTimeSeconds = 0;
    414416
    415         tileServer.stubFor(get(urlEqualTo("/test"))
     417        tileServer.getWireMock().register(get(urlEqualTo("/test"))
    416418                .willReturn(aResponse()
    417419                        .withHeader("Cache-Control", "" +
     
    422424                        )
    423425                );
    424         tileServer.stubFor(head(urlEqualTo("/test"))
     426        tileServer.getWireMock().register(head(urlEqualTo("/test"))
    425427                .willReturn(aResponse()
    426428                        .withHeader("Cache-Control", "" +
     
    429431                        )
    430432                ));
    431         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test", minimumExpiryTimeSeconds);
    432         Listener listener = submitJob(job, false);
    433         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     433        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test", minimumExpiryTimeSeconds);
     434        Listener listener = submitJob(job, false);
     435        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    434436        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    435437
     
    461463                );
    462464
    463         tileServer.stubFor(get(urlEqualTo("/test"))
     465        tileServer.getWireMock().register(get(urlEqualTo("/test"))
    464466                .willReturn(aResponse()
    465467                        .withHeader("Expires", TestUtils.getHTTPDate(testStart + expires))
     
    469471                        )
    470472                );
    471         tileServer.stubFor(head(urlEqualTo("/test"))
     473        tileServer.getWireMock().register(head(urlEqualTo("/test"))
    472474                .willReturn(aResponse()
    473475                        .withHeader("Expires", TestUtils.getHTTPDate(testStart + expires))
     
    477479                );
    478480
    479         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
     481        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
    480482        Listener listener = submitJob(job, false); // cache entry is expired, no need to force refetch
    481         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     483        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    482484        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    483485
    484486        // cache entry should be retrieved from cache
    485487        listener = submitJob(job, false);
    486         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     488        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    487489        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    488490
     
    494496
    495497        // because cache entry is invalid - HEAD request shall be made
    496         tileServer.verify(0, headRequestedFor(urlEqualTo("/test"))); // no head requests were made until now
     498        tileServer.getWireMock().verifyThat(0, headRequestedFor(urlEqualTo("/test"))); // no head requests were made until now
    497499        listener = submitJob(job, false);
    498         tileServer.verify(1, headRequestedFor(urlEqualTo("/test"))); // verify head requests were made
    499         tileServer.verify(1, getRequestedFor(urlEqualTo("/test"))); // verify no more get requests were made
     500        tileServer.getWireMock().verifyThat(1, headRequestedFor(urlEqualTo("/test"))); // verify head requests were made
     501        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test"))); // verify no more get requests were made
    500502        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    501503        assertTrue(listener.attributes.getExpirationTime() >= testStart + expires);
     
    503505        // cache entry should be retrieved from cache
    504506        listener = submitJob(job, false); // cache entry is expired, no need to force refetch
    505         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
    506         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     507        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
     508        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    507509        assertArrayEquals("mock entry".getBytes(StandardCharsets.UTF_8), listener.data);
    508510    }
     
    522524                );
    523525
    524         tileServer.stubFor(get(urlEqualTo("/test"))
     526        tileServer.getWireMock().register(get(urlEqualTo("/test"))
    525527                .willReturn(status(304)
    526528                        .withHeader("Expires", TestUtils.getHTTPDate(testStart + expires))
     
    530532                );
    531533
    532         TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.url("/test"), "test");
    533         Listener listener = submitJob(job, false);
    534         tileServer.verify(1, getRequestedFor(urlEqualTo("/test")));
     534        TestCachedTileLoaderJob job = new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/test", "test");
     535        Listener listener = submitJob(job, false);
     536        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test")));
    535537        assertArrayEquals("cached dummy".getBytes(StandardCharsets.UTF_8), listener.data);
    536538        assertTrue(testStart + expires <= listener.attributes.getExpirationTime());
    537539        submitJob(job, false);
    538         tileServer.verify(1, getRequestedFor(urlEqualTo("/test"))); // no more requests were made
     540        tileServer.getWireMock().verifyThat(1, getRequestedFor(urlEqualTo("/test"))); // no more requests were made
    539541    }
    540542
    541543    private void createHeadGetStub(UrlPattern url, long expires, long lastModified, String eTag, String body) {
    542         tileServer.stubFor(get(url)
     544        tileServer.getWireMock().register(get(url)
    543545                .willReturn(aResponse()
    544546                        .withHeader("Expires", TestUtils.getHTTPDate(lastModified + expires))
     
    548550                        )
    549551                );
    550         tileServer.stubFor(head(url)
     552        tileServer.getWireMock().register(head(url)
    551553                .willReturn(aResponse()
    552554                        .withHeader("Expires", TestUtils.getHTTPDate(lastModified + expires))
     
    567569
    568570    private TestCachedTileLoaderJob getStatusLoaderJob(int responseCode) {
    569         return new TestCachedTileLoaderJob(tileServer.url("/httpstat/" + responseCode), "key_" + responseCode);
     571        return new TestCachedTileLoaderJob(tileServer.getHttpBaseUrl() + "/httpstat/" + responseCode, "key_" + responseCode);
    570572    }
    571573
Note: See TracChangeset for help on using the changeset viewer.