summaryrefslogtreecommitdiffstats
path: root/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/cloudregion/CloudRegionRestImplTest.java
blob: 9d5a4c62b9ffd3e849c60543c36fd3cd684a2bba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package org.onap.so.adapters.cloudregion;

import static com.shazam.shazamcrest.MatcherAssert.assertThat;
import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import org.onap.aai.domain.yang.CloudRegion;
import org.onap.aaiclient.client.aai.AAIResourcesClient;
import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
import org.onap.so.db.catalog.beans.CloudSite;
import org.onap.so.db.catalog.client.CatalogDbClient;
import org.onap.so.db.catalog.data.repository.NetworkTechnologyReferenceRepository;


@RunWith(MockitoJUnitRunner.class)
public class CloudRegionRestImplTest {

    @Spy
    @InjectMocks
    private CloudRestImpl cloudRestImpl;

    @Mock
    private CatalogDbClient catalogDbClientMock;

    @Mock
    private AAIResourcesClient aaiResClientMock;

    @Mock
    private NetworkTechnologyReferenceRepository ntRepoMock;

    private CloudSite cloudSite = new CloudSite();

    private CloudRegion testCloudRegion = new CloudRegion();

    @Before
    public void setup() {
        cloudSite.setCloudVersion("1.0");
        cloudSite.setRegionId("region1");
        cloudSite.setCloudOwner("bob");
        Mockito.doReturn(aaiResClientMock).when(cloudRestImpl).getAaiClient();
        testCloudRegion.setCloudOwner("bob");
        testCloudRegion.setCloudRegionId("region1");
        testCloudRegion.setCloudRegionVersion("1.0");
        testCloudRegion.setInMaint(false);
        testCloudRegion.setOrchestrationDisabled(false);
        testCloudRegion.setCloudRegionVersion("1.0");
        testCloudRegion.setOwnerDefinedType("cLCP");
        testCloudRegion.setCloudType("openstack");
        testCloudRegion.setCloudZone("region1");
    }

    @Test
    public void mapCloudRegionTest() {
        CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite);
        assertThat(mappedRegion, sameBeanAs(testCloudRegion));
    }


    @Test
    public void mapCloudRegionVersionGreaterThan3Test() {
        CloudSite cloudSite2 = new CloudSite();
        cloudSite2.setCloudVersion("3.0.1");
        cloudSite2.setRegionId("region1");
        cloudSite2.setCloudOwner("bob");

        CloudRegion mappedRegion = cloudRestImpl.mapCloudRegion(cloudSite2);
        CloudRegion testRegion2 = new CloudRegion();
        testRegion2.setCloudOwner("bob");
        testRegion2.setCloudRegionId("region1");
        testRegion2.setCloudRegionVersion("3.0.1");
        testRegion2.setInMaint(false);
        testRegion2.setOrchestrationDisabled(false);
        testRegion2.setOwnerDefinedType("cLCP");
        testRegion2.setCloudType("openstack");
        testRegion2.setCloudZone("region");
        assertThat(mappedRegion, sameBeanAs(testRegion2));
    }

    @Test
    public void createCloudRegionTest() {
        when(catalogDbClientMock.getCloudSite("region1")).thenReturn(null);
        when(catalogDbClientMock.postCloudSite(cloudSite)).thenReturn(cloudSite);
        AAIResourceUri uri = AAIUriFactory
                .createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion("bob", "region1"));
        cloudRestImpl.createCloudRegion(cloudSite);
        ArgumentCaptor<AAIResourceUri> actualURI = ArgumentCaptor.forClass(AAIResourceUri.class);
        ArgumentCaptor<Optional<Object>> actualCloudRegion = ArgumentCaptor.forClass(Optional.class);
        verify(catalogDbClientMock, times(1)).getCloudSite("region1");
        verify(catalogDbClientMock, times(1)).postCloudSite(cloudSite);
        verify(aaiResClientMock, times(1)).createIfNotExists(Mockito.eq(uri), Mockito.any());
        verify(aaiResClientMock, times(1)).createIfNotExists(actualURI.capture(), actualCloudRegion.capture());
        assertThat((CloudRegion) actualCloudRegion.getValue().get(), sameBeanAs(testCloudRegion));
    }

    @Test
    public void updateCloudRegionTest() {
        when(catalogDbClientMock.updateCloudSite(cloudSite)).thenReturn(cloudSite);
        cloudRestImpl.updateCloudRegion(cloudSite);
        verify(catalogDbClientMock, times(1)).updateCloudSite(cloudSite);
    }

    @Test
    public void deleteCloudRegionTest() {
        doNothing().when(catalogDbClientMock).deleteCloudSite("region1");
        cloudRestImpl.deleteCloudRegion(cloudSite.getRegionId());
        verify(catalogDbClientMock, times(1)).deleteCloudSite("region1");
    }

}