1 package org.onap.vid.services;
5 import com.google.common.collect.Lists;
6 import io.joshworks.restclient.http.HttpResponse;
7 import java.util.Collections;
10 import org.assertj.core.api.Assertions;
11 import org.mockito.Mock;
12 import org.mockito.Mockito;
13 import org.mockito.MockitoAnnotations;
14 import org.onap.vid.model.SOWorkflow;
15 import org.onap.vid.model.SOWorkflowParameterDefinition;
16 import org.onap.vid.model.SOWorkflowParameterDefinitions;
17 import org.onap.vid.model.SOWorkflowType;
18 import org.onap.vid.model.SOWorkflows;
19 import org.onap.vid.mso.MsoResponseWrapper2;
20 import org.onap.vid.mso.rest.MockedWorkflowsRestClient;
21 import org.onap.vid.services.ExtWorkflowsServiceImpl.BadResponseFromMso;
22 import org.testng.annotations.BeforeMethod;
23 import org.testng.annotations.Test;
27 public class ExtWorkflowServiceImplTest {
30 private MockedWorkflowsRestClient client;
32 private HttpResponse<SOWorkflows> response;
35 private HttpResponse<SOWorkflowParameterDefinitions> parameterDefinitionsHttpResponse;
40 MockitoAnnotations.initMocks(this);
44 public void shouldReturnWorkflowsOnValidResponse(){
46 ExtWorkflowsService extWorkflowsService = new ExtWorkflowsServiceImpl(client);
47 Mockito.when(response.getStatus()).thenReturn(200);
48 Mockito.when(response.getBody()).thenReturn(new SOWorkflows(Collections.singletonList(new SOWorkflow(1L, "xyz"))));
49 MsoResponseWrapper2<SOWorkflows> msoResponseStub = new MsoResponseWrapper2<>(response);
50 Mockito.when(client.getWorkflows("test")).thenReturn(msoResponseStub);
52 List<SOWorkflow> workflows = extWorkflowsService.getWorkflows("test");
54 Mockito.verify(client).getWorkflows("test");
55 Assertions.assertThat(workflows.get(0).getName()).isEqualTo("xyz");
58 @Test(expectedExceptions = BadResponseFromMso.class)
59 public void shouldThrowBadResponseOnInvalidResponse(){
61 ExtWorkflowsService extWorkflowsService = new ExtWorkflowsServiceImpl(client);
62 Mockito.when(response.getStatus()).thenReturn(500);
63 Mockito.when(response.getBody()).thenReturn(new SOWorkflows(Collections.singletonList(new SOWorkflow(1L, "xyz"))));
64 MsoResponseWrapper2<SOWorkflows> msoResponseStub = new MsoResponseWrapper2<>(response);
65 Mockito.when(client.getWorkflows("test")).thenReturn(msoResponseStub);
67 extWorkflowsService.getWorkflows("test");
68 // then throw exception
71 public void shouldReturnWorkflowParametersOnValidResponse() {
72 SOWorkflowParameterDefinitions parameters = new SOWorkflowParameterDefinitions(Collections.singletonList(new SOWorkflowParameterDefinition(1L, "sample", "[0-9]", SOWorkflowType.STRING, true)));
73 ExtWorkflowsService extWorkflowsService = new ExtWorkflowsServiceImpl(client);
74 Mockito.when(parameterDefinitionsHttpResponse.getStatus()).thenReturn(200);
75 Mockito.when(parameterDefinitionsHttpResponse.getBody()).thenReturn(parameters);
76 MsoResponseWrapper2<SOWorkflowParameterDefinitions> msoResponseWrapper = new MsoResponseWrapper2<>(parameterDefinitionsHttpResponse);
77 Mockito.when(client.getWorkflowParameterDefinitions(1L)).thenReturn(msoResponseWrapper);
80 SOWorkflowParameterDefinitions workflowParameterDefinitions = extWorkflowsService.getWorkflowParameterDefinitions(1L);
82 Assertions.assertThat(workflowParameterDefinitions).isEqualTo(parameters);
86 public void shouldProperlyHandleEmptyParametersList(){
87 ExtWorkflowsService extWorkflowsService = new ExtWorkflowsServiceImpl(client);
88 Mockito.when(parameterDefinitionsHttpResponse.getStatus()).thenReturn(200);
89 Mockito.when(parameterDefinitionsHttpResponse.getBody()).thenReturn(new SOWorkflowParameterDefinitions(Lists.newArrayList()));
91 MsoResponseWrapper2<SOWorkflowParameterDefinitions> msoResponseWrapper = new MsoResponseWrapper2<>(parameterDefinitionsHttpResponse);
92 Mockito.when(client.getWorkflowParameterDefinitions(1L)).thenReturn(msoResponseWrapper);
95 SOWorkflowParameterDefinitions workflowParameterDefinitions = extWorkflowsService.getWorkflowParameterDefinitions(1L);
96 Assertions.assertThat(workflowParameterDefinitions.getParameterDefinitions()).isEmpty();