35a5bfefd71e1ea7e3779cd7f23af05a5fd18aad
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / workflow / tasks / WorkflowActionExtractResourcesAAITest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Modifications Copyright (c) 2020 Nokia
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.workflow.tasks;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.mockito.Mockito.mock;
25 import static org.mockito.Mockito.when;
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.List;
29 import java.util.Optional;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.mockito.InjectMocks;
33 import org.mockito.Mock;
34 import org.mockito.junit.MockitoJUnitRunner;
35 import org.onap.aai.domain.yang.VpnBinding;
36 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
37 import org.onap.aaiclient.client.aai.entities.Relationships;
38 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
39 import org.onap.aaiclient.client.aai.entities.uri.AAISimpleUri;
40 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
42 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
43
44 @RunWith(MockitoJUnitRunner.class)
45 public class WorkflowActionExtractResourcesAAITest {
46
47     private static final String CONFIGURATION_ID = "configTestId";
48     private static final String VPN_ID = "vpnTestId";
49
50     @Mock
51     private BBInputSetupUtils bbInputSetupUtils;
52     @InjectMocks
53     private WorkflowActionExtractResourcesAAI testedObject;
54
55     @Test
56     public void extractRelationshipsConfigurationSuccess() {
57         // given
58         Relationships relationships = mock(Relationships.class);
59         when(relationships.getByType(Types.CONFIGURATION)).thenReturn(getConfigurationList());
60         // when
61         Optional<Configuration> resultOpt = testedObject.extractRelationshipsConfiguration(relationships);
62         // then
63         assertThat(resultOpt).isNotEmpty();
64         assertThat(resultOpt.get().getConfigurationId()).isEqualTo(CONFIGURATION_ID);
65     }
66
67     @Test
68     public void extractRelationshipsConfiguration_notFound() {
69         // given
70         Relationships relationships = mock(Relationships.class);
71         when(relationships.getByType(Types.CONFIGURATION)).thenReturn(Collections.emptyList());
72         // when
73         Optional<Configuration> resultOpt = testedObject.extractRelationshipsConfiguration(relationships);
74         // then
75         assertThat(resultOpt).isEmpty();
76     }
77
78     @Test
79     public void extractRelationshipsVpnBindingSuccess() {
80         // given
81         Relationships relationships = mock(Relationships.class);
82         AAIResourceUri aaiResourceUri = mock(AAISimpleUri.class);
83         List<AAIResourceUri> aaiResourceUriList = new ArrayList<>();
84         aaiResourceUriList.add(aaiResourceUri);
85         when(relationships.getRelatedUris(Types.VPN_BINDING)).thenReturn(aaiResourceUriList);
86         AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("{\"vpn-id\" : \"" + VPN_ID + "\"}");
87         when(bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri)).thenReturn(aaiResultWrapper);
88         // when
89         Optional<VpnBinding> resultOpt = testedObject.extractRelationshipsVpnBinding(relationships);
90         // then
91         assertThat(resultOpt).isNotEmpty();
92         assertThat(resultOpt.get().getVpnId()).isEqualTo(VPN_ID);
93     }
94
95     private List<AAIResultWrapper> getConfigurationList() {
96         List<AAIResultWrapper> configurations = new ArrayList<>();
97         AAIResultWrapper aaiResultWrapper =
98                 new AAIResultWrapper("{\"configuration-id\" : \"" + CONFIGURATION_ID + "\"}");
99         configurations.add(aaiResultWrapper);
100         return configurations;
101     }
102 }