diff options
10 files changed, 199 insertions, 112 deletions
diff --git a/workflow/workflow-designer-be/pom.xml b/workflow/workflow-designer-be/pom.xml index b76dc467..654142ad 100644 --- a/workflow/workflow-designer-be/pom.xml +++ b/workflow/workflow-designer-be/pom.xml @@ -80,6 +80,18 @@ </dependency> <dependency> <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-logging-api</artifactId> + <version>${onap.version}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-logging-core</artifactId> + <version>${onap.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> <artifactId>openecomp-sdc-versioning-core</artifactId> <version>${onap.version}</version> <scope>runtime</scope> diff --git a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/RestConstants.java b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/RestConstants.java index 47a757e2..fc2e4408 100644 --- a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/RestConstants.java +++ b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/RestConstants.java @@ -6,10 +6,10 @@ public class RestConstants { } public static final String USER_ID_HEADER_PARAM = "USER_ID"; - public static final String LIMIT_PARAM = "size"; - public static final String OFFSET_PARAM = "page"; + public static final String SIZE_PARAM = "size"; + public static final String PAGE_PARAM = "page"; public static final String SORT_PARAM = "sort"; public static final String SORT_FIELD_NAME = "name"; - public static final int LIMIT_DEFAULT = 20; - public static final int OFFSET_DEFAULT = 0; + public static final int SIZE_DEFAULT = 20; + public static final int PAGE_DEFAULT = 0; } diff --git a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java index de35320d..b0ae7cc1 100644 --- a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java +++ b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java @@ -1,6 +1,6 @@ package org.onap.sdc.workflow.api; -import static org.onap.sdc.workflow.api.RestConstants.LIMIT_DEFAULT; +import static org.onap.sdc.workflow.api.RestConstants.SIZE_DEFAULT; import static org.onap.sdc.workflow.api.RestConstants.SORT_FIELD_NAME; import static org.onap.sdc.workflow.api.RestConstants.SORT_PARAM; import static org.onap.sdc.workflow.api.RestConstants.USER_ID_HEADER_PARAM; @@ -50,7 +50,7 @@ public class WorkflowController { @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) @ApiOperation("List workflows") public CollectionWrapper<Workflow> list(@RequestHeader(USER_ID_HEADER_PARAM) String user, - @PageableDefault(size = LIMIT_DEFAULT) + @PageableDefault(size = SIZE_DEFAULT) @SortDefault.SortDefaults({ @SortDefault(sort = SORT_FIELD_NAME, direction = Sort.Direction.ASC) }) Pageable pageable) { diff --git a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/types/CollectionWrapper.java b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/types/CollectionWrapper.java index 1d583dd9..6a437a74 100644 --- a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/types/CollectionWrapper.java +++ b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/types/CollectionWrapper.java @@ -2,24 +2,21 @@ package org.onap.sdc.workflow.api.types; import java.util.Collection; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@NoArgsConstructor public class CollectionWrapper<T> { private int total; - private int limit; - private int offset; + private int size; + private int page; private Collection<T> results; - - public CollectionWrapper() { - //Default constructor for object mappers - } - - public CollectionWrapper(int limit, int offset, Collection<T> results) { + public CollectionWrapper(int size, int page, Collection<T> results) { this.results = results; - this.limit = limit; - this.offset = offset; + this.size = size; + this.page = page; this.total = results.size(); } diff --git a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowManagerImpl.java b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowManagerImpl.java index 2cb897fe..97d81689 100644 --- a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowManagerImpl.java +++ b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowManagerImpl.java @@ -15,6 +15,8 @@ import org.onap.sdc.workflow.services.WorkflowManager; import org.onap.sdc.workflow.services.WorkflowNameComparator; import org.onap.sdc.workflow.services.exceptions.EntityNotFoundException; import org.onap.sdc.workflow.services.impl.mappers.WorkflowMapper; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; import org.openecomp.sdc.versioning.ItemManager; import org.openecomp.sdc.versioning.types.Item; import org.openecomp.sdc.versioning.types.ItemStatus; @@ -35,6 +37,7 @@ public class WorkflowManagerImpl implements WorkflowManager { private final ItemManager itemManager; private final UniqueValueService uniqueValueService; private final WorkflowMapper workflowMapper; + private static final Logger LOGGER = LoggerFactory.getLogger(WorkflowManagerImpl.class); @Autowired public WorkflowManagerImpl(ItemManager itemManager, @@ -56,6 +59,7 @@ public class WorkflowManagerImpl implements WorkflowManager { public Workflow get(Workflow workflow) { Item retrievedItem = itemManager.get(workflow.getId()); if (retrievedItem == null) { + LOGGER.error(String.format("Workflow with id %s was not found",workflow.getId())); throw new EntityNotFoundException(String.format(WORKFLOW_NOT_FOUND_ERROR_MSG, workflow.getId())); } return this.workflowMapper.itemToWorkflow(retrievedItem); @@ -76,6 +80,7 @@ public class WorkflowManagerImpl implements WorkflowManager { public void update(Workflow workflow) { Item retrievedItem = itemManager.get(workflow.getId()); if (retrievedItem == null) { + LOGGER.error(String.format("Workflow with id %s was not found",workflow.getId())); throw new EntityNotFoundException(String.format(WORKFLOW_NOT_FOUND_ERROR_MSG, workflow.getId())); } diff --git a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImpl.java b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImpl.java index 0f88d37f..de9c8dd3 100644 --- a/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImpl.java +++ b/workflow/workflow-designer-be/src/main/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImpl.java @@ -31,6 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; @Service("workflowVersionManager") public class WorkflowVersionManagerImpl implements WorkflowVersionManager { @@ -41,7 +43,7 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { private final ParameterRepository parameterRepository; private final VersionMapper versionMapper; private final VersionStateMapper versionStateMapper; - + private static final Logger LOGGER = LoggerFactory.getLogger(WorkflowVersionManagerImpl.class); @Autowired public WorkflowVersionManagerImpl(VersioningManager versioningManager, ArtifactRepository artifactRepository, @@ -130,6 +132,9 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { WorkflowVersionState retrievedState = versionStateMapper.versionStatusToWorkflowVersionState(retrievedVersion.getStatus()); if (WorkflowVersionState.CERTIFIED.equals(retrievedState) || retrievedState.equals(state)) { + LOGGER.error(String.format( + "Workflow Version is certified and can not be edited.Workflow id %s and version id %s", workflowId, + versionId)); throw new VersionStateModificationException(workflowId, versionId, retrievedState, state); } @@ -144,6 +149,8 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { Version retrievedVersion = getVersion(workflowId, versionId); if (WorkflowVersionState.CERTIFIED .equals(versionStateMapper.versionStatusToWorkflowVersionState(retrievedVersion.getStatus()))) { + LOGGER.error(String.format("Workflow Version Artifact was not found for workflow id %s and version id %s", + workflowId, versionId)); throw new VersionModificationException(workflowId, versionId); } @@ -154,6 +161,8 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { versioningManager.publish(workflowId, new Version(versionId), "Update Artifact"); } catch (IOException e) { + LOGGER.error(String.format("Upload Artifact failed for workflow id %s and version id %s", + workflowId, versionId),e); throw new InvalidArtifactException(e.getMessage()); } } @@ -163,8 +172,10 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { getVersion(workflowId, versionId); Optional<ArtifactEntity> artifactOptional = artifactRepository.get(workflowId, versionId); if (!artifactOptional.isPresent()) { + LOGGER.error(String.format("Workflow Version Artifact was not found for workflow id %s and version id %s", + workflowId, versionId)); throw new EntityNotFoundException( - String.format("Artifact for workflow id %S version id %S was not found", workflowId, versionId)); + String.format("Artifact for workflow id %S version id %S was not found", workflowId, versionId)); } return artifactOptional.get(); } @@ -173,6 +184,9 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { public void deleteArtifact(String workflowId, String versionId) { WorkflowVersion retrievedVersion = get(workflowId, versionId); if (WorkflowVersionState.CERTIFIED.equals(retrievedVersion.getState())) { + LOGGER.error(String.format( + "Workflow Version is certified and can not be edited.Workflow id %s and version id %s", workflowId, + versionId)); throw new VersionModificationException(workflowId, versionId); } @@ -198,6 +212,9 @@ public class WorkflowVersionManagerImpl implements WorkflowVersionManager { } return version; } catch (Exception e) { + LOGGER.error(String.format( + "Workflow Version was not found.Workflow id %s and version id %s", workflowId, + versionId),e); throw new EntityNotFoundException(String.format(VERSION_NOT_EXIST_MSG, versionId, workflowId)); } } diff --git a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/RestPath.java b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/RestPath.java index ba99996a..06d55479 100644 --- a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/RestPath.java +++ b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/RestPath.java @@ -1,7 +1,7 @@ package org.onap.sdc.workflow; -import static org.onap.sdc.workflow.api.RestConstants.LIMIT_PARAM; -import static org.onap.sdc.workflow.api.RestConstants.OFFSET_PARAM; +import static org.onap.sdc.workflow.api.RestConstants.SIZE_PARAM; +import static org.onap.sdc.workflow.api.RestConstants.PAGE_PARAM; import static org.onap.sdc.workflow.api.RestConstants.SORT_PARAM; public class RestPath { @@ -14,32 +14,32 @@ public class RestPath { private static final String VERSIONS_URL_FORMATTER = WORKFLOWS_URL + "/%s/versions"; private static final String VERSION_URL_FORMATTER = WORKFLOWS_URL + "/%s/versions/%s"; private static final String SORT_QUERY_STRING_FORMATTER = SORT_PARAM + "=%s"; - private static final String LIMIT_QUERY_STRING_FORMATTER = LIMIT_PARAM + "=%s"; - private static final String OFFSET_QUERY_STRING_FORMATTER = OFFSET_PARAM + "=%s"; + private static final String SIZE_QUERY_STRING_FORMATTER = SIZE_PARAM + "=%s"; + private static final String OFFSET_QUERY_STRING_FORMATTER = PAGE_PARAM + "=%s"; private static final String WORKFLOW_URL_FORMATTER_QUERY_PARAMS_ALL = - WORKFLOWS_URL + "?" + SORT_QUERY_STRING_FORMATTER+ "&" + LIMIT_QUERY_STRING_FORMATTER + "&" + + WORKFLOWS_URL + "?" + SORT_QUERY_STRING_FORMATTER+ "&" + SIZE_QUERY_STRING_FORMATTER + "&" + OFFSET_QUERY_STRING_FORMATTER; private static final String WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT = - WORKFLOWS_URL + "?" + LIMIT_QUERY_STRING_FORMATTER + "&" + OFFSET_QUERY_STRING_FORMATTER; - private static final String WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_LIMIT = + WORKFLOWS_URL + "?" + SIZE_QUERY_STRING_FORMATTER + "&" + OFFSET_QUERY_STRING_FORMATTER; + private static final String WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_SIZE = WORKFLOWS_URL + "?" + OFFSET_QUERY_STRING_FORMATTER; private static final String WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_OFFSET = - WORKFLOWS_URL + "?" + LIMIT_QUERY_STRING_FORMATTER; + WORKFLOWS_URL + "?" + SIZE_QUERY_STRING_FORMATTER; - public static String getWorkflowsPathAllQueryParams(String sort, String limit, String offset){ - return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_ALL, sort, limit, offset); + public static String getWorkflowsPathAllQueryParams(String sort, String size, String offset){ + return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_ALL, sort, size, offset); } - public static String getWorkflowsPathNoSort(String limit, String offset){ - return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT, limit, offset); + public static String getWorkflowsPathNoSort(String size, String offset){ + return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT, size, offset); } - public static String getWorkflowsPathNoSortAndLimit(String offset){ - return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_LIMIT, offset); + public static String getWorkflowsPathNoSortAndSize(String offset){ + return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_SIZE, offset); } - public static String getWorkflowsPathNoSortAndOffset(String limit){ - return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_OFFSET, limit); + public static String getWorkflowsPathNoSortAndOffset(String size){ + return String.format(WORKFLOW_URL_FORMATTER_QUERY_PARAMS_NO_SORT_AND_OFFSET, size); } public static String getWorkflowsPath(){ diff --git a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java index 1f36759d..b73427e8 100644 --- a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java +++ b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java @@ -8,8 +8,8 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.onap.sdc.workflow.TestUtil.createWorkflow; -import static org.onap.sdc.workflow.api.RestConstants.LIMIT_DEFAULT; -import static org.onap.sdc.workflow.api.RestConstants.OFFSET_DEFAULT; +import static org.onap.sdc.workflow.api.RestConstants.PAGE_DEFAULT; +import static org.onap.sdc.workflow.api.RestConstants.SIZE_DEFAULT; import static org.onap.sdc.workflow.api.RestConstants.SORT_FIELD_NAME; import static org.onap.sdc.workflow.api.RestConstants.SORT_PARAM; import static org.onap.sdc.workflow.api.RestConstants.USER_ID_HEADER_PARAM; @@ -20,14 +20,14 @@ import static org.springframework.test.web.servlet.result.MockMvcResultHandlers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.item.Item; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; - import java.util.ArrayList; import java.util.List; import java.util.Set; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,7 +39,6 @@ import org.onap.sdc.workflow.api.exceptionshandlers.CustomizedResponseEntityExce import org.onap.sdc.workflow.api.types.CollectionWrapper; import org.onap.sdc.workflow.persistence.types.Workflow; import org.onap.sdc.workflow.services.WorkflowManager; -import org.openecomp.sdc.versioning.types.Item; import org.springframework.data.web.PageableHandlerMethodArgumentResolver; import org.springframework.http.MediaType; import org.springframework.mock.web.MockHttpServletResponse; @@ -73,9 +72,8 @@ public class WorkflowControllerTest { public void setUp() { mockMvc = MockMvcBuilders.standaloneSetup(workflowController).build(); mockMvc = MockMvcBuilders.standaloneSetup(workflowController) - .setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver()) - .setControllerAdvice(new CustomizedResponseEntityExceptionHandler()) - .build(); + .setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver()) + .setControllerAdvice(new CustomizedResponseEntityExceptionHandler()).build(); } @Test @@ -85,17 +83,17 @@ public class WorkflowControllerTest { mockMvc.perform(get(RestPath.getWorkflowPath(workflowMock.getId())).contentType(APPLICATION_JSON)) .andDo(print()).andExpect(status().isBadRequest()).andExpect(status().is(400)).andReturn() .getResponse(); - assertEquals(String.format(MISSING_REQUEST_HEADER_ERRROR_FORMAT, USER_ID_HEADER), response.getContentAsString()); + assertEquals(String.format(MISSING_REQUEST_HEADER_ERRROR_FORMAT, USER_ID_HEADER), + response.getContentAsString()); } @Test public void shouldReturnWorkflowDataWhenRequestPathIsOk() throws Exception { Workflow workflowMock = createWorkflow(1, true); doReturn(workflowMock).when(workflowManagerMock).get(any(Workflow.class)); - mockMvc.perform( - get(RestPath.getWorkflowPath(workflowMock.getId())).header(USER_ID_HEADER_PARAM, USER_ID) - .contentType(APPLICATION_JSON)).andDo(print()) - .andExpect(status().isOk()).andExpect(jsonPath("$.id", is(workflowMock.getId()))) + mockMvc.perform(get(RestPath.getWorkflowPath(workflowMock.getId())).header(USER_ID_HEADER_PARAM, USER_ID) + .contentType(APPLICATION_JSON)) + .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.id", is(workflowMock.getId()))) .andExpect(jsonPath("$.name", is(workflowMock.getName()))); } @@ -104,7 +102,8 @@ public class WorkflowControllerTest { MockHttpServletResponse response = mockMvc.perform(get(RestPath.getWorkflowsPath()).contentType(APPLICATION_JSON)).andDo(print()) .andExpect(status().isBadRequest()).andExpect(status().is(400)).andReturn().getResponse(); - assertEquals(String.format(MISSING_REQUEST_HEADER_ERRROR_FORMAT, USER_ID_HEADER_PARAM), response.getContentAsString()); + assertEquals(String.format(MISSING_REQUEST_HEADER_ERRROR_FORMAT, USER_ID_HEADER_PARAM), + response.getContentAsString()); } @Test @@ -118,28 +117,27 @@ public class WorkflowControllerTest { } @Test - public void shouldReturnSortedLimitOffsetAppliedWorkflows() throws Exception { - List<Workflow> workflowMocks = createLimit2AndOffset1For5WorkflowList(); + public void shouldReturnSortedSizeOffsetAppliedWorkflows() throws Exception { + List<Workflow> workflowMocks = createSize2AndOffset1For5WorkflowList(); doReturn(workflowMocks).when(workflowManagerMock).list(any()); - mockMvc.perform( - get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "2", "1")) - .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); + mockMvc.perform(get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "2", "1")) + .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) + .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); } @Test - public void shouldReturnResultsWithDefaultWhenLimitIsNegative() throws Exception { - List<Workflow> workflowMocks = createLimit2AndOffset1For5WorkflowList(); + public void shouldReturnResultsWithDefaultWhenSizeIsNegative() throws Exception { + List<Workflow> workflowMocks = createSize2AndOffset1For5WorkflowList(); doReturn(workflowMocks).when(workflowManagerMock).list(any()); MockHttpServletResponse response = mockMvc.perform( get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "-2", "1")) .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)).andReturn() - .getResponse(); + .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)) + .andReturn().getResponse(); CollectionWrapper workflowListResponse = new ObjectMapper().readValue(response.getContentAsString(), CollectionWrapper.class); - assertEquals(LIMIT_DEFAULT, workflowListResponse.getLimit()); - assertEquals(1, workflowListResponse.getOffset()); + assertEquals(SIZE_DEFAULT, workflowListResponse.getSize()); + assertEquals(1, workflowListResponse.getPage()); assertEquals(2, workflowListResponse.getTotal()); } @@ -148,26 +146,26 @@ public class WorkflowControllerTest { MockHttpServletResponse response = mockMvc.perform( get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "2", "-1")) .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)).andReturn() - .getResponse(); + .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)) + .andReturn().getResponse(); CollectionWrapper workflowListResponse = new ObjectMapper().readValue(response.getContentAsString(), CollectionWrapper.class); - assertEquals(2, workflowListResponse.getLimit()); - assertEquals(OFFSET_DEFAULT, workflowListResponse.getOffset()); + assertEquals(2, workflowListResponse.getSize()); + assertEquals(PAGE_DEFAULT, workflowListResponse.getPage()); assertEquals(0, workflowListResponse.getTotal()); } @Test - public void shouldFallbackOnDefaultLimitWhenLimitIsNotAnInteger() throws Exception { + public void shouldFallbackOnDefaultSizeWhenSizeIsNotAnInteger() throws Exception { MockHttpServletResponse response = mockMvc.perform( get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "abc", "0")) .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)).andReturn() - .getResponse(); + .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)) + .andReturn().getResponse(); CollectionWrapper workflowListResponse = new ObjectMapper().readValue(response.getContentAsString(), CollectionWrapper.class); - assertEquals(LIMIT_DEFAULT, workflowListResponse.getLimit()); - assertEquals(0, workflowListResponse.getOffset()); + assertEquals(SIZE_DEFAULT, workflowListResponse.getSize()); + assertEquals(0, workflowListResponse.getPage()); assertEquals(0, workflowListResponse.getTotal()); } @@ -176,12 +174,12 @@ public class WorkflowControllerTest { MockHttpServletResponse response = mockMvc.perform( get(RestPath.getWorkflowsPathAllQueryParams(DEFAULT_SORT_VALUE, "2", "abc")) .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)).andReturn() - .getResponse(); + .andDo(print()).andExpect(status().isOk()).andExpect(status().is(200)) + .andReturn().getResponse(); CollectionWrapper workflowListResponse = new ObjectMapper().readValue(response.getContentAsString(), CollectionWrapper.class); - assertEquals(2, workflowListResponse.getLimit()); - assertEquals(OFFSET_DEFAULT, workflowListResponse.getOffset()); + assertEquals(2, workflowListResponse.getSize()); + assertEquals(PAGE_DEFAULT, workflowListResponse.getPage()); assertEquals(0, workflowListResponse.getTotal()); } @@ -190,54 +188,54 @@ public class WorkflowControllerTest { MockHttpServletResponse response = mockMvc.perform( get(RestPath.getWorkflowsPathAllQueryParams("invalidSortField,asc", "2", "1")) .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isBadRequest()).andExpect(status().is(400)).andReturn() - .getResponse(); + .andDo(print()).andExpect(status().isBadRequest()) + .andExpect(status().is(400)).andReturn().getResponse(); assertEquals(String.format(INVALID_PAGINATION_PARAMETER_FORMAT, SORT_PARAM, "invalidSortField", PAGINATION_PARAMETER_INVALID_SORT_FIELD_SUFFIX + getSupportedSortFields()), response.getContentAsString()); } @Test - public void shouldReturnAscSortedLimitOffsetAppliedWorkflowsWhenSortIsNotSpecified() throws Exception { - List<Workflow> workflowMocks = createLimit2AndOffset1For5WorkflowList(); + public void shouldReturnAscSortedSizeOffsetAppliedWorkflowsWhenSortIsNotSpecified() throws Exception { + List<Workflow> workflowMocks = createSize2AndOffset1For5WorkflowList(); doReturn(workflowMocks).when(workflowManagerMock).list(any()); mockMvc.perform( - get(RestPath.getWorkflowsPathNoSort("2", "1")) - .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); + get(RestPath.getWorkflowsPathNoSort("2", "1")).header(RestConstants.USER_ID_HEADER_PARAM, USER_ID) + .contentType(APPLICATION_JSON)).andDo(print()) + .andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); } @Test - public void shouldReturnDefaultLimitOffsetAppliedWorkflowsWhenLimitIsNotSpecified() throws Exception { - List<Workflow> workflowMocks = createLimit2AndOffset1For5WorkflowList(); + public void shouldReturnDefaultSizeOffsetAppliedWorkflowsWhenSizeIsNotSpecified() throws Exception { + List<Workflow> workflowMocks = createSize2AndOffset1For5WorkflowList(); doReturn(workflowMocks).when(workflowManagerMock).list(any()); mockMvc.perform( - get(RestPath.getWorkflowsPathNoSortAndLimit("1")) - .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); + get(RestPath.getWorkflowsPathNoSortAndSize("1")).header(RestConstants.USER_ID_HEADER_PARAM, USER_ID) + .contentType(APPLICATION_JSON)).andDo(print()) + .andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(2))); } @Test public void shouldReturnDefaultOffsetAppliedWorkflowsWhenOffsetIsNotSpecified() throws Exception { - List<Workflow> workflowMocks = createLimit1WorkflowList(); + List<Workflow> workflowMocks = createSize1WorkflowList(); doReturn(workflowMocks).when(workflowManagerMock).list(any()); mockMvc.perform( - get(RestPath.getWorkflowsPathNoSortAndOffset("1")) - .header(RestConstants.USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON)) - .andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(1))); + get(RestPath.getWorkflowsPathNoSortAndOffset("1")).header(RestConstants.USER_ID_HEADER_PARAM, USER_ID) + .contentType(APPLICATION_JSON)).andDo(print()) + .andExpect(status().isOk()).andExpect(jsonPath("$.results", hasSize(1))); } - /* @Test + @Test public void shouldCreateWorkflowWhenCallingPostRESTRequest() throws Exception { Item item = new Item(); - item.setId("abc"); + item.setId(new Id("abc")); Workflow reqWorkflow = createWorkflow(1, false); mockMvc.perform( post(RestPath.getWorkflowsPath()).header(USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON) - .content(GSON.toJson(reqWorkflow))).andDo(print()).andExpect(status().isCreated()) - .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)); + .content(GSON.toJson(reqWorkflow))).andDo(print()) + .andExpect(status().isCreated()); verify(workflowManagerMock, times(1)).create(reqWorkflow); - }*/ + } private List<Workflow> createWorkflows(int numOfWorkflows) { List<Workflow> workflowList = new ArrayList<>(numOfWorkflows); @@ -248,14 +246,14 @@ public class WorkflowControllerTest { return workflowList; } - private List<Workflow> createLimit2AndOffset1For5WorkflowList() { + private List<Workflow> createSize2AndOffset1For5WorkflowList() { List<Workflow> workflowList = new ArrayList<>(); workflowList.add(createWorkflow(2, true)); workflowList.add(createWorkflow(3, true)); return workflowList; } - private List<Workflow> createLimit1WorkflowList() { + private List<Workflow> createSize1WorkflowList() { List<Workflow> workflowList = new ArrayList<>(); workflowList.add(createWorkflow(0, true)); return workflowList; diff --git a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/persistence/impl/ParameterRepositoryTest.java b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/persistence/impl/ParameterRepositoryTest.java index 4ddd8d48..63d2e560 100644 --- a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/persistence/impl/ParameterRepositoryTest.java +++ b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/persistence/impl/ParameterRepositoryTest.java @@ -1,21 +1,27 @@ package org.onap.sdc.workflow.persistence.impl; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; import com.amdocs.zusammen.datatypes.Id; import com.amdocs.zusammen.datatypes.SessionContext; import com.amdocs.zusammen.datatypes.item.ElementContext; import com.amdocs.zusammen.datatypes.item.Info; +import java.util.ArrayList; +import java.util.Collection; import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mapstruct.ap.internal.util.Collections; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -24,6 +30,7 @@ import org.onap.sdc.workflow.persistence.types.ParameterEntity; import org.onap.sdc.workflow.persistence.types.ParameterPropertyName; import org.onap.sdc.workflow.persistence.types.ParameterRole; import org.onap.sdc.workflow.persistence.types.ParameterType; +import org.onap.sdc.workflow.persistence.types.WorkflowElementType; import org.openecomp.core.zusammen.api.ZusammenAdaptor; import org.openecomp.sdc.common.session.SessionContextProviderFactory; @@ -33,6 +40,9 @@ public class ParameterRepositoryTest { private static final String ITEM1_ID = "item_id_1"; private static final String VERSION1_ID = "version_id_1"; private static final String PARAMETER1_ID = "parameter_id_1"; + private static final String PARAMETER2_ID = "parameter_id_2"; + private static final String PARAMETERS_PARENT_ID = "parameters_id"; + @Mock private ZusammenAdaptor zusammenAdaptorMock; @@ -45,25 +55,25 @@ public class ParameterRepositoryTest { SessionContextProviderFactory.getInstance().createInterface().create("test_user", "workflow"); } - /*@Test + @Test public void shouldGetParameterById() { - ZusammenElement element = new ZusammenElement(); - element.setElementId(new Id(PARAMETER1_ID)); + ElementInfo element = new ElementInfo(); + element.setId(new Id(PARAMETER1_ID)); Info info = new Info(); info.setName("testInput"); info.addProperty(ParameterPropertyName.TYPE.name(),ParameterType.FLOAT.name()); info.addProperty(ParameterPropertyName.mandatory.name(),true); element.setInfo(info); doReturn(Optional.of(element)).when(zusammenAdaptorMock) - .getElement(any(SessionContext.class), any(ElementContext.class), - eq(PARAMETER1_ID)); + .getElementInfo(any(SessionContext.class), any(ElementContext.class), + eq(new Id(PARAMETER1_ID))); ParameterEntity result = parameterRepository.get(ITEM1_ID, VERSION1_ID, PARAMETER1_ID); - verify(parameterRepository,times(1)).elementToParameterEntity(element); - verify(zusammenAdaptorMock).getElement(any(SessionContext.class), any(ElementContext.class),eq(PARAMETER1_ID)); - assertEquals("testInput",result.getName()); + verify(zusammenAdaptorMock) + .getElementInfo(any(SessionContext.class), any(ElementContext.class), eq(new Id(PARAMETER1_ID))); + assertEquals("testInput", result.getName()); - }*/ + } @Test @@ -101,9 +111,56 @@ public class ParameterRepositoryTest { } + @Test + public void shouldListParametersByType() { + + ElementInfo parameter1 = new ElementInfo(); + parameter1.setId(new Id(PARAMETER1_ID)); + Info info1 = new Info(); + info1.setName("input1"); + info1.addProperty(ParameterPropertyName.TYPE.name(),"INTEGER"); + info1.addProperty(ParameterPropertyName.mandatory.name(),true); + parameter1.setInfo(info1); + ElementInfo parameter2 = new ElementInfo(); + parameter2.setId(new Id(PARAMETER2_ID)); + Info info2 = new Info(); + info2.setName("input2"); + info2.addProperty(ParameterPropertyName.TYPE.name(),"STRING"); + info2.addProperty(ParameterPropertyName.mandatory.name(),false); + parameter2.setInfo(info2); + Collection<ElementInfo> parameters = Collections.asSet(parameter1, parameter2); + doReturn(parameters).when(zusammenAdaptorMock) + .listElementsByName(any(SessionContext.class), any(ElementContext.class),isNull(Id.class),eq(ParameterRole.INPUT.name())); + Collection<ParameterEntity> results = parameterRepository.list(ITEM1_ID, VERSION1_ID, ParameterRole.INPUT); + + verify(zusammenAdaptorMock).listElementsByName(any(SessionContext.class), any(ElementContext.class), isNull(Id.class), + eq(WorkflowElementType.INPUT.name())); + assertTrue(results.stream().anyMatch(parameterEntity -> parameterEntity.getId().equals(PARAMETER1_ID))); + assertTrue(results.stream().anyMatch(parameterEntity -> parameterEntity.getId().equals(PARAMETER2_ID))); + } - - - + @Test + public void shouldDeleteAllParametersByType() { + ElementInfo parameterParentElement = new ElementInfo(); + parameterParentElement.setId(new Id(PARAMETERS_PARENT_ID)); + ElementInfo parameter1 = new ElementInfo(); + parameter1.setId(new Id(PARAMETER1_ID)); + ElementInfo parameter2 = new ElementInfo(); + parameter2.setId(new Id(PARAMETER2_ID)); + parameterParentElement.setSubElements(new ArrayList<>()); + parameterParentElement.getSubElements().add(parameter1); + parameterParentElement.getSubElements().add(parameter2); + + Optional<ElementInfo> elementOptional = Optional.of(parameterParentElement); + + doReturn(elementOptional).when(zusammenAdaptorMock) + .getElementInfoByName(any(SessionContext.class), any(ElementContext.class), + isNull(Id.class), eq(WorkflowElementType.INPUTS.name())); + + parameterRepository.deleteAll(ITEM1_ID, VERSION1_ID, ParameterRole.INPUT); + verify(zusammenAdaptorMock) + .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class), + eq("Delete all INPUT")); + } } diff --git a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java index 53a3cff4..4c511de0 100644 --- a/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java +++ b/workflow/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java @@ -127,20 +127,21 @@ public class WorkflowVersionManagerImplTest { } - /*@Test + @Test public void shouldCreateWorkflowVersion(){ Version version = new Version(VERSION1_ID); version.setDescription("version desc"); doReturn(version).when(versioningManagerMock).create(ITEM1_ID,version, VersionCreationMethod.major); VersionRequestDto versionRequest = new VersionRequestDto(); versionRequest.setDescription("version desc"); + versionRequest.setInputs(new ArrayList<>()); + versionRequest.setOutputs(new ArrayList<>()); WorkflowVersion workflowVersion = new WorkflowVersion(VERSION1_ID); doReturn(workflowVersion).when(workflowVersionManager).get(ITEM1_ID,VERSION1_ID); workflowVersionManager.create(ITEM1_ID,versionRequest); verify(versioningManagerMock).create(ITEM1_ID,version, VersionCreationMethod.major); - } -*/ + @Test(expected = VersionCreationException.class) public void shouldTrowExceptionWhenDraftVersionExists() { VersionRequestDto versionRequestDto = new VersionRequestDto(); |