diff --git a/common/taskana-common-test/pom.xml b/common/taskana-common-test/pom.xml index 4978a8f12..ab2cb963d 100644 --- a/common/taskana-common-test/pom.xml +++ b/common/taskana-common-test/pom.xml @@ -72,6 +72,14 @@ + + org.springframework.restdocs + spring-restdocs-core + + + org.springframework.restdocs + spring-restdocs-mockmvc + diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/BaseRestDocumentation.java b/common/taskana-common-test/src/main/java/pro/taskana/common/test/doc/api/BaseRestDocumentation.java similarity index 93% rename from rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/BaseRestDocumentation.java rename to common/taskana-common-test/src/main/java/pro/taskana/common/test/doc/api/BaseRestDocumentation.java index a22071ca9..60ac072f5 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/BaseRestDocumentation.java +++ b/common/taskana-common-test/src/main/java/pro/taskana/common/test/doc/api/BaseRestDocumentation.java @@ -1,4 +1,4 @@ -package pro.taskana.doc.api; +package pro.taskana.common.test.doc.api; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; @@ -13,9 +13,9 @@ import org.springframework.context.annotation.Import; import org.springframework.test.web.servlet.MockMvc; import org.springframework.web.context.WebApplicationContext; +import pro.taskana.common.test.doc.api.BaseRestDocumentation.ResultHandlerConfiguration; import pro.taskana.common.test.rest.RestHelper; import pro.taskana.common.test.rest.TaskanaSpringBootTest; -import pro.taskana.doc.api.BaseRestDocumentation.ResultHandlerConfiguration; /** Base class for Rest Documentation tests. */ @TaskanaSpringBootTest diff --git a/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/doc/api/TaskHistoryEventControllerRestDocumentation.java b/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/doc/api/TaskHistoryEventControllerRestDocumentation.java index 5b8377185..bd938de1f 100644 --- a/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/doc/api/TaskHistoryEventControllerRestDocumentation.java +++ b/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/doc/api/TaskHistoryEventControllerRestDocumentation.java @@ -1,10 +1,5 @@ package pro.taskana.doc.api; -import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; -import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; import static org.springframework.restdocs.payload.PayloadDocumentation.subsectionWithPath; @@ -12,54 +7,24 @@ import static org.springframework.restdocs.payload.PayloadDocumentation.subsecti import java.util.HashMap; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; -import org.springframework.restdocs.RestDocumentationContextProvider; -import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.payload.FieldDescriptor; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; -import pro.taskana.simplehistory.rest.TaskHistoryRestConfiguration; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate documentation for the history event controller. */ -@SpringBootTest( - classes = TaskHistoryRestConfiguration.class, - webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ExtendWith({RestDocumentationExtension.class, SpringExtension.class}) -public class TaskHistoryEventControllerRestDocumentation { +public class TaskHistoryEventControllerRestDocumentation extends BaseRestDocumentation { - @LocalServerPort int port; - - private MockMvc mockMvc; private final HashMap taskHistoryEventFieldDescriptionsMap = new HashMap<>(); private FieldDescriptor[] allTaskHistoryEventFieldDescriptors; - private FieldDescriptor[] taskHistoryEventFieldDescriptors; @BeforeEach - public void setUp( - WebApplicationContext webApplicationContext, - RestDocumentationContextProvider restDocumentationContextProvider) { - document("{methodName}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())); - - this.mockMvc = - MockMvcBuilders.webAppContextSetup(webApplicationContext) - .apply( - documentationConfiguration(restDocumentationContextProvider) - .operationPreprocessors() - .withResponseDefaults(prettyPrint()) - .withRequestDefaults(prettyPrint())) - .build(); - + public void setUp() { taskHistoryEventFieldDescriptionsMap.put("taskHistoryId", "Unique ID"); taskHistoryEventFieldDescriptionsMap.put("businessProcessId", "The id of the business process"); taskHistoryEventFieldDescriptionsMap.put( @@ -160,7 +125,7 @@ public class TaskHistoryEventControllerRestDocumentation { RestDocumentationRequestBuilders.get( "http://127.0.0.1:" + port + "/api/v1/task-history-event?page=1&page-size=3") .accept("application/hal+json") - .header("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x")) + .header("Authorization", TEAMLEAD_1_CREDENTIALS)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo( MockMvcRestDocumentation.document( @@ -177,7 +142,7 @@ public class TaskHistoryEventControllerRestDocumentation { + port + "/api/v1/task-history-event/HEI:000000000000000000000000000000000000") .accept("application/hal+json") - .header("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x")) + .header("Authorization", TEAMLEAD_1_CREDENTIALS)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo( MockMvcRestDocumentation.document( diff --git a/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/simplehistory/rest/assembler/TaskHistoryEventRepresentationModelAssemblerTest.java b/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/simplehistory/rest/assembler/TaskHistoryEventRepresentationModelAssemblerTest.java index a59865dd7..1a5998427 100644 --- a/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/simplehistory/rest/assembler/TaskHistoryEventRepresentationModelAssemblerTest.java +++ b/history/taskana-simplehistory-rest-spring/src/test/java/pro/taskana/simplehistory/rest/assembler/TaskHistoryEventRepresentationModelAssemblerTest.java @@ -4,36 +4,27 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.Instant; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import pro.taskana.simplehistory.rest.TaskHistoryRestConfiguration; +import pro.taskana.common.test.rest.TaskanaSpringBootTest; import pro.taskana.simplehistory.rest.models.TaskHistoryEventRepresentationModel; import pro.taskana.spi.history.api.events.task.TaskHistoryCustomField; import pro.taskana.spi.history.api.events.task.TaskHistoryEvent; /** Test for {@link TaskHistoryEventRepresentationModelAssembler}. */ -@ExtendWith(SpringExtension.class) -@SpringBootTest( - classes = {TaskHistoryRestConfiguration.class}, - webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@TaskanaSpringBootTest class TaskHistoryEventRepresentationModelAssemblerTest { - private final TaskHistoryEventRepresentationModelAssembler - taskHistoryEventRepresentationModelAssembler; + private final TaskHistoryEventRepresentationModelAssembler assembler; @Autowired TaskHistoryEventRepresentationModelAssemblerTest( - TaskHistoryEventRepresentationModelAssembler taskHistoryEventRepresentationModelAssembler) { - this.taskHistoryEventRepresentationModelAssembler = - taskHistoryEventRepresentationModelAssembler; + TaskHistoryEventRepresentationModelAssembler assembler) { + this.assembler = assembler; } @Test void taskHistoryEventModelToResource() { - TaskHistoryEvent historyEvent = new TaskHistoryEvent(); historyEvent.setEventType("TASK_CREATED"); @@ -57,7 +48,7 @@ class TaskHistoryEventRepresentationModelAssemblerTest { historyEvent.setCustomAttribute(TaskHistoryCustomField.CUSTOM_4, "custom4"); TaskHistoryEventRepresentationModel taskHistoryEventRepresentationModel = - taskHistoryEventRepresentationModelAssembler.toModel(historyEvent); + assembler.toModel(historyEvent); testEquality(historyEvent, taskHistoryEventRepresentationModel); } diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/AbstractPagingControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/AbstractPagingControllerRestDocumentation.java index 20d17e79d..3d0a3ead3 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/AbstractPagingControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/AbstractPagingControllerRestDocumentation.java @@ -13,6 +13,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate Rest Docu for AbstractPagingController. */ class AbstractPagingControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java index 75a36a50f..732f2f156 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java @@ -21,6 +21,7 @@ import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST Dokumentation for ClassificationController. */ class ClassificationControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationDefinitionControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationDefinitionControllerRestDocumentation.java index 99fcf119f..816c3551c 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationDefinitionControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/ClassificationDefinitionControllerRestDocumentation.java @@ -16,6 +16,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Test ClassificationDefinitionControlller. */ class ClassificationDefinitionControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/CommonRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/CommonRestDocumentation.java index 05eaacb6f..d8b9782e9 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/CommonRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/CommonRestDocumentation.java @@ -12,6 +12,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate common REST Documentation. */ class CommonRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/MonitorControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/MonitorControllerRestDocumentation.java index 6d8e77f7c..53f6ae63e 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/MonitorControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/MonitorControllerRestDocumentation.java @@ -12,6 +12,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST docu for the monitor controller. */ class MonitorControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskCommentControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskCommentControllerRestDocumentation.java index 20e835585..fa5d6a411 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskCommentControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskCommentControllerRestDocumentation.java @@ -23,6 +23,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; import pro.taskana.common.rest.models.TaskanaPagedModelKeys; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; class TaskCommentControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java index 863752c85..a1270919b 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java @@ -21,6 +21,7 @@ import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST Documentation for the TaskController. */ class TaskControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskanaEngineControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskanaEngineControllerRestDocumentation.java index 0821e8966..887ccfb21 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskanaEngineControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/TaskanaEngineControllerRestDocumentation.java @@ -11,6 +11,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST Docu for the TaskanaEngineController. */ class TaskanaEngineControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketAccessItemControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketAccessItemControllerRestDocumentation.java index 90ff10c9a..20598d1ba 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketAccessItemControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketAccessItemControllerRestDocumentation.java @@ -13,6 +13,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST Docu for the WorkbasketAccessItemController. */ class WorkbasketAccessItemControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketControllerRestDocumentation.java index 62048512e..2d81df03c 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketControllerRestDocumentation.java @@ -22,6 +22,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; import pro.taskana.common.rest.models.TaskanaPagedModelKeys; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate REST Documentatioon for the WorkbasketController. */ class WorkbasketControllerRestDocumentation extends BaseRestDocumentation { diff --git a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketDefinitionControllerRestDocumentation.java b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketDefinitionControllerRestDocumentation.java index 93e1b84ff..0759214ed 100644 --- a/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketDefinitionControllerRestDocumentation.java +++ b/rest/taskana-rest-spring/src/test/java/pro/taskana/doc/api/WorkbasketDefinitionControllerRestDocumentation.java @@ -16,6 +16,7 @@ import org.springframework.restdocs.payload.FieldDescriptor; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import pro.taskana.common.rest.Mapping; +import pro.taskana.common.test.doc.api.BaseRestDocumentation; /** Generate Rest Documentation for Workbasket Definitions. */ class WorkbasketDefinitionControllerRestDocumentation extends BaseRestDocumentation {