Skip to content
Snippets Groups Projects

feat: Update tests to use new testing package

4 files
+ 152
81
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -11,10 +11,10 @@
**********************************************************************/
package org.eclipsefoundation.geoip.client.resources;
import static io.restassured.RestAssured.given;
import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
import org.eclipsefoundation.geoip.client.test.namespaces.SchemaNamespaceHelper;
import org.eclipsefoundation.testing.helpers.TestCaseHelper;
import org.eclipsefoundation.testing.templates.RestAssuredTemplates;
import org.eclipsefoundation.testing.templates.RestAssuredTemplates.EndpointTestCase;
import org.junit.jupiter.api.Test;
import io.quarkus.test.junit.QuarkusTest;
@@ -34,45 +34,69 @@ class CityResourceTest {
// Google IE server address
private static final String VALID_IPV6_ADDRESS = "2a00:1450:400a:804::2004";
public static final EndpointTestCase IPV4_SUCCESS = TestCaseHelper.buildSuccessCase(CITIES_ENDPOINT_URL,
new String[] { VALID_IPV4_ADDRESS }, SchemaNamespaceHelper.CITY_SCHEMA_PATH);
public static final EndpointTestCase IPV6_SUCCESS = TestCaseHelper.buildSuccessCase(CITIES_ENDPOINT_URL,
new String[] { VALID_IPV6_ADDRESS }, SchemaNamespaceHelper.CITY_SCHEMA_PATH);
@Test
void testCities_success() {
given().when().get(CITIES_ENDPOINT_URL, VALID_IPV4_ADDRESS).then().statusCode(200);
given().when().get(CITIES_ENDPOINT_URL, VALID_IPV6_ADDRESS).then().statusCode(200);
RestAssuredTemplates.testGet(IPV4_SUCCESS);
RestAssuredTemplates.testGet(IPV6_SUCCESS);
}
@Test
void testCities_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(IPV4_SUCCESS);
RestAssuredTemplates.testGet_validateSchema(IPV6_SUCCESS);
}
@Test
void testCities_format() {
given().when().get(CITIES_ENDPOINT_URL, VALID_IPV4_ADDRESS).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.CITY_SCHEMA_PATH));
given().when().get(CITIES_ENDPOINT_URL, VALID_IPV6_ADDRESS).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.CITY_SCHEMA_PATH));
void testCities_success_validateResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(IPV4_SUCCESS);
RestAssuredTemplates.testGet_validateResponseFormat(IPV6_SUCCESS);
}
@Test
void testCity_badIPEndpoint() {
void testCity_failure_badIPs() {
EndpointTestCase testCase;
String[] badIPV4s = new String[] { "bad.ip.add.res", "300.0.0.0", "1.300.0.0", "1.0.300.0", "1.0.0.300",
"sample", VALID_IPV4_ADDRESS + ":8080" };
// IPv4 tests
given().when().get(CITIES_ENDPOINT_URL, "bad.ip.add.res").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "300.0.0.0").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "1.300.0.0").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "1.0.300.0").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "1.0.0.300").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "sample").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, VALID_IPV4_ADDRESS + ":8080").then().statusCode(400);
for (String ip : badIPV4s) {
testCase = TestCaseHelper.buildBadRequestCase(CITIES_ENDPOINT_URL, new String[] { ip }, "");
RestAssuredTemplates.testGet(testCase);
}
// seems to be an issue with Google Guava code, only gets detected by MaxMind
given().when().get(CITIES_ENDPOINT_URL, "0.1.1.1").then().statusCode(500);
testCase = TestCaseHelper.prepareSuccessCase(CITIES_ENDPOINT_URL, new String[] { "0.1.1.1" }, "")
.setStatusCode(500).build();
RestAssuredTemplates.testGet(testCase);
// IPv6 tests
given().when().get(CITIES_ENDPOINT_URL, "bad:ip:add::res").then().statusCode(400);
// IPv6 test
testCase = TestCaseHelper.buildBadRequestCase(CITIES_ENDPOINT_URL, new String[] { "bad:ip:add::res" }, "");
RestAssuredTemplates.testGet(testCase);
}
@Test
void testCities_loopback() {
void testCities_failure_loopback() {
EndpointTestCase testCase;
// loopback + unspecified address
given().when().get(CITIES_ENDPOINT_URL, "127.0.0.1").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "0.0.0.0").then().statusCode(400);
String[] badIPV4s = new String[] { "127.0.0.1", "0.0.0.0" };
String[] badIPV6s = new String[] { "::", "::1" };
// loopback + unspecified address
given().when().get(CITIES_ENDPOINT_URL, "::").then().statusCode(400);
given().when().get(CITIES_ENDPOINT_URL, "::1").then().statusCode(400);
for (String ip : badIPV4s) {
testCase = TestCaseHelper.buildBadRequestCase(CITIES_ENDPOINT_URL, new String[] { ip }, "");
RestAssuredTemplates.testGet(testCase);
}
for (String ip : badIPV6s) {
testCase = TestCaseHelper.buildBadRequestCase(CITIES_ENDPOINT_URL, new String[] { ip }, "");
RestAssuredTemplates.testGet(testCase);
}
}
}
Loading