1 package org.onap.so.adapters.cloudregion;
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;
28 @RunWith(MockitoJUnitRunner.class)
29 public class CloudRegionRestImplTest {
33 private CloudRestImpl cloudRestImpl;
36 private CatalogDbClient catalogDbClientMock;
39 private AAIResourcesClient aaiResClientMock;
41 private CloudSite cloudSite = new CloudSite();
43 private CloudRegion testCloudRegion = new CloudRegion();
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");
62 public void mapCloudRegionTest() {
63 CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite, "bob");
64 assertThat(mappedRegion, sameBeanAs(testCloudRegion));
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));
83 public void updateCloudRegionTest() {
84 when(catalogDbClientMock.updateCloudSite(cloudSite)).thenReturn(cloudSite);
85 cloudRestImpl.updateCloudRegion(cloudSite, "bob");
86 verify(catalogDbClientMock, times(1)).updateCloudSite(cloudSite);
90 public void deleteCloudRegionTest() {
91 doNothing().when(catalogDbClientMock).deleteCloudSite("region1");
92 cloudRestImpl.deleteCloudRegion(cloudSite.getRegionId());
93 verify(catalogDbClientMock, times(1)).deleteCloudSite("region1");