Loading src/test/java/org/etsi/osl/services/api/sim638/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.sim638; 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.sim638.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/sim638/RFC3339DateFormatTest.java 0 → 100644 +25 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.sim638; import java.text.FieldPosition; import java.util.Date; import org.etsi.osl.tmf.sim638.api.RFC3339DateFormat; import org.junit.Test; import static org.junit.Assert.assertEquals; public class RFC3339DateFormatTest { @Test public void testFormat() { RFC3339DateFormat rfc3339DateFormat = new RFC3339DateFormat(); Date date = new Date(1637484321000L); StringBuffer stringBuffer = new StringBuffer(); FieldPosition fieldPosition = new FieldPosition(0); StringBuffer formattedDate = rfc3339DateFormat.format(date, stringBuffer, fieldPosition); assertEquals("2021-11-21T08:45:21.000Z", formattedDate.toString()); } } src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java 0 → 100644 +237 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.sim638; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.IOUtils; import org.etsi.osl.tmf.JsonUtils; import org.etsi.osl.tmf.OpenAPISpringBoot; 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.sim638.api.ServiceApiController; import org.etsi.osl.tmf.sim638.model.Service; import org.etsi.osl.tmf.sim638.model.ServiceCreate; import org.etsi.osl.tmf.sim638.service.ServiceRepoService; import org.etsi.osl.tmf.so641.model.*; 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.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; 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; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.security.Principal; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) //@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( // locations = "classpath:application-testing.yml") public class ServiceApiControllerTest { @Autowired private MockMvc mvc; @Autowired ServiceRepoService serviceRepoService; @Autowired private WebApplicationContext context; @Autowired private ObjectMapper objectMapper; private ServiceApiController mockServiceApiController; private ServiceRepoService mockServiceRepoService; @Before public void setup() throws Exception { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) .build(); // Mocks mockServiceRepoService = mock(ServiceRepoService.class); ObjectMapper mockObjectMapper = mock(ObjectMapper.class); mockServiceApiController = new ServiceApiController(mockObjectMapper, null); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testDeleteService() throws Exception { String response = createService(); Service responsesService = JsonUtils.toJsonObj(response, Service.class); String id = responsesService.getId(); mvc.perform(MockMvcRequestBuilders.delete("/serviceInventory/v4/service/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().is(501) ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListService() throws Exception { String response = mvc.perform(MockMvcRequestBuilders.get("/serviceInventory/v4/service" ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); List<Service> serviceList = objectMapper.readValue(response, new TypeReference<List<Service>>() {}); assertThat(serviceList.size()).isEqualTo(serviceRepoService.findAll().size()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveService() throws Exception { String response = createService(); Service responsesService = JsonUtils.toJsonObj(response, Service.class); String id = responsesService.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceInventory/v4/service/" + id) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); Service responsesService2 = JsonUtils.toJsonObj(response2, Service.class); assertThat(responsesService2.getId()).isEqualTo(responsesService.getId()); assertThat(responsesService2.getCategory()).isEqualTo(responsesService.getCategory()); assertThat(responsesService2.getName()).isEqualTo(responsesService.getName()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testCreateServiceHandleException() { ServiceCreate serviceCreate = new ServiceCreate(); serviceCreate.setName("Test name"); when(mockServiceRepoService.addService(any())) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<Service> response = mockServiceApiController.createService(mock(Principal.class), serviceCreate); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListServiceHandleException(){ when(mockServiceRepoService.findAll()) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<List<Service>> response = mockServiceApiController.listService(mock(Principal.class), null, null, null); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveServiceHandleException(){ when(mockServiceRepoService.findByUuid(any())) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<Service> response = mockServiceApiController.retrieveService(mock(Principal.class), "test id", ""); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } private String createService() throws Exception { int servicesCount = serviceRepoService.findAll().size(); 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"); 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("/serviceInventory/v4/service") .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(); Service responseService = JsonUtils.toJsonObj(response, Service.class); assertThat( serviceRepoService.findAll().size() ).isEqualTo( servicesCount + 1 ); assertThat(responseService.getCategory()).isEqualTo("Test Category"); assertThat(responseService.getDescription()).isEqualTo("A Test Service"); 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/sim638/ServiceRepoServiceTest.java 0 → 100644 +478 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
src/test/java/org/etsi/osl/services/api/sim638/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.sim638; 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.sim638.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/sim638/RFC3339DateFormatTest.java 0 → 100644 +25 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.sim638; import java.text.FieldPosition; import java.util.Date; import org.etsi.osl.tmf.sim638.api.RFC3339DateFormat; import org.junit.Test; import static org.junit.Assert.assertEquals; public class RFC3339DateFormatTest { @Test public void testFormat() { RFC3339DateFormat rfc3339DateFormat = new RFC3339DateFormat(); Date date = new Date(1637484321000L); StringBuffer stringBuffer = new StringBuffer(); FieldPosition fieldPosition = new FieldPosition(0); StringBuffer formattedDate = rfc3339DateFormat.format(date, stringBuffer, fieldPosition); assertEquals("2021-11-21T08:45:21.000Z", formattedDate.toString()); } }
src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java 0 → 100644 +237 −0 Original line number Diff line number Diff line package org.etsi.osl.services.api.sim638; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.IOUtils; import org.etsi.osl.tmf.JsonUtils; import org.etsi.osl.tmf.OpenAPISpringBoot; 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.sim638.api.ServiceApiController; import org.etsi.osl.tmf.sim638.model.Service; import org.etsi.osl.tmf.sim638.model.ServiceCreate; import org.etsi.osl.tmf.sim638.service.ServiceRepoService; import org.etsi.osl.tmf.so641.model.*; 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.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; 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; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.security.Principal; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) //@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( // locations = "classpath:application-testing.yml") public class ServiceApiControllerTest { @Autowired private MockMvc mvc; @Autowired ServiceRepoService serviceRepoService; @Autowired private WebApplicationContext context; @Autowired private ObjectMapper objectMapper; private ServiceApiController mockServiceApiController; private ServiceRepoService mockServiceRepoService; @Before public void setup() throws Exception { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) .build(); // Mocks mockServiceRepoService = mock(ServiceRepoService.class); ObjectMapper mockObjectMapper = mock(ObjectMapper.class); mockServiceApiController = new ServiceApiController(mockObjectMapper, null); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testDeleteService() throws Exception { String response = createService(); Service responsesService = JsonUtils.toJsonObj(response, Service.class); String id = responsesService.getId(); mvc.perform(MockMvcRequestBuilders.delete("/serviceInventory/v4/service/" + id ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().is(501) ); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListService() throws Exception { String response = mvc.perform(MockMvcRequestBuilders.get("/serviceInventory/v4/service" ) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); List<Service> serviceList = objectMapper.readValue(response, new TypeReference<List<Service>>() {}); assertThat(serviceList.size()).isEqualTo(serviceRepoService.findAll().size()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveService() throws Exception { String response = createService(); Service responsesService = JsonUtils.toJsonObj(response, Service.class); String id = responsesService.getId(); String response2 = mvc.perform(MockMvcRequestBuilders.get("/serviceInventory/v4/service/" + id) .with( SecurityMockMvcRequestPostProcessors.csrf()) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk() ) .andReturn().getResponse().getContentAsString(); Service responsesService2 = JsonUtils.toJsonObj(response2, Service.class); assertThat(responsesService2.getId()).isEqualTo(responsesService.getId()); assertThat(responsesService2.getCategory()).isEqualTo(responsesService.getCategory()); assertThat(responsesService2.getName()).isEqualTo(responsesService.getName()); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testCreateServiceHandleException() { ServiceCreate serviceCreate = new ServiceCreate(); serviceCreate.setName("Test name"); when(mockServiceRepoService.addService(any())) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<Service> response = mockServiceApiController.createService(mock(Principal.class), serviceCreate); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testListServiceHandleException(){ when(mockServiceRepoService.findAll()) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<List<Service>> response = mockServiceApiController.listService(mock(Principal.class), null, null, null); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) @Test public void testRetrieveServiceHandleException(){ when(mockServiceRepoService.findByUuid(any())) .thenThrow(new RuntimeException("Test exception")); ResponseEntity<Service> response = mockServiceApiController.retrieveService(mock(Principal.class), "test id", ""); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } private String createService() throws Exception { int servicesCount = serviceRepoService.findAll().size(); 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"); 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("/serviceInventory/v4/service") .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(); Service responseService = JsonUtils.toJsonObj(response, Service.class); assertThat( serviceRepoService.findAll().size() ).isEqualTo( servicesCount + 1 ); assertThat(responseService.getCategory()).isEqualTo("Test Category"); assertThat(responseService.getDescription()).isEqualTo("A Test Service"); 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/sim638/ServiceRepoServiceTest.java 0 → 100644 +478 −0 File added.Preview size limit exceeded, changes collapsed. Show changes