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");