|
28 | 28 | import com.github.tomakehurst.wiremock.client.WireMock; |
29 | 29 | import com.github.tomakehurst.wiremock.http.Fault; |
30 | 30 | import com.github.tomakehurst.wiremock.stubbing.Scenario; |
| 31 | +import com.github.tomakehurst.wiremock.stubbing.StubMapping; |
31 | 32 | import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory; |
| 33 | +import org.apache.hc.core5.http.HttpStatus; |
32 | 34 | import org.testng.Assert; |
| 35 | +import org.testng.annotations.DataProvider; |
33 | 36 | import org.testng.annotations.Test; |
34 | 37 |
|
35 | 38 | public class ApacheHttpConnectionImplTest extends ClickHouseHttpClientTest { |
@@ -150,18 +153,12 @@ public void testFailureWhileRequest() { |
150 | 153 | } |
151 | 154 | } |
152 | 155 |
|
153 | | - @Test(groups = {"unit"}) |
154 | | - public void testRetryOnFailure() { |
| 156 | + @Test(groups = {"unit"}, dataProvider = "retryOnFailureProvider") |
| 157 | + public void testRetryOnFailure(StubMapping failureStub) { |
155 | 158 | faultyServer = new WireMockServer(9090); |
156 | 159 | faultyServer.start(); |
157 | 160 | try { |
158 | | - faultyServer.addStubMapping(WireMock.post(WireMock.anyUrl()) |
159 | | - .withRequestBody(WireMock.equalTo("SELECT 1")) |
160 | | - .inScenario("Retry") |
161 | | - .whenScenarioStateIs(Scenario.STARTED) |
162 | | - .willReturn(WireMock.aResponse().withFault(Fault.EMPTY_RESPONSE)) |
163 | | - .willSetStateTo("Failed") |
164 | | - .build()); |
| 161 | + faultyServer.addStubMapping(failureStub); |
165 | 162 | faultyServer.addStubMapping(WireMock.post(WireMock.anyUrl()) |
166 | 163 | .withRequestBody(WireMock.equalTo("SELECT 1")) |
167 | 164 | .inScenario("Retry") |
@@ -190,4 +187,24 @@ public void testRetryOnFailure() { |
190 | 187 | faultyServer.stop(); |
191 | 188 | } |
192 | 189 | } |
| 190 | + |
| 191 | + @DataProvider(name = "retryOnFailureProvider") |
| 192 | + private static StubMapping[] retryOnFailureProvider() { |
| 193 | + return new StubMapping[] { |
| 194 | + WireMock.post(WireMock.anyUrl()) |
| 195 | + .withRequestBody(WireMock.equalTo("SELECT 1")) |
| 196 | + .inScenario("Retry") |
| 197 | + .whenScenarioStateIs(Scenario.STARTED) |
| 198 | + .willReturn(WireMock.aResponse().withFault(Fault.EMPTY_RESPONSE)) |
| 199 | + .willSetStateTo("Failed") |
| 200 | + .build() |
| 201 | + ,WireMock.post(WireMock.anyUrl()) |
| 202 | + .withRequestBody(WireMock.equalTo("SELECT 1")) |
| 203 | + .inScenario("Retry") |
| 204 | + .whenScenarioStateIs(Scenario.STARTED) |
| 205 | + .willReturn(WireMock.aResponse().withStatus(HttpStatus.SC_SERVICE_UNAVAILABLE)) |
| 206 | + .willSetStateTo("Failed") |
| 207 | + .build() |
| 208 | + }; |
| 209 | + } |
193 | 210 | } |
0 commit comments