Skip to content

Commit

Permalink
Merge 9be0c01 into c70288d
Browse files Browse the repository at this point in the history
  • Loading branch information
ekerwin committed Jul 19, 2019
2 parents c70288d + 9be0c01 commit 49e208e
Show file tree
Hide file tree
Showing 4 changed files with 974 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
*/
package com.synopsys.integration.blackduck.service;

import java.util.Comparator;
import java.util.List;
import java.util.Optional;

Expand Down Expand Up @@ -100,6 +101,11 @@ public Optional<ProjectVersionWrapper> getProjectVersion(String projectName, Str
return Optional.empty();
}

public Optional<ProjectVersionView> getLatestProjectVersion(ProjectView projectView) throws IntegrationException {
List<ProjectVersionView> projectVersionViews = getAllProjectVersions(projectView);
return projectVersionViews.stream().max(Comparator.comparing(ProjectVersionView::getCreatedAt));
}

public void updateProject(ProjectView projectView) throws IntegrationException {
blackDuckService.put(projectView);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,13 +185,21 @@ public void testCreateProjectWithTwoVersions() throws Exception {
List<ProjectVersionView> projectVersionViews = ProjectServiceTestIT.blackDuckService.getAllResponses(ProjectServiceTestIT.project, ProjectView.VERSIONS_LINK_RESPONSE);
assertEquals(1, projectVersionViews.size());

Optional<ProjectVersionView> latestProjectVersionView = ProjectServiceTestIT.projectService.getLatestProjectVersion(ProjectServiceTestIT.project);
assertTrue(latestProjectVersionView.isPresent());
assertEquals("1.0.0", latestProjectVersionView.get().getVersionName());

ProjectVersionRequest projectVersionRequest = projectRequest.getVersionRequest();
projectVersionRequest.setVersionName("2.0.0");

ProjectServiceTestIT.projectService.createProjectVersion(ProjectServiceTestIT.project, projectVersionRequest);

List<ProjectVersionView> projectVersionViewsAfterUpdate = ProjectServiceTestIT.blackDuckService.getAllResponses(ProjectServiceTestIT.project, ProjectView.VERSIONS_LINK_RESPONSE);
assertEquals(2, projectVersionViewsAfterUpdate.size());

latestProjectVersionView = ProjectServiceTestIT.projectService.getLatestProjectVersion(ProjectServiceTestIT.project);
assertTrue(latestProjectVersionView.isPresent());
assertEquals("2.0.0", latestProjectVersionView.get().getVersionName());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.synopsys.integration.blackduck.service;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.synopsys.integration.blackduck.api.generated.view.ProjectVersionView;
import com.synopsys.integration.blackduck.api.generated.view.ProjectView;
import com.synopsys.integration.exception.IntegrationException;
import com.synopsys.integration.log.BufferedIntLogger;
import com.synopsys.integration.log.IntLogger;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Optional;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class ProjectServiceTest {
@Test
public void testGettingLatestProjectVersion() throws IOException, IntegrationException {
IntLogger logger = new BufferedIntLogger();
Gson gson = BlackDuckServicesFactory.createDefaultGson();
ObjectMapper objectMapper = BlackDuckServicesFactory.createDefaultObjectMapper();
BlackDuckJsonTransformer blackDuckJsonTransformer = new BlackDuckJsonTransformer(gson, objectMapper, logger);
InputStream inputStream = getClass().getResourceAsStream("/json/pageOfProjectVersionViews.json");

String pageJson = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
BlackDuckPageResponse<ProjectVersionView> pageOfProjectVersionViews = blackDuckJsonTransformer.getResponses(pageJson, ProjectVersionView.class);
List<ProjectVersionView> projectVersionViews = pageOfProjectVersionViews.getItems();

BlackDuckService blackDuckService = Mockito.mock(BlackDuckService.class);
ProjectGetService projectGetService = Mockito.mock(ProjectGetService.class);

ProjectService projectService = new ProjectService(blackDuckService, logger, projectGetService);

ProjectView projectView = new ProjectView();
projectView.setName("unit test");

Mockito.when(blackDuckService.getAllResponses(Mockito.eq(projectView), Mockito.eq(ProjectView.VERSIONS_LINK_RESPONSE))).thenReturn(projectVersionViews);

Optional<ProjectVersionView> projectVersionView = projectService.getLatestProjectVersion(projectView);
assertTrue(projectVersionView.isPresent());
assertEquals("dockertar", projectVersionView.get().getVersionName());
}

}
Loading

0 comments on commit 49e208e

Please sign in to comment.