9c62c286ace283486343b2f9ee3020838aaa0fb1
[so.git] /
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.so.client.aai.AAIObjectType;
21 import org.onap.so.client.aai.AAIResourcesClient;
22 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
23 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
24 import org.onap.so.db.catalog.beans.CloudSite;
25 import org.onap.so.db.catalog.client.CatalogDbClient;
26
27
28 @RunWith(MockitoJUnitRunner.class)
29 public class CloudRegionRestImplTest {
30
31     @Spy
32     @InjectMocks
33     private CloudRestImpl cloudRestImpl;
34
35     @Mock
36     private CatalogDbClient catalogDbClientMock;
37
38     @Mock
39     private AAIResourcesClient aaiResClientMock;
40
41     private CloudSite cloudSite = new CloudSite();
42
43     private CloudRegion testCloudRegion = new CloudRegion();
44
45     @Before
46     public void setup() {
47         cloudSite.setCloudVersion("1.0");
48         cloudSite.setRegionId("region1");
49         Mockito.doReturn(aaiResClientMock).when(cloudRestImpl).getAaiClient();
50         testCloudRegion.setCloudOwner("bob");
51         testCloudRegion.setCloudRegionId("region1");
52         testCloudRegion.setCloudRegionVersion("1.0");
53         testCloudRegion.setInMaint(false);
54         testCloudRegion.setOrchestrationDisabled(false);
55         testCloudRegion.setComplexName("NA");
56         testCloudRegion.setCloudRegionVersion("1.0");
57         testCloudRegion.setOwnerDefinedType("cLCP");
58         testCloudRegion.setCloudType("openstack");
59     }
60
61     @Test
62     public void mapCloudRegionTest() {
63         CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite, "bob");
64         assertThat(mappedRegion, sameBeanAs(testCloudRegion));
65     }
66
67     @Test
68     public void createCloudRegionTest() {
69         when(catalogDbClientMock.getCloudSite("region1")).thenReturn(null);
70         when(catalogDbClientMock.postCloudSite(cloudSite)).thenReturn(cloudSite);
71         AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, "bob", "region1");
72         cloudRestImpl.createCloudRegion(cloudSite, "bob");
73         ArgumentCaptor<AAIResourceUri> actualURI = ArgumentCaptor.forClass(AAIResourceUri.class);
74         ArgumentCaptor<Optional<Object>> actualCloudRegion = ArgumentCaptor.forClass(Optional.class);
75         verify(catalogDbClientMock, times(1)).getCloudSite("region1");
76         verify(catalogDbClientMock, times(1)).postCloudSite(cloudSite);
77         verify(aaiResClientMock, times(1)).createIfNotExists(Mockito.eq(uri), Mockito.any());
78         verify(aaiResClientMock, times(1)).createIfNotExists(actualURI.capture(), actualCloudRegion.capture());
79         assertThat((CloudRegion) actualCloudRegion.getValue().get(), sameBeanAs(testCloudRegion));
80     }
81
82     @Test
83     public void updateCloudRegionTest() {
84         when(catalogDbClientMock.updateCloudSite(cloudSite)).thenReturn(cloudSite);
85         cloudRestImpl.updateCloudRegion(cloudSite, "bob");
86         verify(catalogDbClientMock, times(1)).updateCloudSite(cloudSite);
87     }
88
89     @Test
90     public void deleteCloudRegionTest() {
91         doNothing().when(catalogDbClientMock).deleteCloudSite("region1");
92         cloudRestImpl.deleteCloudRegion(cloudSite.getRegionId());
93         verify(catalogDbClientMock, times(1)).deleteCloudSite("region1");
94     }
95
96 }