workflow parameters API
[vid.git] / vid-app-common / src / test / java / org / onap / vid / services / ExtWorkflowServiceImplTest.java
1 package org.onap.vid.services;
2
3
4
5 import com.google.common.collect.Lists;
6 import io.joshworks.restclient.http.HttpResponse;
7 import java.util.Collections;
8 import java.util.List;
9
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;
24
25
26
27 public class ExtWorkflowServiceImplTest {
28
29     @Mock
30     private MockedWorkflowsRestClient client;
31     @Mock
32     private HttpResponse<SOWorkflows> response;
33
34     @Mock
35     private HttpResponse<SOWorkflowParameterDefinitions> parameterDefinitionsHttpResponse;
36
37
38     @BeforeMethod
39     public void init(){
40         MockitoAnnotations.initMocks(this);
41     }
42
43     @Test
44     public void shouldReturnWorkflowsOnValidResponse(){
45         // given
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);
51         // when
52         List<SOWorkflow> workflows = extWorkflowsService.getWorkflows("test");
53         // then
54         Mockito.verify(client).getWorkflows("test");
55         Assertions.assertThat(workflows.get(0).getName()).isEqualTo("xyz");
56     }
57
58     @Test(expectedExceptions = BadResponseFromMso.class)
59     public void shouldThrowBadResponseOnInvalidResponse(){
60         // given
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);
66         // when
67         extWorkflowsService.getWorkflows("test");
68         // then throw exception
69     }
70     @Test
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);
78
79
80         SOWorkflowParameterDefinitions workflowParameterDefinitions = extWorkflowsService.getWorkflowParameterDefinitions(1L);
81
82         Assertions.assertThat(workflowParameterDefinitions).isEqualTo(parameters);
83     }
84
85     @Test
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()));
90
91         MsoResponseWrapper2<SOWorkflowParameterDefinitions> msoResponseWrapper = new MsoResponseWrapper2<>(parameterDefinitionsHttpResponse);
92         Mockito.when(client.getWorkflowParameterDefinitions(1L)).thenReturn(msoResponseWrapper);
93
94
95         SOWorkflowParameterDefinitions workflowParameterDefinitions = extWorkflowsService.getWorkflowParameterDefinitions(1L);
96         Assertions.assertThat(workflowParameterDefinitions.getParameterDefinitions()).isEmpty();
97     }
98 }