rename package for external use
[so.git] / adapters / mso-openstack-adapters / src / test / java / org / onap / so / adapters / cloudregion / CloudRegionRestImplTest.java
1 package org.onap.so.adapters.cloudregion;
2
3 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
4 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
5 import static org.mockito.Mockito.doNothing;
6 import static org.mockito.Mockito.times;
7 import static org.mockito.Mockito.verify;
8 import static org.mockito.Mockito.when;
9 import java.util.Optional;
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.junit.runner.RunWith;
13 import org.mockito.ArgumentCaptor;
14 import org.mockito.InjectMocks;
15 import org.mockito.Mock;
16 import org.mockito.Mockito;
17 import org.mockito.Spy;
18 import org.mockito.junit.MockitoJUnitRunner;
19 import org.onap.aai.domain.yang.CloudRegion;
20 import org.onap.aaiclient.client.aai.AAIObjectType;
21 import org.onap.aaiclient.client.aai.AAIResourcesClient;
22 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
23 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
24 import org.onap.so.db.catalog.beans.CloudSite;
25 import org.onap.so.db.catalog.client.CatalogDbClient;
26 import org.onap.so.db.catalog.data.repository.NetworkTechnologyReferenceRepository;
27
28
29 @RunWith(MockitoJUnitRunner.class)
30 public class CloudRegionRestImplTest {
31
32     @Spy
33     @InjectMocks
34     private CloudRestImpl cloudRestImpl;
35
36     @Mock
37     private CatalogDbClient catalogDbClientMock;
38
39     @Mock
40     private AAIResourcesClient aaiResClientMock;
41
42     @Mock
43     private NetworkTechnologyReferenceRepository ntRepoMock;
44
45     private CloudSite cloudSite = new CloudSite();
46
47     private CloudRegion testCloudRegion = new CloudRegion();
48
49     @Before
50     public void setup() {
51         cloudSite.setCloudVersion("1.0");
52         cloudSite.setRegionId("region1");
53         cloudSite.setCloudOwner("bob");
54         Mockito.doReturn(aaiResClientMock).when(cloudRestImpl).getAaiClient();
55         testCloudRegion.setCloudOwner("bob");
56         testCloudRegion.setCloudRegionId("region1");
57         testCloudRegion.setCloudRegionVersion("1.0");
58         testCloudRegion.setInMaint(false);
59         testCloudRegion.setOrchestrationDisabled(false);
60         testCloudRegion.setCloudRegionVersion("1.0");
61         testCloudRegion.setOwnerDefinedType("cLCP");
62         testCloudRegion.setCloudType("openstack");
63         testCloudRegion.setCloudZone("region1");
64     }
65
66     @Test
67     public void mapCloudRegionTest() {
68         CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite);
69         assertThat(mappedRegion, sameBeanAs(testCloudRegion));
70     }
71
72
73     @Test
74     public void mapCloudRegionVersionGreaterThan3Test() {
75         CloudSite cloudSite2 = new CloudSite();
76         cloudSite2.setCloudVersion("3.0.1");
77         cloudSite2.setRegionId("region1");
78         cloudSite2.setCloudOwner("bob");
79
80         CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite2);
81         CloudRegion testRegion2 = new CloudRegion();
82         testRegion2.setCloudOwner("bob");
83         testRegion2.setCloudRegionId("region1");
84         testRegion2.setCloudRegionVersion("3.0.1");
85         testRegion2.setInMaint(false);
86         testRegion2.setOrchestrationDisabled(false);
87         testRegion2.setOwnerDefinedType("cLCP");
88         testRegion2.setCloudType("openstack");
89         testRegion2.setCloudZone("region");
90         assertThat(mappedRegion, sameBeanAs(testRegion2));
91     }
92
93     @Test
94     public void createCloudRegionTest() {
95         when(catalogDbClientMock.getCloudSite("region1")).thenReturn(null);
96         when(catalogDbClientMock.postCloudSite(cloudSite)).thenReturn(cloudSite);
97         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, "bob", "region1");
98         cloudRestImpl.createCloudRegion(cloudSite);
99         ArgumentCaptor<AAIResourceUri> actualURI = ArgumentCaptor.forClass(AAIResourceUri.class);
100         ArgumentCaptor<Optional<Object>> actualCloudRegion = ArgumentCaptor.forClass(Optional.class);
101         verify(catalogDbClientMock, times(1)).getCloudSite("region1");
102         verify(catalogDbClientMock, times(1)).postCloudSite(cloudSite);
103         verify(aaiResClientMock, times(1)).createIfNotExists(Mockito.eq(uri), Mockito.any());
104         verify(aaiResClientMock, times(1)).createIfNotExists(actualURI.capture(), actualCloudRegion.capture());
105         assertThat((CloudRegion) actualCloudRegion.getValue().get(), sameBeanAs(testCloudRegion));
106     }
107
108     @Test
109     public void updateCloudRegionTest() {
110         when(catalogDbClientMock.updateCloudSite(cloudSite)).thenReturn(cloudSite);
111         cloudRestImpl.updateCloudRegion(cloudSite);
112         verify(catalogDbClientMock, times(1)).updateCloudSite(cloudSite);
113     }
114
115     @Test
116     public void deleteCloudRegionTest() {
117         doNothing().when(catalogDbClientMock).deleteCloudSite("region1");
118         cloudRestImpl.deleteCloudRegion(cloudSite.getRegionId());
119         verify(catalogDbClientMock, times(1)).deleteCloudSite("region1");
120     }
121
122 }