From c54ddbea6755f60bd57dfe30353b79d701b38fbd Mon Sep 17 00:00:00 2001 From: Matthias Jansen Date: Mon, 17 Sep 2018 14:17:34 +0200 Subject: [PATCH 1/3] added range check class --- agrirouter-api-java-impl/pom.xml | 6 +++ .../impl/validation/RangeChecker.java | 14 +++++++ .../impl/validation/RangeCheckerTest.java | 37 +++++++++++++++++++ .../validation/ResponseValidatorTest.java | 2 + 4 files changed, 59 insertions(+) create mode 100644 agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java create mode 100644 agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java diff --git a/agrirouter-api-java-impl/pom.xml b/agrirouter-api-java-impl/pom.xml index 04085c4b..d238f323 100644 --- a/agrirouter-api-java-impl/pom.xml +++ b/agrirouter-api-java-impl/pom.xml @@ -58,6 +58,12 @@ org.glassfish.jersey.inject jersey-hk2 + + org.junit.jupiter + junit-jupiter-params + 5.1.0 + test + diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java new file mode 100644 index 00000000..d46fd10f --- /dev/null +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java @@ -0,0 +1,14 @@ +package com.dke.data.agrirouter.impl.validation; + +import com.dke.data.agrirouter.api.exception.UnexpectedHttpStatusException; + +class RangeChecker { + + static void checkRange(int actualStatus, int expectedStatus) { + if (expectedStatus == 200) { + if (actualStatus < 200 || actualStatus > 299) { + throw new UnexpectedHttpStatusException(actualStatus, expectedStatus); + } + } + } +} diff --git a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java new file mode 100644 index 00000000..ceda5562 --- /dev/null +++ b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java @@ -0,0 +1,37 @@ +package com.dke.data.agrirouter.impl.validation; + +import com.dke.data.agrirouter.api.exception.UnexpectedHttpStatusException; +import org.apache.http.HttpStatus; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +class RangeCheckerTest { + + @Test + void givenExpectedStatus_CheckRange_ShouldFinishWithoutException() { + try { + RangeChecker.checkRange(200, HttpStatus.SC_OK); + } catch (UnexpectedHttpStatusException e) { + Assertions.fail("actual and expected status match, should not throw exception"); + } + } + + @ParameterizedTest + @ValueSource(ints = {201, 202, 203, 204, 205, 206, 207}) + void givenStatusInAcceptableRange_CheckRange_ShouldFinishWithoutException(int actualStatus) { + try { + RangeChecker.checkRange(actualStatus, HttpStatus.SC_OK); + } catch (UnexpectedHttpStatusException e) { + Assertions.fail("actual status in acceptable range, should not throw exception"); + } + } + + @Test + void givenUnexpectedStatusOutOfRange_CheckRange_ShouldThrowException() { + Assertions.assertThrows( + UnexpectedHttpStatusException.class, + () -> RangeChecker.checkRange(404, HttpStatus.SC_OK)); + } +} diff --git a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java index 226eb572..f90126f1 100644 --- a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java +++ b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java @@ -9,6 +9,7 @@ import javax.ws.rs.core.Response; import org.apache.http.HttpStatus; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; class ResponseValidatorTest implements ResponseValidator { @@ -21,6 +22,7 @@ void givenValidUrl_AssertResponseStatusIsValid_ShouldThrowNoException() throws E } @Test + @Disabled("not necessary according to issue #14") void givenValidUrl_AssertResponseStatusIsValid_ShouldThrowUnexpectedHttpStatusExceptionIfResponseStatusDoesNotMatch() throws Exception { From 1b3e624fdb69d8708dd31fadf35fafe0ce31b60f Mon Sep 17 00:00:00 2001 From: Matthias Jansen Date: Mon, 17 Sep 2018 16:20:09 +0200 Subject: [PATCH 2/3] services now use range check in dedicated class --- .../messaging/helper/MessageQueryHelper.java | 7 +++- .../rest/DeleteMessageServiceImpl.java | 6 +++- .../rest/MessageConfirmationServiceImpl.java | 6 +++- .../impl/messaging/rest/MessageFetcher.java | 7 +++- .../rest/SendMessageServiceImpl.java | 6 +++- .../rest/SetCapabilityServiceImpl.java | 6 +++- .../RegistrationRequestServiceImpl.java | 7 +++- .../secured/OnboardingServiceImpl.java | 12 ++++--- .../RegistrationRequestServiceImpl.java | 7 +++- .../impl/validation/RangeChecker.java | 14 -------- .../validation/ResponseStatusChecker.java | 8 +++++ .../impl/validation/RangeCheckerTest.java | 34 +++++++------------ 12 files changed, 73 insertions(+), 47 deletions(-) delete mode 100644 agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java create mode 100644 agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/ResponseStatusChecker.java diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelper.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelper.java index e540f7bf..f533a369 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelper.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelper.java @@ -12,6 +12,7 @@ import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.common.MessageIdService; import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; import java.util.Objects; @@ -35,7 +36,11 @@ public void send(MessageQueryParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages(Collections.singletonList(encodedMessage)); MessageSender.MessageSenderResponse response = this.sendMessage(sendMessageParameters); - this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + + int status = response.getNativeResponse().getStatus(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + } } private String encodeMessage(MessageQueryParameters parameters) { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java index 9507b2ce..6db4f47c 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java @@ -13,6 +13,7 @@ import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.common.MessageIdService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; import java.util.Objects; @@ -38,7 +39,10 @@ public void send(DeleteMessageParameters parameters) { MessageSenderResponse response = this.sendMessage(sendMessageParameters); - this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + int status = response.getNativeResponse().getStatus(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + } } private String encodeMessage(DeleteMessageParameters parameters) { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java index 6d1c10f8..0fa398ba 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java @@ -25,6 +25,7 @@ import com.dke.data.agrirouter.impl.common.UtcTimeService; import com.dke.data.agrirouter.impl.messaging.encoding.DecodeMessageServiceImpl; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.*; import org.apache.http.HttpStatus; @@ -56,7 +57,10 @@ public void send(MessageConfirmationParameters parameters) { MessageSenderResponse response = this.sendMessage(sendMessageParameters); - this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + int status = response.getNativeResponse().getStatus(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + } } private String encodeMessage(MessageConfirmationParameters parameters) { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java index 3ea0ed49..366ca048 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java @@ -3,6 +3,7 @@ import com.dke.data.agrirouter.api.enums.CertificationType; import com.dke.data.agrirouter.api.service.parameters.FetchMessageParameters; import com.dke.data.agrirouter.impl.RequestFactory; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Optional; import javax.ws.rs.core.Response; @@ -28,7 +29,11 @@ default Optional poll(FetchMessageParameters parameters, int maxTries, l CertificationType.valueOf( parameters.getOnboardingResponse().getAuthentication().getType())) .get(); - this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); + + if (!ResponseStatusChecker.isStatusInSuccessRange(response.getStatus())) { + this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); + } + String entityContent = response.readEntity(String.class); if (!StringUtils.equalsIgnoreCase(entityContent, EMPTY_CONTENT)) { return Optional.of(entityContent); diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java index 2540bf66..5607e6a5 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java @@ -2,6 +2,7 @@ import com.dke.data.agrirouter.api.service.messaging.SendMessageService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import org.apache.http.HttpStatus; @@ -12,6 +13,9 @@ public class SendMessageServiceImpl public void send(SendMessageParameters parameters) { parameters.validate(); MessageSenderResponse response = this.sendMessage(parameters); - this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + int status = response.getNativeResponse().getStatus(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + } } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java index d1961891..f2c67f1d 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java @@ -15,6 +15,7 @@ import com.dke.data.agrirouter.impl.EnvironmentalService; import com.dke.data.agrirouter.impl.common.MessageIdService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.ArrayList; import java.util.Collections; @@ -42,7 +43,10 @@ public void send(SetCapabilitiesParameters parameters) { MessageSenderResponse response = this.sendMessage(sendMessageParameters); - this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + int status = response.getNativeResponse().getStatus(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(response.getNativeResponse(), HttpStatus.SC_OK); + } } private String encodeMessage(SetCapabilitiesParameters parameters) { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/RegistrationRequestServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/RegistrationRequestServiceImpl.java index d3bae0b5..8c3fe58e 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/RegistrationRequestServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/RegistrationRequestServiceImpl.java @@ -7,6 +7,7 @@ import com.dke.data.agrirouter.impl.EnvironmentalService; import com.dke.data.agrirouter.impl.RequestFactory; import com.dke.data.agrirouter.impl.common.CookieResolverService; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import com.gargoylesoftware.htmlunit.util.Cookie; import java.util.Set; @@ -34,7 +35,11 @@ public RegistrationRequestResponse getRegistrationCode(RegistrationRequestParame String url = this.environment.getRegistrationServiceDataServiceUrl(parameters.getApplicationId()); Response response = RequestFactory.request(url, cookies).get(); - this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); + + if (!ResponseStatusChecker.isStatusInSuccessRange(response.getStatus())) { + this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); + } + return response.readEntity(RegistrationRequestResponse.class); } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/OnboardingServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/OnboardingServiceImpl.java index 33353606..fd5cf5d5 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/OnboardingServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/OnboardingServiceImpl.java @@ -14,6 +14,7 @@ import com.dke.data.agrirouter.impl.RequestFactory; import com.dke.data.agrirouter.impl.common.signing.SecurityKeyCreationService; import com.dke.data.agrirouter.impl.onboard.AbstractOnboardingService; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import com.google.gson.Gson; import java.security.InvalidKeyException; @@ -94,10 +95,13 @@ private void verify( securedOnboardingParameters.getApplicationId(), encodedSignature) .post(Entity.entity(jsonBody, MediaType.APPLICATION_JSON_TYPE)); - try { - this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); - } catch (UnexpectedHttpStatusException e) { - throw new CouldNotVerifySecuredOnboardingRequestException(e); + + if (!ResponseStatusChecker.isStatusInSuccessRange(response.getStatus())) { + try { + this.assertResponseStatusIsValid(response, HttpStatus.SC_OK); + } catch (UnexpectedHttpStatusException e) { + throw new CouldNotVerifySecuredOnboardingRequestException(e); + } } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/RegistrationRequestServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/RegistrationRequestServiceImpl.java index 79bf19ac..af5820f9 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/RegistrationRequestServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/onboard/secured/RegistrationRequestServiceImpl.java @@ -13,6 +13,7 @@ import com.dke.data.agrirouter.impl.common.CookieResolverService; import com.dke.data.agrirouter.impl.common.StateIdService; import com.dke.data.agrirouter.impl.onboard.OnboardingServiceImpl; +import com.dke.data.agrirouter.impl.validation.ResponseStatusChecker; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController; @@ -78,7 +79,11 @@ public RegistrationRequestResponse getRegistrationCode( HtmlAnchor anchorByHref = page.getAnchorByHref("javascript:{}"); final Page redirectPage = anchorByHref.click(); - assertResponseStatusIsValid(redirectPage.getWebResponse(), HttpStatus.SC_OK); + + int status = redirectPage.getWebResponse().getStatusCode(); + if (!ResponseStatusChecker.isStatusInSuccessRange(status)) { + this.assertResponseStatusIsValid(redirectPage.getWebResponse(), HttpStatus.SC_OK); + } URL redirectPageUrl = redirectPage.getUrl(); return this.extractAuthenticationResults(redirectPageUrl); diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java deleted file mode 100644 index d46fd10f..00000000 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/RangeChecker.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.dke.data.agrirouter.impl.validation; - -import com.dke.data.agrirouter.api.exception.UnexpectedHttpStatusException; - -class RangeChecker { - - static void checkRange(int actualStatus, int expectedStatus) { - if (expectedStatus == 200) { - if (actualStatus < 200 || actualStatus > 299) { - throw new UnexpectedHttpStatusException(actualStatus, expectedStatus); - } - } - } -} diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/ResponseStatusChecker.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/ResponseStatusChecker.java new file mode 100644 index 00000000..b664b28e --- /dev/null +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/validation/ResponseStatusChecker.java @@ -0,0 +1,8 @@ +package com.dke.data.agrirouter.impl.validation; + +public class ResponseStatusChecker { + + public static boolean isStatusInSuccessRange(int status) { + return status >= 200 && status <= 299; + } +} diff --git a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java index ceda5562..f7a6d2e4 100644 --- a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java +++ b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/RangeCheckerTest.java @@ -1,37 +1,29 @@ package com.dke.data.agrirouter.impl.validation; -import com.dke.data.agrirouter.api.exception.UnexpectedHttpStatusException; -import org.apache.http.HttpStatus; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + class RangeCheckerTest { - @Test - void givenExpectedStatus_CheckRange_ShouldFinishWithoutException() { - try { - RangeChecker.checkRange(200, HttpStatus.SC_OK); - } catch (UnexpectedHttpStatusException e) { - Assertions.fail("actual and expected status match, should not throw exception"); - } + @ParameterizedTest + @ValueSource(ints = {200, 201, 202, 203, 204, 205, 206, 207, 208, 226}) + void givenSuccessStatus_CheckStatusInSuccessRange_ShouldReturnTrue(int status) { + assertTrue(ResponseStatusChecker.isStatusInSuccessRange(status)); } - @ParameterizedTest - @ValueSource(ints = {201, 202, 203, 204, 205, 206, 207}) - void givenStatusInAcceptableRange_CheckRange_ShouldFinishWithoutException(int actualStatus) { - try { - RangeChecker.checkRange(actualStatus, HttpStatus.SC_OK); - } catch (UnexpectedHttpStatusException e) { - Assertions.fail("actual status in acceptable range, should not throw exception"); + @Test + void givenAnyStatus2XX_CheckStatusInSuccessRange_ShouldReturnTrue() { + for (int actualStatus = 200; actualStatus <= 299; actualStatus++) { + assertTrue(ResponseStatusChecker.isStatusInSuccessRange(actualStatus)); } } @Test - void givenUnexpectedStatusOutOfRange_CheckRange_ShouldThrowException() { - Assertions.assertThrows( - UnexpectedHttpStatusException.class, - () -> RangeChecker.checkRange(404, HttpStatus.SC_OK)); + void givenOtherStatus_CheckStatusInSuccessRange_ShouldReturnFalse() { + assertFalse(ResponseStatusChecker.isStatusInSuccessRange(404)); } } From 189dd59ff176cca552aa08fcb30ddb48963ef7cd Mon Sep 17 00:00:00 2001 From: Matthias Jansen Date: Mon, 17 Sep 2018 16:23:58 +0200 Subject: [PATCH 3/3] removed unused @Disabled import --- .../data/agrirouter/impl/validation/ResponseValidatorTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java index f90126f1..226eb572 100644 --- a/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java +++ b/agrirouter-api-java-impl/src/test/java/com/dke/data/agrirouter/impl/validation/ResponseValidatorTest.java @@ -9,7 +9,6 @@ import javax.ws.rs.core.Response; import org.apache.http.HttpStatus; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; class ResponseValidatorTest implements ResponseValidator { @@ -22,7 +21,6 @@ void givenValidUrl_AssertResponseStatusIsValid_ShouldThrowNoException() throws E } @Test - @Disabled("not necessary according to issue #14") void givenValidUrl_AssertResponseStatusIsValid_ShouldThrowUnexpectedHttpStatusExceptionIfResponseStatusDoesNotMatch() throws Exception {