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.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;
29 @RunWith(MockitoJUnitRunner.class)
30 public class CloudRegionRestImplTest {
34 private CloudRestImpl cloudRestImpl;
37 private CatalogDbClient catalogDbClientMock;
40 private AAIResourcesClient aaiResClientMock;
43 private NetworkTechnologyReferenceRepository ntRepoMock;
45 private CloudSite cloudSite = new CloudSite();
47 private CloudRegion testCloudRegion = new CloudRegion();
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");
67 public void mapCloudRegionTest() {
68 CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite);
69 assertThat(mappedRegion, sameBeanAs(testCloudRegion));
74 public void mapCloudRegionVersionGreaterThan3Test() {
75 CloudSite cloudSite2 = new CloudSite();
76 cloudSite2.setCloudVersion("3.0.1");
77 cloudSite2.setRegionId("region1");
78 cloudSite2.setCloudOwner("bob");
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));
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));
109 public void updateCloudRegionTest() {
110 when(catalogDbClientMock.updateCloudSite(cloudSite)).thenReturn(cloudSite);
111 cloudRestImpl.updateCloudRegion(cloudSite);
112 verify(catalogDbClientMock, times(1)).updateCloudSite(cloudSite);
116 public void deleteCloudRegionTest() {
117 doNothing().when(catalogDbClientMock).deleteCloudSite("region1");
118 cloudRestImpl.deleteCloudRegion(cloudSite.getRegionId());
119 verify(catalogDbClientMock, times(1)).deleteCloudSite("region1");