Loading src/test/java/org/etsi/osl/services/api/so641/CommonTests.java 0 → 100644 +142 −0 Original line number Diff line number Diff line /*- * ========================LICENSE_START================================= * org.etsi.osl.tmf.api * %% * Copyright (C) 2019 - 2024 openslice.io * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * =========================LICENSE_END================================== */ package org.etsi.osl.services.api.so641; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.etsi.osl.tmf.so641.api.*; import org.junit.jupiter.api.Test; import org.springframework.mock.web.MockHttpServletRequest; import java.io.IOException; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class CommonTests { @Test public void testApiException() { int errorCode = 404; String errorMessage = "Not Found"; ApiException exception = new ApiException(errorCode, errorMessage); assertEquals(errorMessage, exception.getMessage()); } @Test public void testApiOriginFilter() throws IOException, ServletException { HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain chain = mock(FilterChain.class); ApiOriginFilter filter = new ApiOriginFilter(); filter.doFilter(request, response, chain); verify(response).addHeader("Access-Control-Allow-Origin", "*"); verify(response).addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); verify(response).addHeader("Access-Control-Allow-Headers", "Content-Type"); verify(chain).doFilter(request, response); } @Test public void testApiResponseMessage() { int[] codes = {ApiResponseMessage.ERROR, ApiResponseMessage.WARNING, ApiResponseMessage.INFO, ApiResponseMessage.OK, ApiResponseMessage.TOO_BUSY, 6}; String[] types = {"error", "warning", "info", "ok", "too busy", "unknown"}; String[] messages = {"An error occured", "This is a warning", "Given info", "ok", "System is too busy", "unknown code"}; for (int i = 0; i < codes.length; i++) { int code = codes[i]; String type = types[i]; String message = messages[i]; ApiResponseMessage responseMessage = new ApiResponseMessage(code, message); assertEquals(message, responseMessage.getMessage()); assertEquals(code, responseMessage.getCode()); assertEquals(type, responseMessage.getType()); } ApiResponseMessage responseMessage = new ApiResponseMessage(); responseMessage.setMessage("Error"); assertEquals("Error", responseMessage.getMessage()); responseMessage.setType("ok"); assertEquals("ok", responseMessage.getType()); responseMessage.setCode(ApiResponseMessage.OK); assertEquals(ApiResponseMessage.OK, responseMessage.getCode()); } @Test public void testHubApiController() { ObjectMapper objectMapper = new ObjectMapper(); HttpServletRequest request = new MockHttpServletRequest(); HubApiController controller = new HubApiController(objectMapper, request); Optional<ObjectMapper> returnedObjectMapper = controller.getObjectMapper(); Optional<HttpServletRequest> returnedRequest = controller.getRequest(); assertTrue(returnedObjectMapper.isPresent()); assertTrue(returnedRequest.isPresent()); assertEquals(objectMapper, returnedObjectMapper.get()); assertEquals(request, returnedRequest.get()); } @Test public void testListenerApiController() { ObjectMapper objectMapper = new ObjectMapper(); HttpServletRequest request = new MockHttpServletRequest(); ListenerApiController controller = new ListenerApiController(objectMapper, request); Optional<ObjectMapper> returnedObjectMapper = controller.getObjectMapper(); Optional<HttpServletRequest> returnedRequest = controller.getRequest(); assertTrue(returnedObjectMapper.isPresent()); assertTrue(returnedRequest.isPresent()); assertEquals(objectMapper, returnedObjectMapper.get()); assertEquals(request, returnedRequest.get()); } @Test public void testNotFoundException() { int errorCode = 404; String errorMessage = "Not Found"; NotFoundException exception = new NotFoundException(errorCode, errorMessage); assertEquals(errorMessage, exception.getMessage()); } } src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java 0 → 100644 +281 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.so641; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.Optional; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.IOUtils; import org.etsi.osl.tmf.OpenAPISpringBoot; import org.etsi.osl.tmf.common.model.service.Note; import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; import org.etsi.osl.tmf.scm633.model.ServiceSpecification; import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; import org.etsi.osl.tmf.so641.model.*; import org.etsi.osl.tmf.so641.reposervices.ServiceOrderRepoService; import org.etsi.osl.tmf.JsonUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.WebApplicationContext; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class ) //@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") public class ServiceOrderApiControllerTest { private static final int FIXED_BOOTSTRAPS_SPECS = 0; @Autowired private MockMvc mvc; @Autowired ServiceOrderRepoService serviceOrderRepoService; @Autowired private WebApplicationContext context; @Autowired private ObjectMapper objectMapper; @Before public void setup() throws Exception { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) .build(); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testCreateServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); assertThat( responsesServiceOrder.getDescription() ).isEqualTo( "A Test Service Order" ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testDeleteServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String id = responsesServiceOrder.getId(); mvc.perform(MockMvcRequestBuilders.delete("/serviceOrdering/v4/serviceOrder/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListServiceOrder() throws Exception { String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); List<ServiceOrder> serviceOrderList= objectMapper.readValue(response2, new TypeReference<List<ServiceOrder>>() {}); assertThat(serviceOrderList.size()).isEqualTo(serviceOrderRepoService.findAll().size()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testPatchServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String soId = responsesServiceOrder.getId(); ServiceOrderUpdate servOrderUpd = new ServiceOrderUpdate(); servOrderUpd.setState(ServiceOrderStateType.COMPLETED); servOrderUpd.setCategory("New Test Category"); servOrderUpd.setDescription("New Test Description"); String response2 = mvc.perform(MockMvcRequestBuilders.patch("/serviceOrdering/v4/serviceOrder/" + soId) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON) .content( JsonUtils.toJson( servOrderUpd ) )) .andExpect(status().isOk() ) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andReturn().getResponse().getContentAsString(); ServiceOrder responsesServiceOrder2 = JsonUtils.toJsonObj(response2, ServiceOrder.class); assertThat(responsesServiceOrder2.getState().toString()).isEqualTo("COMPLETED"); assertThat(responsesServiceOrder2.getDescription()).isEqualTo("New Test Description"); assertThat(responsesServiceOrder2.getCategory()).isEqualTo("New Test Category"); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String id = responsesServiceOrder.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); ServiceOrder responsesServiceOrder2 = JsonUtils.toJsonObj(response2, ServiceOrder.class); assertThat( responsesServiceOrder2.getDescription() ).isEqualTo( "A Test Service Order" ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testGetImageServiceOrderItemRelationshipGraph() throws Exception { // Create a Service Order String response = createServiceOrder(); ServiceOrder responsesOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String orderId = responsesOrder.getId(); String soiId = ""; Set<ServiceOrderItem> serviceOrderItemSet = responsesOrder.getOrderItem(); // Find the first element if present Optional<ServiceOrderItem> optionalFirstServiceOrderItem = serviceOrderItemSet.stream().findFirst(); if (optionalFirstServiceOrderItem.isPresent()) { soiId = optionalFirstServiceOrderItem.get().getId(); } String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + orderId + "/item/" + soiId + "/relationship_graph") ) .andExpect(status().is(302) ) .andReturn().getResponse().getRedirectedUrl(); assertThat( response2 ).contains("/blockdiag/svg/"); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testGetImageServiceOrderNotesGraph() throws Exception { // Create a Service Order String response = createServiceOrder(); ServiceOrder responsesOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String orderId = responsesOrder.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + orderId + "/notes_graph") ) .andExpect(status().is(302) ) .andReturn().getResponse().getRedirectedUrl(); assertThat( response2 ).contains("/actdiag/svg/"); } private String createServiceOrder() throws Exception { assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS); File sspec = new File("src/test/resources/testServiceSpec.json"); InputStream in = new FileInputStream(sspec); String sspectext = IOUtils.toString(in, "UTF-8"); ServiceSpecificationCreate sspeccr = JsonUtils.toJsonObj(sspectext, ServiceSpecificationCreate.class); sspeccr.setName("Spec1"); ServiceSpecification responsesSpec = createServiceSpec( sspeccr); ServiceOrderCreate serviceOrder = new ServiceOrderCreate(); serviceOrder.setCategory("Test Category"); serviceOrder.setDescription("A Test Service Order"); serviceOrder.setRequestedStartDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); serviceOrder.setRequestedCompletionDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); ServiceOrderItem soi = new ServiceOrderItem(); serviceOrder.getOrderItem().add(soi); soi.setState(ServiceOrderStateType.ACKNOWLEDGED); ServiceRestriction serviceRestriction = new ServiceRestriction(); ServiceSpecificationRef aServiceSpecificationRef = new ServiceSpecificationRef(); aServiceSpecificationRef.setId(responsesSpec.getId()); aServiceSpecificationRef.setName(responsesSpec.getName()); serviceRestriction.setServiceSpecification(aServiceSpecificationRef); serviceRestriction.setName("aServiceRestriction"); soi.setService(serviceRestriction); String response = mvc .perform(MockMvcRequestBuilders.post("/serviceOrdering/v4/serviceOrder") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(serviceOrder))) .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); ServiceOrder responseSO = JsonUtils.toJsonObj(response, ServiceOrder.class); assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); assertThat(responseSO.getCategory()).isEqualTo("Test Category"); assertThat(responseSO.getDescription()).isEqualTo("A Test Service Order"); return response; } private ServiceSpecification createServiceSpec( ServiceSpecificationCreate serviceSpecificationCreate) throws Exception { String response = mvc .perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(serviceSpecificationCreate))) .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); ServiceSpecification responsesSpec = JsonUtils.toJsonObj(response, ServiceSpecification.class); return responsesSpec; } } src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java 0 → 100644 +285 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
src/test/java/org/etsi/osl/services/api/so641/CommonTests.java 0 → 100644 +142 −0 Original line number Diff line number Diff line /*- * ========================LICENSE_START================================= * org.etsi.osl.tmf.api * %% * Copyright (C) 2019 - 2024 openslice.io * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * =========================LICENSE_END================================== */ package org.etsi.osl.services.api.so641; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.etsi.osl.tmf.so641.api.*; import org.junit.jupiter.api.Test; import org.springframework.mock.web.MockHttpServletRequest; import java.io.IOException; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class CommonTests { @Test public void testApiException() { int errorCode = 404; String errorMessage = "Not Found"; ApiException exception = new ApiException(errorCode, errorMessage); assertEquals(errorMessage, exception.getMessage()); } @Test public void testApiOriginFilter() throws IOException, ServletException { HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain chain = mock(FilterChain.class); ApiOriginFilter filter = new ApiOriginFilter(); filter.doFilter(request, response, chain); verify(response).addHeader("Access-Control-Allow-Origin", "*"); verify(response).addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); verify(response).addHeader("Access-Control-Allow-Headers", "Content-Type"); verify(chain).doFilter(request, response); } @Test public void testApiResponseMessage() { int[] codes = {ApiResponseMessage.ERROR, ApiResponseMessage.WARNING, ApiResponseMessage.INFO, ApiResponseMessage.OK, ApiResponseMessage.TOO_BUSY, 6}; String[] types = {"error", "warning", "info", "ok", "too busy", "unknown"}; String[] messages = {"An error occured", "This is a warning", "Given info", "ok", "System is too busy", "unknown code"}; for (int i = 0; i < codes.length; i++) { int code = codes[i]; String type = types[i]; String message = messages[i]; ApiResponseMessage responseMessage = new ApiResponseMessage(code, message); assertEquals(message, responseMessage.getMessage()); assertEquals(code, responseMessage.getCode()); assertEquals(type, responseMessage.getType()); } ApiResponseMessage responseMessage = new ApiResponseMessage(); responseMessage.setMessage("Error"); assertEquals("Error", responseMessage.getMessage()); responseMessage.setType("ok"); assertEquals("ok", responseMessage.getType()); responseMessage.setCode(ApiResponseMessage.OK); assertEquals(ApiResponseMessage.OK, responseMessage.getCode()); } @Test public void testHubApiController() { ObjectMapper objectMapper = new ObjectMapper(); HttpServletRequest request = new MockHttpServletRequest(); HubApiController controller = new HubApiController(objectMapper, request); Optional<ObjectMapper> returnedObjectMapper = controller.getObjectMapper(); Optional<HttpServletRequest> returnedRequest = controller.getRequest(); assertTrue(returnedObjectMapper.isPresent()); assertTrue(returnedRequest.isPresent()); assertEquals(objectMapper, returnedObjectMapper.get()); assertEquals(request, returnedRequest.get()); } @Test public void testListenerApiController() { ObjectMapper objectMapper = new ObjectMapper(); HttpServletRequest request = new MockHttpServletRequest(); ListenerApiController controller = new ListenerApiController(objectMapper, request); Optional<ObjectMapper> returnedObjectMapper = controller.getObjectMapper(); Optional<HttpServletRequest> returnedRequest = controller.getRequest(); assertTrue(returnedObjectMapper.isPresent()); assertTrue(returnedRequest.isPresent()); assertEquals(objectMapper, returnedObjectMapper.get()); assertEquals(request, returnedRequest.get()); } @Test public void testNotFoundException() { int errorCode = 404; String errorMessage = "Not Found"; NotFoundException exception = new NotFoundException(errorCode, errorMessage); assertEquals(errorMessage, exception.getMessage()); } }
src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java 0 → 100644 +281 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.so641; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.Optional; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.IOUtils; import org.etsi.osl.tmf.OpenAPISpringBoot; import org.etsi.osl.tmf.common.model.service.Note; import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef; import org.etsi.osl.tmf.scm633.model.ServiceSpecification; import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate; import org.etsi.osl.tmf.so641.model.*; import org.etsi.osl.tmf.so641.reposervices.ServiceOrderRepoService; import org.etsi.osl.tmf.JsonUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.WebApplicationContext; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class ) //@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") public class ServiceOrderApiControllerTest { private static final int FIXED_BOOTSTRAPS_SPECS = 0; @Autowired private MockMvc mvc; @Autowired ServiceOrderRepoService serviceOrderRepoService; @Autowired private WebApplicationContext context; @Autowired private ObjectMapper objectMapper; @Before public void setup() throws Exception { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) .build(); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testCreateServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); assertThat( responsesServiceOrder.getDescription() ).isEqualTo( "A Test Service Order" ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testDeleteServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String id = responsesServiceOrder.getId(); mvc.perform(MockMvcRequestBuilders.delete("/serviceOrdering/v4/serviceOrder/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListServiceOrder() throws Exception { String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); List<ServiceOrder> serviceOrderList= objectMapper.readValue(response2, new TypeReference<List<ServiceOrder>>() {}); assertThat(serviceOrderList.size()).isEqualTo(serviceOrderRepoService.findAll().size()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testPatchServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String soId = responsesServiceOrder.getId(); ServiceOrderUpdate servOrderUpd = new ServiceOrderUpdate(); servOrderUpd.setState(ServiceOrderStateType.COMPLETED); servOrderUpd.setCategory("New Test Category"); servOrderUpd.setDescription("New Test Description"); String response2 = mvc.perform(MockMvcRequestBuilders.patch("/serviceOrdering/v4/serviceOrder/" + soId) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON) .content( JsonUtils.toJson( servOrderUpd ) )) .andExpect(status().isOk() ) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andReturn().getResponse().getContentAsString(); ServiceOrder responsesServiceOrder2 = JsonUtils.toJsonObj(response2, ServiceOrder.class); assertThat(responsesServiceOrder2.getState().toString()).isEqualTo("COMPLETED"); assertThat(responsesServiceOrder2.getDescription()).isEqualTo("New Test Description"); assertThat(responsesServiceOrder2.getCategory()).isEqualTo("New Test Category"); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveServiceOrder() throws Exception { String response = createServiceOrder(); ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String id = responsesServiceOrder.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); ServiceOrder responsesServiceOrder2 = JsonUtils.toJsonObj(response2, ServiceOrder.class); assertThat( responsesServiceOrder2.getDescription() ).isEqualTo( "A Test Service Order" ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testGetImageServiceOrderItemRelationshipGraph() throws Exception { // Create a Service Order String response = createServiceOrder(); ServiceOrder responsesOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String orderId = responsesOrder.getId(); String soiId = ""; Set<ServiceOrderItem> serviceOrderItemSet = responsesOrder.getOrderItem(); // Find the first element if present Optional<ServiceOrderItem> optionalFirstServiceOrderItem = serviceOrderItemSet.stream().findFirst(); if (optionalFirstServiceOrderItem.isPresent()) { soiId = optionalFirstServiceOrderItem.get().getId(); } String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + orderId + "/item/" + soiId + "/relationship_graph") ) .andExpect(status().is(302) ) .andReturn().getResponse().getRedirectedUrl(); assertThat( response2 ).contains("/blockdiag/svg/"); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testGetImageServiceOrderNotesGraph() throws Exception { // Create a Service Order String response = createServiceOrder(); ServiceOrder responsesOrder = JsonUtils.toJsonObj(response, ServiceOrder.class); String orderId = responsesOrder.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceOrdering/v4/serviceOrder/" + orderId + "/notes_graph") ) .andExpect(status().is(302) ) .andReturn().getResponse().getRedirectedUrl(); assertThat( response2 ).contains("/actdiag/svg/"); } private String createServiceOrder() throws Exception { assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS); File sspec = new File("src/test/resources/testServiceSpec.json"); InputStream in = new FileInputStream(sspec); String sspectext = IOUtils.toString(in, "UTF-8"); ServiceSpecificationCreate sspeccr = JsonUtils.toJsonObj(sspectext, ServiceSpecificationCreate.class); sspeccr.setName("Spec1"); ServiceSpecification responsesSpec = createServiceSpec( sspeccr); ServiceOrderCreate serviceOrder = new ServiceOrderCreate(); serviceOrder.setCategory("Test Category"); serviceOrder.setDescription("A Test Service Order"); serviceOrder.setRequestedStartDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); serviceOrder.setRequestedCompletionDate(OffsetDateTime.now(ZoneOffset.UTC).toString()); ServiceOrderItem soi = new ServiceOrderItem(); serviceOrder.getOrderItem().add(soi); soi.setState(ServiceOrderStateType.ACKNOWLEDGED); ServiceRestriction serviceRestriction = new ServiceRestriction(); ServiceSpecificationRef aServiceSpecificationRef = new ServiceSpecificationRef(); aServiceSpecificationRef.setId(responsesSpec.getId()); aServiceSpecificationRef.setName(responsesSpec.getName()); serviceRestriction.setServiceSpecification(aServiceSpecificationRef); serviceRestriction.setName("aServiceRestriction"); soi.setService(serviceRestriction); String response = mvc .perform(MockMvcRequestBuilders.post("/serviceOrdering/v4/serviceOrder") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(serviceOrder))) .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); ServiceOrder responseSO = JsonUtils.toJsonObj(response, ServiceOrder.class); assertThat( serviceOrderRepoService.findAll().size() ).isEqualTo( FIXED_BOOTSTRAPS_SPECS + 1 ); assertThat(responseSO.getCategory()).isEqualTo("Test Category"); assertThat(responseSO.getDescription()).isEqualTo("A Test Service Order"); return response; } private ServiceSpecification createServiceSpec( ServiceSpecificationCreate serviceSpecificationCreate) throws Exception { String response = mvc .perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(serviceSpecificationCreate))) .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); ServiceSpecification responsesSpec = JsonUtils.toJsonObj(response, ServiceSpecification.class); return responsesSpec; } }
src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java 0 → 100644 +285 −0 File added.Preview size limit exceeded, changes collapsed. Show changes