Skip to content
Snippets Groups Projects

feat: Migrate tests to commons test package

2 files
+ 226
78
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -12,20 +12,16 @@
@@ -12,20 +12,16 @@
*/
*/
package org.eclipsefoundation.downloads.resources;
package org.eclipsefoundation.downloads.resources;
import static io.restassured.RestAssured.given;
import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
import javax.inject.Inject;
import org.eclipsefoundation.downloads.namespaces.DownloadsUrlParameterNames;
import org.eclipsefoundation.downloads.test.helper.SchemaNamespaceHelper;
import org.eclipsefoundation.downloads.test.helper.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 org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.QuarkusTest;
 
import io.restassured.http.ContentType;
@TestInstance(Lifecycle.PER_CLASS)
@TestInstance(Lifecycle.PER_CLASS)
@QuarkusTest
@QuarkusTest
@@ -34,139 +30,285 @@ public class DownloadsResourceTest {
@@ -34,139 +30,285 @@ public class DownloadsResourceTest {
public static final String FILE_BY_ID_URL = DOWNLOADS_BASE_URL + "/file/{id}";
public static final String FILE_BY_ID_URL = DOWNLOADS_BASE_URL + "/file/{id}";
public static final String RELEASE_BASE_URL = DOWNLOADS_BASE_URL + "/releases";
public static final String RELEASE_BASE_URL = DOWNLOADS_BASE_URL + "/releases";
 
public static final String LEGACY_RELEASE_URL = DOWNLOADS_BASE_URL + "/release/{releaseType}";
public static final String LEGACY_RELEASE_URL = DOWNLOADS_BASE_URL + "/release/{releaseType}";
 
public static final String LEGACY_RELEASE_NAME_URL = LEGACY_RELEASE_URL + "?release_name={param}";
 
public static final String LEGACY_RELEASE_VERSION_URL = LEGACY_RELEASE_URL + "?release_version={param}";
 
public static final String LEGACY_RELEASE_NAME_VERSION_URL = LEGACY_RELEASE_URL
 
+ "?release_name={param1}&release_version={param2}";
 
public static final String RELEASES_URL = RELEASE_BASE_URL + "/{releaseType}/{releaseName}";
public static final String RELEASES_URL = RELEASE_BASE_URL + "/{releaseType}/{releaseName}";
public static final String RELEASE_VERSION_URL = RELEASES_URL + "/{releaseVersion}";
public static final String RELEASE_VERSION_URL = RELEASES_URL + "/{releaseVersion}";
@Inject
/*
ObjectMapper json;
* FILE BY ID
 
*/
 
public static final EndpointTestCase FILE_BY_ID_SUCCESS = TestCaseHelper.buildSuccessCase(FILE_BY_ID_URL,
 
new String[] { "1" }, SchemaNamespaceHelper.FILE_SCHEMA_PATH);
 
 
public static final EndpointTestCase FILE_BY_ID_NOT_FOUND = TestCaseHelper.buildNotFoundCase(FILE_BY_ID_URL,
 
new String[] { "99999" }, SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase FILE_BY_ID_INVALID_FORMAT = TestCaseHelper
 
.buildInvalidFormatCase(FILE_BY_ID_URL, new String[] { "1" }, ContentType.TEXT);
 
 
/*
 
* LEGACY RELEASE
 
*/
 
public static final EndpointTestCase LEGACY_RELEASE_SUCCESS_NAME = TestCaseHelper.buildSuccessCase(
 
LEGACY_RELEASE_NAME_URL, new String[] { "epp", "2021-12" },
 
SchemaNamespaceHelper.RELEASES_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_SUCCESS_NAME_VERSION = TestCaseHelper.buildSuccessCase(
 
LEGACY_RELEASE_NAME_VERSION_URL, new String[] { "epp", "2021-12", "r" },
 
SchemaNamespaceHelper.RELEASE_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_INVALID_TYPE = TestCaseHelper.buildBadRequestCase(
 
LEGACY_RELEASE_NAME_VERSION_URL, new String[] { "new", "2021-12", "r" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_NO_NAME = TestCaseHelper.buildBadRequestCase(
 
LEGACY_RELEASE_URL, new String[] { "eclipse_packages" }, SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_NO_NAME_VERSION = TestCaseHelper.buildBadRequestCase(
 
LEGACY_RELEASE_VERSION_URL, new String[] { "eclipse_packages", "r" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_NAME_NOT_FOUND = TestCaseHelper.buildNotFoundCase(
 
LEGACY_RELEASE_NAME_URL, new String[] { "eclipse_packages", "nitro" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_VERSION_NOT_FOUND = TestCaseHelper.buildNotFoundCase(
 
LEGACY_RELEASE_NAME_VERSION_URL, new String[] { "eclipse_packages", "epp", "nitro" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase LEGACY_RELEASE_INVALID_FORMAT = TestCaseHelper
 
.buildInvalidFormatCase(LEGACY_RELEASE_NAME_URL, new String[] { "epp", "2021-12" },
 
ContentType.TEXT);
 
 
/*
 
* GET RELEASES
 
*/
 
public static final EndpointTestCase GET_RELEASES_SUCCESS = TestCaseHelper.buildSuccessCase(RELEASES_URL,
 
new String[] { "epp", "2021-06" }, SchemaNamespaceHelper.RELEASES_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASES_NOT_FOUND = TestCaseHelper.buildNotFoundCase(RELEASES_URL,
 
new String[] { "epp", "nitro" }, SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASES_INVALID_TYPE = TestCaseHelper.buildBadRequestCase(
 
RELEASES_URL, new String[] { "new", "2021-06" }, SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
public static final EndpointTestCase GET_RELEASES_INVALID_FORMAT = TestCaseHelper
 
.buildInvalidFormatCase(RELEASES_URL, new String[] { "epp", "2021-06" }, ContentType.TEXT);
 
 
/*
 
* GET RELEASE VERSION
 
*/
 
public static final EndpointTestCase GET_RELEASE_VERSION_SUCCESS = TestCaseHelper.buildSuccessCase(
 
RELEASE_VERSION_URL, new String[] { "eclipse_packages", "2021-06", "r" },
 
SchemaNamespaceHelper.RELEASE_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASE_VERSION_NOT_FOUND_NAME = TestCaseHelper.buildNotFoundCase(
 
RELEASE_VERSION_URL, new String[] { "eclipse_packages", "nitro", "m1" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASE_VERSION_NOT_FOUND_VERSION = TestCaseHelper.buildNotFoundCase(
 
RELEASE_VERSION_URL, new String[] { "epp", "2020-03", "version1" },
 
SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASE_VERSION_INVALID_TYPE = TestCaseHelper.buildBadRequestCase(
 
RELEASE_VERSION_URL, new String[] { "new", "2021-06", "r" }, SchemaNamespaceHelper.ERROR_SCHEMA_PATH);
 
 
public static final EndpointTestCase GET_RELEASE_VERSION_INVALID_FORMAT = TestCaseHelper
 
.buildInvalidFormatCase(RELEASE_VERSION_URL, new String[] { "epp", "2021-06", "m1" }, ContentType.TEXT);
 
 
/*
 
* FILE BY ID
 
*/
@Test
@Test
void getFileByID_missingFile() {
void getFileByID_success() {
given().when().get(FILE_BY_ID_URL, "99999").then().statusCode(404);
RestAssuredTemplates.testGet(FILE_BY_ID_SUCCESS);
}
}
@Test
@Test
void getFileByID_success() {
void getFileByID_success_validSchema() {
given().when().get(FILE_BY_ID_URL, "1").then().statusCode(200);
RestAssuredTemplates.testGet_validateSchema(FILE_BY_ID_SUCCESS);
}
}
@Test
@Test
void getFileByID_success_format() {
void getFileByID_success_validResponseFormat() {
given().when().get(FILE_BY_ID_URL, "1").then().assertThat()
RestAssuredTemplates.testGet_validateResponseFormat(FILE_BY_ID_SUCCESS);
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.FILE_SCHEMA_PATH));
}
}
@Test
@Test
void getReleaseLegacy_missingReleaseName() {
void getFileByID_failure_notFound() {
given().when().get(LEGACY_RELEASE_URL, "epp").then().statusCode(400);
RestAssuredTemplates.testGet(FILE_BY_ID_NOT_FOUND);
given().when().get(LEGACY_RELEASE_URL, "eclipse_packages").then().statusCode(400);
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_VERSION_VALUE, "r").get(LEGACY_RELEASE_URL, "epp")
.then().statusCode(400);
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_VERSION_VALUE, "r")
.get(LEGACY_RELEASE_URL, "eclipse_packages").then().statusCode(400);
}
}
 
@Test
 
void getFileByID_failure_notFound_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(FILE_BY_ID_NOT_FOUND);
 
}
 
 
@Test
 
void getFileByID_failure_invalidRequestFormat() {
 
RestAssuredTemplates.testGet(FILE_BY_ID_INVALID_FORMAT);
 
}
 
 
/*
 
* LEGACY RELEASE
 
*/
@Test
@Test
void getReleaseLegacy_success() {
void getReleaseLegacy_success() {
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet(LEGACY_RELEASE_SUCCESS_NAME);
.get(LEGACY_RELEASE_URL, "epp").then().statusCode(200);
RestAssuredTemplates.testGet(LEGACY_RELEASE_SUCCESS_NAME_VERSION);
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
}
.get(LEGACY_RELEASE_URL, "eclipse_packages").then().statusCode(200);
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
@Test
.queryParam(DownloadsUrlParameterNames.RELEASE_VERSION_VALUE, "r").get(LEGACY_RELEASE_URL, "epp").then()
void getReleaseLegacy_success_validSchema() {
.statusCode(200);
RestAssuredTemplates.testGet_validateSchema(LEGACY_RELEASE_SUCCESS_NAME);
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet_validateSchema(LEGACY_RELEASE_SUCCESS_NAME_VERSION);
.queryParam(DownloadsUrlParameterNames.RELEASE_VERSION_VALUE, "r")
.get(LEGACY_RELEASE_URL, "eclipse_packages").then().statusCode(200);
}
}
@Test
@Test
void getReleaseLegacy_invalidReleaseType() {
void getReleaseLegacy_success_validResponseFormat() {
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet_validateResponseFormat(LEGACY_RELEASE_SUCCESS_NAME);
.get(LEGACY_RELEASE_URL, "new").then().statusCode(400);
RestAssuredTemplates.testGet_validateResponseFormat(LEGACY_RELEASE_SUCCESS_NAME_VERSION);
}
}
@Test
@Test
void getReleaseLegacy_error_format() {
void getReleaseLegacy_failure_missingReleaseName() {
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet(LEGACY_RELEASE_NO_NAME);
.get(LEGACY_RELEASE_URL, "wrong").then().assertThat()
RestAssuredTemplates.testGet(LEGACY_RELEASE_NO_NAME_VERSION);
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.ERROR_SCHEMA_PATH));
}
}
@Test
@Test
void getReleaseLegacy_success_format() {
void getReleaseLegacy_failure_invalidReleaseType() {
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet(LEGACY_RELEASE_INVALID_TYPE);
.get(LEGACY_RELEASE_URL, "epp").then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.RELEASES_SCHEMA_PATH));
}
}
@Test
@Test
void getReleaseLegacyWithVersion_success_format() {
void getReleaseLegacy_failure_invalidReleaseType_validSchema() {
given().when().queryParam(DownloadsUrlParameterNames.RELEASE_NAME_VALUE, "2021-12")
RestAssuredTemplates.testGet_validateSchema(LEGACY_RELEASE_INVALID_TYPE);
.queryParam(DownloadsUrlParameterNames.RELEASE_VERSION_VALUE, "r").get(LEGACY_RELEASE_URL, "epp").then()
.assertThat().body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.RELEASE_SCHEMA_PATH));
}
}
@Test
@Test
void getRelease_missingRelease() {
void getReleaseLEgacy_failure_nameNotFound() {
given().when().get(RELEASES_URL, "epp", "missing-version").then().statusCode(404);
RestAssuredTemplates.testGet(LEGACY_RELEASE_NAME_NOT_FOUND);
}
}
 
@Test
 
void getReleaseLEgacy_failure_nameNotFound_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(LEGACY_RELEASE_NAME_NOT_FOUND);
 
}
 
 
@Test
 
void getReleaseLEgacy_failure_versionNotFound() {
 
RestAssuredTemplates.testGet(LEGACY_RELEASE_VERSION_NOT_FOUND);
 
}
 
 
@Test
 
void getReleaseLEgacy_failure_versionNotFound_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(LEGACY_RELEASE_VERSION_NOT_FOUND);
 
}
 
 
@Test
 
void getReleaseLegacy_failure_invalidRequestFormat() {
 
RestAssuredTemplates.testGet(LEGACY_RELEASE_INVALID_FORMAT);
 
}
 
 
/*
 
* GET RELEASE
 
*/
@Test
@Test
void getRelease_success() {
void getRelease_success() {
given().when().get(RELEASES_URL, "epp", "2021-12").then().statusCode(200);
RestAssuredTemplates.testGet(GET_RELEASES_SUCCESS);
 
}
 
 
@Test
 
void getRelease_success_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(GET_RELEASES_SUCCESS);
 
}
 
 
@Test
 
void getRelease_success_validResponseFormat() {
 
RestAssuredTemplates.testGet_validateResponseFormat(GET_RELEASES_SUCCESS);
}
}
@Test
@Test
void getRelease_invalidReleaseType() {
void getRelease_failure_notFound() {
given().when().get(RELEASES_URL, "old", "2021-12").then().statusCode(400);
RestAssuredTemplates.testGet(GET_RELEASES_NOT_FOUND);
}
}
@Test
@Test
void getRelease_error_format() {
void getRelease_failure_notFound_validSchema() {
given().when().get(RELEASES_URL, "old", "2021-12").then().assertThat()
RestAssuredTemplates.testGet_validateSchema(GET_RELEASES_NOT_FOUND);
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.ERROR_SCHEMA_PATH));
}
}
@Test
@Test
void getRelease_success_format() {
void getRelease_failure_invalidReleaseType() {
given().when().get(RELEASES_URL, "eclipse_packages",
RestAssuredTemplates.testGet(GET_RELEASES_INVALID_TYPE);
"2021-12").then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.RELEASES_SCHEMA_PATH));
}
}
@Test
@Test
void getReleaseVersion_missingRelease() {
void getRelease_failure_invalidReleaseType_validSchema() {
given().when().get(RELEASE_VERSION_URL, "epp", "missing-version", "r").then().statusCode(404);
RestAssuredTemplates.testGet_validateSchema(GET_RELEASES_INVALID_TYPE);
}
}
@Test
@Test
void getReleaseVersion_missingVersion() {
void getRelease_failure_invalidRequestFormat() {
given().when().get(RELEASE_VERSION_URL, "epp", "2021-12", "some-release").then().statusCode(404);
RestAssuredTemplates.testGet(GET_RELEASES_INVALID_FORMAT);
}
}
 
/*
 
* GET RELEASE VERSION
 
*/
@Test
@Test
void getReleaseVersion_success() {
void getReleaseVersion_success() {
given().when().get(RELEASE_VERSION_URL, "eclipse_packages", "2021-12", "r").then().statusCode(200);
RestAssuredTemplates.testGet(GET_RELEASE_VERSION_SUCCESS);
}
}
@Test
@Test
void getReleaseVersion_invalidreleaseType() {
void getReleaseVersion_success_validSchema() {
given().when().get(RELEASE_VERSION_URL, "eclipse_packs", "2021-12", "r").then().statusCode(400);
RestAssuredTemplates.testGet_validateSchema(GET_RELEASE_VERSION_SUCCESS);
}
}
@Test
@Test
void getReleaseVersion_error_format() {
void getReleaseVersion_success_validResponseFormat() {
given().when().get(
RestAssuredTemplates.testGet_validateResponseFormat(GET_RELEASE_VERSION_SUCCESS);
RELEASE_VERSION_URL, "old", "2021-12", "r").then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.ERROR_SCHEMA_PATH));
}
}
@Test
@Test
void getReleaseVersion_success_format() {
void getReleaseVersion_failure_nameNotFound() {
given().when().get(RELEASE_VERSION_URL, "eclipse_packages",
RestAssuredTemplates.testGet(GET_RELEASE_VERSION_NOT_FOUND_NAME);
"2021-12", "r").then().assertThat()
}
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.RELEASE_SCHEMA_PATH));
 
@Test
 
void getReleaseVersion_failure_nameNotFound_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(GET_RELEASE_VERSION_NOT_FOUND_NAME);
 
}
 
 
@Test
 
void getReleaseVersion_failure_versionNotFound() {
 
RestAssuredTemplates.testGet(GET_RELEASE_VERSION_NOT_FOUND_VERSION);
 
}
 
 
@Test
 
void getReleaseVersion_failure_versionNotFound_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(GET_RELEASE_VERSION_NOT_FOUND_VERSION);
 
}
 
 
@Test
 
void getReleaseVersion_failure_invalidReleaseType() {
 
RestAssuredTemplates.testGet(GET_RELEASE_VERSION_INVALID_TYPE);
 
}
 
 
@Test
 
void getReleaseVersion_failure_invalidReleaseType_validSchema() {
 
RestAssuredTemplates.testGet_validateSchema(GET_RELEASE_VERSION_INVALID_TYPE);
 
}
 
 
void getReleaseVersion_failure_invalidRequestFormat() {
 
RestAssuredTemplates.testGet(GET_RELEASE_VERSION_INVALID_FORMAT);
}
}
}
}
Loading