Merge from ECOMP's repository
[vid.git] / vid-app-common / src / test / java / org / onap / vid / bl / AaiServiceTest.java
1 package org.onap.vid.bl;
2
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.Mockito;
6 import org.mockito.MockitoAnnotations;
7 import org.onap.vid.aai.AaiClientInterface;
8 import org.onap.vid.aai.AaiResponse;
9 import org.onap.vid.aai.model.*;
10 import org.onap.vid.aai.model.AaiGetPnfs.Pnf;
11 import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse;
12 import org.onap.vid.roles.Role;
13 import org.onap.vid.roles.RoleValidator;
14 import org.onap.vid.services.AaiServiceImpl;
15 import org.testng.annotations.BeforeMethod;
16 import org.testng.annotations.DataProvider;
17 import org.testng.annotations.Test;
18
19 import java.util.Arrays;
20 import java.util.Collections;
21 import java.util.List;
22
23 import static org.hamcrest.MatcherAssert.assertThat;
24 import static org.hamcrest.Matchers.arrayWithSize;
25 import static org.hamcrest.Matchers.equalTo;
26 import static org.testng.Assert.assertEquals;
27 import static org.testng.Assert.assertNotNull;
28
29 public class AaiServiceTest {
30
31     @InjectMocks
32     private AaiServiceImpl aaiService;
33
34     @Mock
35     private AaiClientInterface aaiClientInterface;
36
37
38
39     @BeforeMethod
40     public void initMocks(){
41         MockitoAnnotations.initMocks(this);
42     }
43
44     @Test
45     public void testGetSpecificPnf(){
46         Pnf pnf = new Pnf();
47         pnf.setPnfId("11111");
48         AaiResponse<Pnf> aaiResponse = new AaiResponse<>(pnf, "aaaa", 200);
49         Mockito.doReturn(aaiResponse).when(aaiClientInterface).getSpecificPnf(Mockito.anyString());
50         AaiResponse<Pnf> specificPnf = aaiService.getSpecificPnf("1345667");
51         assertNotNull(specificPnf);
52         pnf = specificPnf.getT();
53         assertNotNull(pnf);
54         assertEquals("11111",pnf.getPnfId());
55         assertEquals("aaaa",specificPnf.getErrorMessage());
56         assertEquals(200,specificPnf.getHttpCode());
57     }
58
59     @Test
60     public void testPnfByRegion(){
61         AaiGetPnfResponse aaiGetPnfResponse = new AaiGetPnfResponse();
62         AaiResponse<AaiGetPnfResponse> aaiResponse = new AaiResponse<>(aaiGetPnfResponse, "", 200);
63         Mockito.doReturn(aaiResponse).when(aaiClientInterface).getPNFData(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
64         AaiResponse<AaiGetPnfResponse> aaiGetPnfResponseWrapper = aaiService.getPNFData("1345667", "1345667", "1345667", "1345667", "1345667", "1345667", "1345667");
65         assertNotNull(aaiGetPnfResponseWrapper);
66         aaiGetPnfResponse = aaiGetPnfResponseWrapper.getT();
67         assertNotNull(aaiGetPnfResponse);
68     }
69
70     @Test
71     public void testGetAssociatedPnfs(){
72         ServiceRelationships serviceRelationships = createServiceRelationships();
73         AaiResponse<ServiceRelationships> aaiResponse = new AaiResponse<>(serviceRelationships, null, 200);
74         Mockito.doReturn(aaiResponse).when(aaiClientInterface).getServiceInstance(Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
75
76         LogicalLinkResponse logicalLinkResponse = createLogicalLinkResponse();
77         AaiResponse<LogicalLinkResponse> aaiResponse1 = new AaiResponse<>(logicalLinkResponse, null, 200);
78         Mockito.doReturn(aaiResponse1).when(aaiClientInterface).getLogicalLink("SANITY6758cce9%3ALAG1992%7CSANITY6785cce9%3ALAG1961");
79
80         List<String> pnfList = aaiService.getServiceInstanceAssociatedPnfs("123", "456", "789");
81         assertNotNull(pnfList);
82         assertEquals(1, pnfList.size());
83         assertEquals("SANITY6785cce9", pnfList.get(0));
84     }
85
86     private ServiceRelationships createServiceRelationships() {
87         ServiceRelationships serviceRelationships = new ServiceRelationships();
88         serviceRelationships.setServiceInstanceName("test service");
89
90         RelationshipData logicalLinksRelationshipData = new RelationshipData();
91         logicalLinksRelationshipData.setRelationshipKey("logical-link.link-name");
92         logicalLinksRelationshipData.setRelationshipValue("SANITY6758cce9:LAG1992|SANITY6785cce9:LAG1961");
93
94         Relationship logicalLinksRelationship = new Relationship();
95         logicalLinksRelationship.setRelatedTo("logical-link");
96         logicalLinksRelationship.setRelationDataList(Arrays.asList(logicalLinksRelationshipData));
97
98         RelationshipList logicalLinksRelationshipsList = new RelationshipList();
99         logicalLinksRelationshipsList.setRelationship(Arrays.asList(logicalLinksRelationship));
100
101         serviceRelationships.setRelationshipList(logicalLinksRelationshipsList);
102         return serviceRelationships;
103     }
104
105     private LogicalLinkResponse createLogicalLinkResponse() {
106         LogicalLinkResponse logicalLinkResponse = new LogicalLinkResponse();
107         logicalLinkResponse.setLinkName("SANITY6758cce9:LAG1992|SANITY6785cce9:LAG1961");
108
109         RelationshipData lagInterfaceRelationshipData = new RelationshipData();
110         lagInterfaceRelationshipData.setRelationshipKey("pnf.pnf-name");
111         lagInterfaceRelationshipData.setRelationshipValue("SANITY6785cce9");
112
113         Relationship lagInterfaceRelationship = new Relationship();
114         lagInterfaceRelationship.setRelatedTo("lag-interface");
115         lagInterfaceRelationship.setRelationDataList(Arrays.asList(lagInterfaceRelationshipData));
116
117         RelationshipList lagInterfaceRelationshipsList = new RelationshipList();
118         lagInterfaceRelationshipsList.setRelationship(Arrays.asList(lagInterfaceRelationship));
119
120         logicalLinkResponse.setRelationshipList(lagInterfaceRelationshipsList);
121
122         return logicalLinkResponse;
123     }
124
125     @DataProvider
126     public static Object[][] getTenantsData() {
127         return new Object[][] {
128                 {"customer1", "serviceType1", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", true},
129                 {"customer1", "serviceType1", "TeNant1", "customer1", "serviceType1", "tenant1", "id-1", true},
130                 {"customer1", "serviceType1", "TENANT1", "customer1", "serviceType1", "tenant1", "id-1", true},
131                 {"customer1", "serviceType1", "tenant2", "customer1", "serviceType1", "tenant1", "tenant2", false},
132                 {"customer1", "serviceType1", null, "customer1", "serviceType1", "tenant1", "tenant2", true},
133                 {"customer2", "serviceType1", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", false},
134                 {"customer1", "serviceType2", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", false},
135                 {"customer2", "serviceType1", null, "customer1", "serviceType1", "tenant1", "id-1", false},
136                 {"customer1", "serviceType2", null, "customer1", "serviceType1", "tenant1", "id-1", false},
137         };
138     }
139
140     @Test(dataProvider = "getTenantsData")
141     public void testGetTenants(String userGlobalCustomerId, String userServiceType, String userTenantName, String serviceGlobalCustomerId,
142                                String serviceServiceType, String serviceTenantName, String serviceTenantId, boolean expectedIsPermitted) {
143         GetTenantsResponse[] getTenantsResponses = new GetTenantsResponse[] {new GetTenantsResponse(null, null, serviceTenantName, serviceTenantId, expectedIsPermitted)};
144         AaiResponse<GetTenantsResponse[]> aaiResponse = new AaiResponse<>(getTenantsResponses, null, 200);
145         Mockito.doReturn(aaiResponse).when(aaiClientInterface).getTenants(serviceGlobalCustomerId, serviceServiceType);
146         Role role = new Role(null, userGlobalCustomerId, userServiceType, userTenantName);
147         RoleValidator roleValidator = new RoleValidator(Collections.singletonList(role));
148         AaiResponse<GetTenantsResponse[]> actualTenants = aaiService.getTenants(serviceGlobalCustomerId, serviceServiceType, roleValidator);
149
150         assertThat(actualTenants.getT(), arrayWithSize(1));
151         assertThat(actualTenants.getT()[0].tenantName, equalTo(serviceTenantName));
152         //assertThat(actualTenants.getT()[0].isPermitted, equalTo(expectedIsPermitted));
153     }
154 }