diff --git a/server/src/test/java/de/uftos/e2e/StudentsTest.java b/server/src/test/java/de/uftos/e2e/StudentsTest.java index 67ce5712f..51b44ee16 100644 --- a/server/src/test/java/de/uftos/e2e/StudentsTest.java +++ b/server/src/test/java/de/uftos/e2e/StudentsTest.java @@ -1,5 +1,8 @@ package de.uftos.e2e; +import static de.uftos.utils.JsonGenerator.generatePageJson; +import static de.uftos.utils.JsonGenerator.generateStudentJson; +import static de.uftos.utils.JsonGenerator.generateTagJson; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; @@ -8,7 +11,6 @@ import java.util.Collections; import java.util.List; import org.json.JSONException; -import org.json.JSONObject; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -89,31 +91,6 @@ static void deleteCreatedStudents() { .statusCode(200); } - private static String generateStudentJson(String firstName, String lastName, List tags) - throws JSONException { - return new JSONObject() - .put("firstName", firstName) - .put("lastName", lastName) - .put("tags", tags) - .toString(); - } - - private static String generateTagJson(String name) - throws JSONException { - return new JSONObject() - .put("tagName", name) - .toString(); - } - - private static String generatePageJson(int page, int size, List sort) - throws JSONException { - return new JSONObject() - .put("page", page) - .put("size", size) - .put("sort", sort) - .toString(); - } - @Test void getAllStudents() throws JSONException { given().contentType(ContentType.JSON) diff --git a/server/src/test/java/de/uftos/e2e/SubjectsTest.java b/server/src/test/java/de/uftos/e2e/SubjectsTest.java index e924457d0..098c1b2db 100644 --- a/server/src/test/java/de/uftos/e2e/SubjectsTest.java +++ b/server/src/test/java/de/uftos/e2e/SubjectsTest.java @@ -1,14 +1,14 @@ package de.uftos.e2e; +import static de.uftos.utils.JsonGenerator.generatePageJson; +import static de.uftos.utils.JsonGenerator.generateSubjectJson; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; import io.restassured.http.ContentType; import java.util.Collections; -import java.util.List; import org.json.JSONException; -import org.json.JSONObject; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -63,23 +63,6 @@ static void deleteCreatedStudents() { .statusCode(200); } - private static String generateSubjectJson(String name) - throws JSONException { - return new JSONObject() - .put("name", name) - .put("tags", Collections.emptyList()) - .toString(); - } - - private static String generatePageJson(int page, int size, List sort) - throws JSONException { - return new JSONObject() - .put("page", page) - .put("size", size) - .put("sort", sort) - .toString(); - } - @Test void getAllSubjects() throws JSONException { given().contentType(ContentType.JSON) diff --git a/server/src/test/java/de/uftos/utils/JsonGenerator.java b/server/src/test/java/de/uftos/utils/JsonGenerator.java new file mode 100644 index 000000000..52429397e --- /dev/null +++ b/server/src/test/java/de/uftos/utils/JsonGenerator.java @@ -0,0 +1,81 @@ +package de.uftos.utils; + +import java.util.List; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +/** + * This class helps to generate the JSON needed for the E2E tests. + */ +public class JsonGenerator { + + /** + * Generates the student JSON. + * + * @param firstName The first name of the student + * @param lastName The last name of the student + * @param tags The ids of the tags the student has + * @return The requested JSON + * @throws JSONException If something is malformed. + */ + public static String generateStudentJson(String firstName, String lastName, List tags) + throws JSONException { + JSONArray jsonArray = new JSONArray(); + tags.forEach(jsonArray::put); + return new JSONObject() + .put("firstName", firstName) + .put("lastName", lastName) + .put("tagIds", jsonArray) + .toString(); + } + + /** + * Generates the subject JSON. + * + * @param name The name of the subject + * @return The requested JSON + * @throws JSONException If something is malformed. + */ + public static String generateSubjectJson(String name) + throws JSONException { + return new JSONObject() + .put("name", name) + .put("tagIds", new JSONArray()) + .toString(); + } + + /** + * Generates the tag JSON. + * + * @param name The name of the tag + * @return The requested JSON + * @throws JSONException If something is malformed. + */ + public static String generateTagJson(String name) + throws JSONException { + return new JSONObject() + .put("tagName", name) + .toString(); + } + + /** + * Generates the page JSON. + * + * @param page The page number + * @param size The size of the page + * @param sort How the data should be sorted + * @return The requested JSON + * @throws JSONException If something is malformed. + */ + public static String generatePageJson(int page, int size, List sort) + throws JSONException { + JSONArray jsonArray = new JSONArray(); + sort.forEach(jsonArray::put); + return new JSONObject() + .put("page", page) + .put("size", size) + .put("sort", jsonArray) + .toString(); + } +}