/** * 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 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 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 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)); } }
@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()); }