Skip to content
Snippets Groups Projects
Commit 5920c8ef authored by Martin Lowe's avatar Martin Lowe :flag_ca:
Browse files

Merge branch 'zacharysabourin/main/5' into 'main'

feat: migrate tests to testing package + add new tests

Closes #5

See merge request !9
parents ff91b99f 7790293e
No related branches found
No related tags found
1 merge request!9feat: migrate tests to testing package + add new tests
Pipeline #10906 passed
......@@ -147,6 +147,12 @@
<artifactId>quarkus-junit5-mockito</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipsefoundation</groupId>
<artifactId>quarkus-test-common</artifactId>
<version>${eclipse-api-version}</version>
<scope>test</scope>
</dependency>
<!-- Following H2/devservices deps are made to circumvent need for docker -->
<dependency>
......
......@@ -11,19 +11,16 @@
**********************************************************************/
package org.eclipsefoundation.mailing.resources;
import static io.restassured.RestAssured.given;
import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
import javax.inject.Inject;
import org.eclipsefoundation.mailing.test.namespace.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.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.http.ContentType;
@TestInstance(Lifecycle.PER_CLASS)
@QuarkusTest
......@@ -36,72 +33,203 @@ class MailingListsResourceTests {
public static final String AVAILABLE_PROJECTS_MAILING_LISTS_URL = PROJECTS_MAILING_LISTS_URL + "/available";
public static final String PROJECT_MAILING_LISTS_URL = PROJECTS_MAILING_LISTS_URL + "/{projectID}";
@Inject
ObjectMapper json;
/*
* GET ALL
*/
public static final EndpointTestCase GET_ALL_SUCCESS = TestCaseHelper.buildSuccessCase(MAILING_LISTS_BASE_URL,
new String[] {}, SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH);
public static final EndpointTestCase GET_ALL_INVALID_FORMAT = TestCaseHelper.buildInvalidFormatCase(
MAILING_LISTS_BASE_URL, new String[] {}, ContentType.TEXT);
/*
* GET AVAILABLE
*/
public static final EndpointTestCase GET_AVAILABLE_SUCCESS = TestCaseHelper.buildSuccessCase(
AVAILABLE_MAILING_LISTS_URL, new String[] {}, SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH);
public static final EndpointTestCase GET_AVAILABLE_INVALID_FORMAT = TestCaseHelper.buildInvalidFormatCase(
AVAILABLE_MAILING_LISTS_URL, new String[] {}, ContentType.XML);
/*
* BY NAME
*/
public static final EndpointTestCase GET_MAILING_LISTS_BY_NAME_SUCCESS = TestCaseHelper.buildSuccessCase(
MAILING_LISTS_BY_NAME_URL, new String[] { "eclipse-dev" }, SchemaNamespaceHelper.MAILING_LIST_SCHEMA_PATH);
public static final EndpointTestCase GET_MAILING_LISTS_BY_NAME_INVALID_FORMAT = TestCaseHelper
.buildInvalidFormatCase(MAILING_LISTS_BY_NAME_URL, new String[] { "eclipse-dev" }, ContentType.XML);
public static final EndpointTestCase GET_MAILING_LISTS_BY_NAME_NOT_FOUND = TestCaseHelper.buildNotFoundCase(
MAILING_LISTS_BY_NAME_URL, new String[] { "elipse-dem" });
/*
* GET PROJECTS MAILING LISTS
*/
public static final EndpointTestCase GET_PROJECTS_MAILING_LISTS_SUCCESS = TestCaseHelper.buildSuccessCase(
PROJECTS_MAILING_LISTS_URL, new String[] {}, SchemaNamespaceHelper.MAILING_LIST_MAPPING_SCHEMA_PATH);
public static final EndpointTestCase GET_PROJECTS_MAILING_LISTS_INVALID_FORMAT = TestCaseHelper
.buildInvalidFormatCase(PROJECTS_MAILING_LISTS_URL, new String[] {}, ContentType.XML);
/*
* GET AVAILABLE PROJECTS
*/
public static final EndpointTestCase GET_AVAILABLE_PROJECTS_MAILING_LISTS_SUCCESS = TestCaseHelper.buildSuccessCase(
AVAILABLE_PROJECTS_MAILING_LISTS_URL, new String[] {}, SchemaNamespaceHelper.MAILING_LIST_MAPPING_SCHEMA_PATH);
public static final EndpointTestCase GET_AVAILABLE_PROJECTS_MAILING_LISTS_INVALID_FORMAT = TestCaseHelper
.buildInvalidFormatCase(AVAILABLE_PROJECTS_MAILING_LISTS_URL, new String[] {}, ContentType.XML);
/*
* PROJECTS MAILING LISTS BY NAME
*/
public static final EndpointTestCase GET_PROJECTS_MAILING_LISTS_BY_ID_SUCCESS = TestCaseHelper.buildSuccessCase(
PROJECT_MAILING_LISTS_URL, new String[] { "ee4j" }, SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH);
public static final EndpointTestCase GET_PROJECTS_MAILING_LISTS_BY_ID_INVALID_FORMAT = TestCaseHelper
.buildInvalidFormatCase(PROJECT_MAILING_LISTS_URL, new String[] { "ee4j" }, ContentType.XML);
/*
* GET ALL
*/
@Test
void getMailingLists_success() {
given().when().get(MAILING_LISTS_BASE_URL).then().statusCode(200);
RestAssuredTemplates.testGet(GET_ALL_SUCCESS);
}
@Test
void getMailingLists_success_format() {
given().when().get(MAILING_LISTS_BASE_URL).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH));
void getMailingLists_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_ALL_SUCCESS);
}
@Test
void getMailingLists_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_ALL_SUCCESS);
}
@Test
void getMailingLists_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_ALL_INVALID_FORMAT);
}
/*
* GET AVAILABLE
*/
@Test
void getAvailableMailingLists_success() {
given().when().get(AVAILABLE_MAILING_LISTS_URL).then().statusCode(200);
RestAssuredTemplates.testGet(GET_AVAILABLE_SUCCESS);
}
@Test
void getAvailableMailingLists_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_AVAILABLE_SUCCESS);
}
@Test
void getAvailableMailingLists_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_AVAILABLE_SUCCESS);
}
@Test
void getAvailableMailingLists_success_format() {
given().when().get(AVAILABLE_MAILING_LISTS_URL).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH));
void getAvailableMailingLists_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_AVAILABLE_INVALID_FORMAT);
}
/*
* BY NAME
*/
@Test
void getMailingList_success() {
given().when().get(MAILING_LISTS_BY_NAME_URL, "eclipse-dev").then().statusCode(200);
RestAssuredTemplates.testGet(GET_MAILING_LISTS_BY_NAME_SUCCESS);
}
@Test
void getMailingList_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_MAILING_LISTS_BY_NAME_SUCCESS);
}
@Test
void getMailingList_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_MAILING_LISTS_BY_NAME_SUCCESS);
}
@Test
void getMailingList_success_format() {
given().when().get(MAILING_LISTS_BY_NAME_URL, "eclipse-dev").then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LIST_SCHEMA_PATH));
void getMailingList_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_MAILING_LISTS_BY_NAME_INVALID_FORMAT);
}
@Test
void getMailingList_failure_notFound() {
RestAssuredTemplates.testGet(GET_MAILING_LISTS_BY_NAME_NOT_FOUND);
}
/*
* GET PROJECTS MAILING LISTS
*/
@Test
void getProjectsMailingLists_success() {
given().when().get(PROJECTS_MAILING_LISTS_URL).then().statusCode(200);
RestAssuredTemplates.testGet(GET_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getProjectsMailingLists_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getProjectsMailingLists_success_format() {
given().when().get(PROJECTS_MAILING_LISTS_URL).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LIST_MAPPING_SCHEMA_PATH));
void getProjectsMailingLists_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getProjectsMailingLists_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_PROJECTS_MAILING_LISTS_INVALID_FORMAT);
}
/*
* GET AVILABLE PROJECTS MAILING LISTS
*/
@Test
void getAvailableProjectsMailingLists_success() {
given().when().get(AVAILABLE_PROJECTS_MAILING_LISTS_URL).then().statusCode(200);
RestAssuredTemplates.testGet(GET_AVAILABLE_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getAvailableProjectsMailingLists_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_AVAILABLE_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getAvailableProjectsMailingLists_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_AVAILABLE_PROJECTS_MAILING_LISTS_SUCCESS);
}
@Test
void getAvailableProjectsMailingLists_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_AVAILABLE_PROJECTS_MAILING_LISTS_INVALID_FORMAT);
}
/*
* GET PROJECT MAILING LIST BY ID
*/
@Test
void getProjectMailingList_success() {
RestAssuredTemplates.testGet(GET_PROJECTS_MAILING_LISTS_BY_ID_SUCCESS);
}
@Test
void getAvailableProjectsMailingLists_success_format() {
given().when().get(AVAILABLE_PROJECTS_MAILING_LISTS_URL).then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LIST_MAPPING_SCHEMA_PATH));
void getProjectMailingList_success_validResponseFormat() {
RestAssuredTemplates.testGet_validateResponseFormat(GET_PROJECTS_MAILING_LISTS_BY_ID_SUCCESS);
}
@Test
void getProjectMailingLists_success() {
given().when().get(PROJECT_MAILING_LISTS_URL, "ee4j").then().statusCode(200);
void getProjectMailingList_success_validSchema() {
RestAssuredTemplates.testGet_validateSchema(GET_PROJECTS_MAILING_LISTS_BY_ID_SUCCESS);
}
@Test
void getProjectMailingLists_success_format() {
given().when().get(PROJECT_MAILING_LISTS_URL, "ee4j").then().assertThat()
.body(matchesJsonSchemaInClasspath(SchemaNamespaceHelper.MAILING_LISTS_SCHEMA_PATH));
void getProjectMailingList_failure_invalidFormat() {
RestAssuredTemplates.testGet(GET_PROJECTS_MAILING_LISTS_BY_ID_INVALID_FORMAT);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment