View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2025 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.jcabi.http.wire;
6   
7   import com.jcabi.http.mock.MkAnswer;
8   import com.jcabi.http.mock.MkContainer;
9   import com.jcabi.http.mock.MkGrizzlyContainer;
10  import com.jcabi.http.request.JdkRequest;
11  import com.jcabi.http.response.RestResponse;
12  import java.net.HttpURLConnection;
13  import org.junit.jupiter.api.Test;
14  
15  /**
16   * Test case for {@link RetryWire}.
17   *
18   * @since 1.2
19   */
20  final class RetryWireTest {
21  
22      /**
23       * RetryWire can make a few requests before giving up.
24       *
25       * @throws Exception If something goes wrong inside
26       */
27      @Test
28      void makesMultipleRequests() throws Exception {
29          final MkContainer container = new MkGrizzlyContainer()
30              .next(new MkAnswer.Simple(HttpURLConnection.HTTP_INTERNAL_ERROR))
31              .next(new MkAnswer.Simple(HttpURLConnection.HTTP_INTERNAL_ERROR))
32              .next(new MkAnswer.Simple(HttpURLConnection.HTTP_OK))
33              .start();
34          new JdkRequest(container.home())
35              .through(RetryWire.class)
36              .fetch()
37              .as(RestResponse.class)
38              .assertStatus(HttpURLConnection.HTTP_OK);
39          container.stop();
40      }
41  }