/** * Updates a project with new information * @param soapProjectId The id of the project that will be updated * @param updatedProject The updated version of the project * @return The updated version project */ @Override public SoapProject update(final String soapProjectId, final SoapProject updatedProject){ Preconditions.checkNotNull(soapProjectId, "Project id be null"); Preconditions.checkNotNull(updatedProject, "Project cannot be null"); Preconditions.checkArgument(!updatedProject.getName().isEmpty(), "Invalid project name. Project name cannot be empty"); final SoapProject projectWithName = repository.findSoapProjectWithName(updatedProject.getName()); Preconditions.checkArgument(projectWithName == null || projectWithName.getId().equals(soapProjectId), "Project name is already taken"); final SoapProject project = find(soapProjectId); project.setName(updatedProject.getName()); project.setDescription(updatedProject.getDescription()); return super.save(project); }
@Test public void testDelete(){ final SoapProject project = SoapProjectGenerator.generateSoapProject(); final DeleteSoapProjectOutput output = DeleteSoapProjectOutput.builder() .project(project) .build(); Mockito.when(serviceProcessor.process(Mockito.any(DeleteSoapProjectInput.class))).thenReturn(output); final SoapProject returnedProject = adapter.delete(project.getId()); Assert.assertEquals(project, returnedProject); Mockito.verify(serviceProcessor, Mockito.times(1)).process(Mockito.any(DeleteSoapProjectInput.class)); }
@Test public void testRead(){ final SoapProject project = SoapProjectGenerator.generateSoapProject(); final ReadSoapProjectOutput output = ReadSoapProjectOutput.builder() .project(project) .build(); Mockito.when(serviceProcessor.process(Mockito.any(ReadSoapProjectInput.class))).thenReturn(output); final SoapProject returnedProject = adapter.read(project.getId()); Assert.assertEquals(project, returnedProject); Mockito.verify(serviceProcessor, Mockito.times(1)).process(Mockito.any(ReadSoapProjectInput.class)); }
@Test public void testUpdate(){ final SoapProject project = SoapProjectGenerator.generateSoapProject(); final UpdateSoapProjectOutput output = UpdateSoapProjectOutput.builder() .project(project) .build(); Mockito.when(serviceProcessor.process(Mockito.any(UpdateSoapProjectInput.class))).thenReturn(output); final SoapProject returnedProject = adapter.update(project.getId(), project); Assert.assertEquals(project, returnedProject); Mockito.verify(serviceProcessor, Mockito.times(1)).process(Mockito.any(UpdateSoapProjectInput.class)); }
@Test public void testExportProject(){ final SoapProject project = SoapProjectGenerator.generateSoapProject(); final String exportedProject = "Exported project"; final ExportSoapProjectOutput output = ExportSoapProjectOutput.builder() .project(exportedProject) .build(); Mockito.when(serviceProcessor.process(Mockito.any(ExportSoapProjectInput.class))).thenReturn(output); final String returnedExportedProject = adapter.exportProject(project.getId()); Assert.assertEquals(exportedProject, returnedExportedProject); Mockito.verify(serviceProcessor, Mockito.times(1)).process(Mockito.any(ExportSoapProjectInput.class)); }
@Test public void testFindAll(){ final SoapProject soapProject = save(); final List<SoapProject> soapProjects = repository.findAll(); Assert.assertEquals(soapProjects.size(), 1); Assert.assertEquals(soapProjects.get(0).getId(), soapProject.getId()); Assert.assertEquals(soapProjects.get(0).getName(), soapProject.getName()); Assert.assertEquals(soapProjects.get(0).getDescription(), soapProject.getDescription()); Assert.assertEquals(soapProjects.get(0).getTypeIdentifier(), soapProject.getTypeIdentifier()); }
@Test public void testFindOne(){ final SoapProject soapProject = save(); final SoapProject returnedSoapEvent = repository.findOne(soapProject.getId()); Assert.assertEquals(returnedSoapEvent.getId(), soapProject.getId()); Assert.assertEquals(returnedSoapEvent.getName(), soapProject.getName()); Assert.assertEquals(returnedSoapEvent.getDescription(), soapProject.getDescription()); Assert.assertEquals(returnedSoapEvent.getTypeIdentifier(), soapProject.getTypeIdentifier()); }
@Test public void testUpdateConfirmPortWithValidId() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); when(serviceProcessor.process(any(Input.class))).thenReturn(UpdateSoapPortOutput.builder() .port(soapPort) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + soapPort.getId() + SLASH + UPDATE, soapPort); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(1)); }
@Test public void testAddWSDLGet() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); when(serviceProcessor.process(any(ReadSoapProjectInput.class))).thenReturn(ReadSoapProjectOutput.builder() .project(soapProject) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + SLASH + PROJECT + SLASH + soapProject.getId() + SLASH + ADD + SLASH + WSDL); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.model().size(2 + GLOBAL_VIEW_MODEL_COUNT)) .andExpect(MockMvcResultMatchers.forwardedUrl(INDEX)) .andExpect(MockMvcResultMatchers.model().attribute(PARTIAL, PAGE)) .andExpect(MockMvcResultMatchers.model().attribute(SOAP_PROJECT_ID, soapProject.getId())); }
@Test public void testConfirmDeletationOfMultpleProjects() throws Exception { final DeleteSoapPortsCommand command = new DeleteSoapPortsCommand(); final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final List<SoapPort> soapPorts = new ArrayList<SoapPort>(); soapPorts.add(soapPort); command.setSoapPorts(soapPorts); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + DELETE + SLASH + CONFIRM) .flashAttr("command", command); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(1)); }
@Test public void testPostCreateResponse() throws Exception { final SoapProject project = SoapProjectGenerator.generateSoapProject(); final SoapPort application = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); when(serviceProcessor.process(any(ReadSoapOperationInput.class))).thenReturn(ReadSoapOperationOutput.builder() .operation(soapOperation) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + project.getId() + SLASH + PORT + SLASH + application.getId() + SLASH + OPERATION + SLASH + soapOperation.getId() + SLASH + CREATE_RESPONSE + SLASH); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(1)); }
@Test public void updateSoapOperationPost() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); when(serviceProcessor.process(any(Input.class))).thenReturn(ReadSoapOperationOutput.builder() .operation(soapOperation) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + soapPort.getId() + SLASH + OPERATION + SLASH + soapOperation.getId() + SLASH + UPDATE + SLASH); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(1)); }
@Test public void testDeleteMockResponseConfirm() throws Exception { final SoapProject project = SoapProjectGenerator.generateSoapProject(); final SoapPort application = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); final SoapMockResponse soapMockResponse = SoapMockResponseGenerator.generateSoapMockResponse(); when(serviceProcessor.process(any(DeleteSoapMockResponseInput.class))).thenReturn(DeleteSoapMockResponseOutput.builder().build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + project.getId() + SLASH + PORT + SLASH + application.getId() + SLASH + OPERATION + SLASH + soapOperation.getId() + SLASH + RESPONSE + SLASH + soapMockResponse.getId() + SLASH + DELETE + SLASH + CONFIRM); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(0)); }
@Test public void testProcess(){ final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); final SoapMockResponse soapMockResponse = SoapMockResponseGenerator.generateSoapMockResponse(); final CreateSoapMockResponseInput input = CreateSoapMockResponseInput.builder() .projectId(soapProject.getId()) .portId(soapPort.getId()) .operationId(soapOperation.getId()) .mockResponse(soapMockResponse) .build(); final ServiceTask<CreateSoapMockResponseInput> serviceTask = new ServiceTask<>(input); final ServiceResult<CreateSoapMockResponseOutput> serviceResult = service.process(serviceTask); final CreateSoapMockResponseOutput output = serviceResult.getOutput(); Mockito.verify(repository, Mockito.times(1)).save(Mockito.any(SoapMockResponse.class)); } }
@Test public void getProject() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final List<SoapPort> soapPorts = new ArrayList<SoapPort>(); soapPorts.add(soapPort); soapProject.setPorts(soapPorts); when(serviceProcessor.process(any(Input.class))).thenReturn(ReadSoapProjectOutput.builder() .project(soapProject) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.model().size(3 + GLOBAL_VIEW_MODEL_COUNT)) .andExpect(MockMvcResultMatchers.forwardedUrl(INDEX)) .andExpect(MockMvcResultMatchers.model().attribute(PARTIAL, PAGE)) .andExpect(MockMvcResultMatchers.model().attribute(SOAP_PROJECT, soapProject)); }
@Test public void testUpdateMockResponse() throws Exception { final SoapProject project = SoapProjectGenerator.generateSoapProject(); final SoapPort application = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); final SoapMockResponse soapMockResponse = SoapMockResponseGenerator.generateSoapMockResponse(); when(serviceProcessor.process(any(UpdateSoapMockResponseInput.class))).thenReturn(UpdateSoapMockResponseOutput.builder() .mockResponse(soapMockResponse) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.post(SERVICE_URL + PROJECT + SLASH + project.getId() + SLASH + PORT + SLASH + application.getId() + SLASH + OPERATION + SLASH + soapOperation.getId() + SLASH + RESPONSE + SLASH + soapMockResponse.getId() + SLASH + UPDATE) .flashAttr("soapMockResponse", soapMockResponse); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(1)); }
@Test public void testDeleteConfirmApplicationWithValidId() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + soapPort.getId() + SLASH + DELETE + SLASH + CONFIRM); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isFound()) .andExpect(MockMvcResultMatchers.model().size(0)); }
@Test public void testUpdatePortWithValidId() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); when(serviceProcessor.process(any(Input.class))).thenReturn(ReadSoapPortOutput.builder() .port(soapPort) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + soapPort.getId() + SLASH + UPDATE); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.model().size(5 + GLOBAL_VIEW_MODEL_COUNT)) .andExpect(MockMvcResultMatchers.forwardedUrl(INDEX)) .andExpect(MockMvcResultMatchers.model().attribute(PARTIAL, PAGE)) .andExpect(MockMvcResultMatchers.model().attribute(SOAP_PORT, soapPort)); }
@Test public void testDeleteApplicationWithValidId() throws Exception { final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); when(serviceProcessor.process(any(Input.class))).thenReturn(ReadSoapPortOutput.builder() .port(soapPort) .build()); final MockHttpServletRequestBuilder message = MockMvcRequestBuilders.get(SERVICE_URL + PROJECT + SLASH + soapProject.getId() + SLASH + PORT + SLASH + soapPort.getId() + SLASH + DELETE); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.model().size(2 + GLOBAL_VIEW_MODEL_COUNT)) .andExpect(MockMvcResultMatchers.forwardedUrl(INDEX)) .andExpect(MockMvcResultMatchers.model().attribute(PARTIAL, PAGE)) .andExpect(MockMvcResultMatchers.model().attribute(SOAP_PORT, soapPort)); }