public static SoapProject generateSoapProject(){ final SoapProject project = new SoapProject(); project.setId("SOAP PROJECT"); project.setName("Project name"); project.setDescription("Project description"); project.setCreated(new Date()); project.setUpdated(new Date()); project.setPorts(new ArrayList<SoapPort>()); return project; }
/** * 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); }
/** * The save method saves a project to the database * @param project Project that will be saved to the database * @return The saved project */ @Override public SoapProject save(final SoapProject project){ Preconditions.checkNotNull(project, "Project cannot be null"); Preconditions.checkArgument(!project.getName().isEmpty(), "Invalid project name. Project name cannot be empty"); final SoapProject projectInDatebase = repository.findSoapProjectWithName(project.getName()); Preconditions.checkArgument(projectInDatebase == null, "Project name is already taken"); project.setUpdated(new Date()); project.setCreated(new Date()); return super.save(project); }
private SoapProject convert(SoapProjectV1 projectV1){ SoapProject project = new SoapProject(); project.setCreated(projectV1.getCreated()); project.setUpdated(projectV1.getUpdated()); project.setDescription(projectV1.getDescription()); project.setId(projectV1.getId()); project.setName(projectV1.getName()); resource.setId(soapResourceV1.getId()); resource.setType(soapResourceV1.getType()); resource.setProjectId(project.getId()); project.getResources().add(resource); port.setUri(portV1.getUri()); port.setId(portV1.getId()); port.setProjectId(project.getId()); project.getPorts().add(port);
@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 testProcess(){ final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final UpdateSoapProjectInput input = UpdateSoapProjectInput.builder() .projectId(soapProject.getId()) .project(soapProject) .build(); final ServiceTask<UpdateSoapProjectInput> serviceTask = new ServiceTask<>(input); Mockito.when(repository.findOne(Mockito.anyString())).thenReturn(soapProject); Mockito.when(repository.save(Mockito.any(SoapProject.class))).thenReturn(soapProject); final ServiceResult<UpdateSoapProjectOutput> result = service.process(serviceTask); final UpdateSoapProjectOutput output = result.getOutput(); final SoapProject returnedSoapProject = output.getProject(); Mockito.verify(repository, Mockito.times(1)).save(Mockito.any(SoapProject.class)); Assert.assertEquals(soapProject.getId(), returnedSoapProject.getId()); Assert.assertEquals(soapProject.getName(), returnedSoapProject.getName()); Assert.assertEquals(soapProject.getDescription(), returnedSoapProject.getDescription()); Assert.assertEquals(soapProject.getCreated(), returnedSoapProject.getCreated()); Assert.assertEquals(soapProject.getUpdated(), returnedSoapProject.getUpdated()); } }
@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 testProcess(){ SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); Mockito.when(repository.search(Mockito.any(SearchQuery.class))).thenReturn(Arrays.asList(soapProject)); Mockito.when(portRepository.search(Mockito.any(SearchQuery.class))).thenReturn(Collections.emptyList()); Mockito.when(operationRepository.search(Mockito.any(SearchQuery.class))).thenReturn(Collections.emptyList()); Mockito.when(resourceRepository.search(Mockito.any(SearchQuery.class))).thenReturn(Collections.emptyList()); Mockito.when(mockResponseRepository.search(Mockito.any(SearchQuery.class))).thenReturn(Collections.emptyList()); Mockito.when(messageSource.getMessage("general.type.project", null, LocaleContextHolder.getLocale())).thenReturn("Project"); final String query = "Query"; final SearchQuery searchQuery = new SearchQuery(); searchQuery.setQuery(query); final SearchSoapProjectInput input = SearchSoapProjectInput.builder() .searchQuery(searchQuery) .build(); final ServiceTask<SearchSoapProjectInput> serviceTask = new ServiceTask<SearchSoapProjectInput>(); serviceTask.setInput(input); final ServiceResult<SearchSoapProjectOutput> serviceResult = service.process(serviceTask); final SearchSoapProjectOutput searchSoapProjectOutput = serviceResult.getOutput(); Assert.assertNotNull(searchSoapProjectOutput.getSearchResults()); Assert.assertEquals(1, searchSoapProjectOutput.getSearchResults().size()); SearchResult returnedSearchResult = searchSoapProjectOutput.getSearchResults().get(0); Assert.assertEquals("SOAP, Project", returnedSearchResult.getDescription()); Assert.assertEquals("soap/project/" + soapProject.getId(), returnedSearchResult.getLink()); Assert.assertEquals(soapProject.getName(), returnedSearchResult.getTitle()); }
private SoapProject createSoapProject(String name) { SoapProject soapProject = new SoapProject(); soapProject.setName(name); return soapProject; } }
protected SoapProject save(final SoapProjectV1 type) { SoapProject project = convert(type); if(this.projectRepository.exists(project.getId())){ throw new IllegalArgumentException("A project with the following key already exists: " + project.getId()); for(SoapResource resource : project.getResources()){ if(this.resourceRepository.exists(resource.getId())){ throw new IllegalArgumentException("A resource with the following key already exists: " + resource.getId()); for(SoapPort port : project.getPorts()){ if(this.portRepository.exists(port.getId())){ throw new IllegalArgumentException("A port with the following key already exists: " + port.getId());
/** * The process message is responsible for processing an incoming serviceTask and generate * a response based on the incoming serviceTask input * @param serviceTask The serviceTask that will be processed by the service * @return A result based on the processed incoming serviceTask * @see ServiceTask * @see ServiceResult */ @Override public ServiceResult<ReadSoapProjectOutput> process(final ServiceTask<ReadSoapProjectInput> serviceTask) { final ReadSoapProjectInput input = serviceTask.getInput(); final SoapProject soapProject = find(input.getProjectId()); final List<SoapResource> resources = this.resourceRepository.findWithProjectId(input.getProjectId()); final List<SoapPort> ports = this.portRepository.findWithProjectId(input.getProjectId()); soapProject.setResources(resources); soapProject.setPorts(ports); for(final SoapPort soapPort : soapProject.getPorts()){ final List<SoapOperation> operations = this.operationRepository.findWithPortId(soapPort.getId()); final Map<SoapOperationStatus, Integer> soapOperationStatusCount = getSoapOperationStatusCount(operations); soapPort.setStatusCount(soapOperationStatusCount); } return createServiceResult(ReadSoapProjectOutput.builder() .project(soapProject) .build()); }
@Test public void testProcess(){ final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); final SoapPort soapPort = SoapPortGenerator.generateSoapPort(); final SoapOperation soapOperation = SoapOperationGenerator.generateSoapOperation(); final SoapMockResponse soapMockResponse = SoapMockResponseGenerator.generateSoapMockResponse(); soapProject.getPorts().add(soapPort); soapPort.getOperations().add(soapOperation); soapOperation.getMockResponses().add(soapMockResponse); final DeleteSoapMockResponseInput input = DeleteSoapMockResponseInput.builder() .projectId(soapProject.getId()) .portId(soapPort.getId()) .operationId(soapOperation.getId()) .mockResponseId(soapMockResponse.getId()) .build(); final ServiceTask<DeleteSoapMockResponseInput> serviceTask = new ServiceTask<DeleteSoapMockResponseInput>(input); final ServiceResult<DeleteSoapMockResponseOutput> serviceResult = service.process(serviceTask); serviceResult.getOutput(); Mockito.verify(mockResponseRepository, Mockito.times(1)).delete(Mockito.anyString()); } }
private SoapProject getSoapProject(){ final SoapProject soapProject = new SoapProject(); final SoapResource soapResource = new SoapResource(); soapResource.setId("Resource id"); soapResource.setName("wsdl"); soapResource.setType(SoapResourceType.WSDL); soapProject.setResources(Arrays.asList(soapResource)); return soapProject; }
@Test public void testProcess(){ final SoapProject soapProject = SoapProjectGenerator.generateSoapProject(); Mockito.when(repository.save(Mockito.any(SoapProject.class))).thenReturn(soapProject); final CreateSoapProjectInput input = CreateSoapProjectInput.builder() .project(soapProject) .build(); final ServiceTask<CreateSoapProjectInput> serviceTask = new ServiceTask<CreateSoapProjectInput>(input); final ServiceResult<CreateSoapProjectOutput> serviceResult = service.process(serviceTask); final CreateSoapProjectOutput output = serviceResult.getOutput(); final SoapProject returnedSoapProject = output.getProject(); Assert.assertEquals(soapProject.getName(), returnedSoapProject.getName()); Assert.assertEquals(soapProject.getDescription(), returnedSoapProject.getDescription()); Mockito.verify(repository, Mockito.times(1)).save(Mockito.any(SoapProject.class)); } }
/** * The method provides the functionality to convert an instance (parent) to an instance of a subclass to the * provided parent. * @param parent The parent that will be converted into a subtype of the provided parent * @return A new instance of the parent, but as a subtype of the parent */ @Override public SoapProject convertType(Project parent) { return new SoapProject(parent); }
@Test public void testFindSoapProjectWithName() { soapProjectMongoRepository.save(createSoapProject("xxAbcXX")); soapProjectMongoRepository.save(createSoapProject("abc")); soapProjectMongoRepository.save(createSoapProject("xAbc")); SoapProject abc = soapProjectMongoRepository.findSoapProjectWithName("ABC"); assertThat(abc.getName()).isEqualTo("abc"); }
@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 getProjectUploadError() 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) .param("upload", "error"); mockMvc.perform(message) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.model().size(4 + GLOBAL_VIEW_MODEL_COUNT)) .andExpect(MockMvcResultMatchers.forwardedUrl(INDEX)) .andExpect(MockMvcResultMatchers.model().attribute(PARTIAL, PAGE)) .andExpect(MockMvcResultMatchers.model().attribute("upload", "error")) .andExpect(MockMvcResultMatchers.model().attribute(SOAP_PROJECT, soapProject)); }