1 package org.onap.vid.bl;
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;
19 import java.util.Arrays;
20 import java.util.Collections;
21 import java.util.List;
23 import static org.hamcrest.Matchers.arrayWithSize;
24 import static org.hamcrest.Matchers.equalTo;
25 import static org.testng.Assert.assertEquals;
26 import static org.testng.Assert.assertNotNull;
27 import static org.hamcrest.MatcherAssert.assertThat;
29 public class AaiServiceTest {
32 private AaiServiceImpl aaiService;
35 private AaiClientInterface aaiClientInterface;
40 public void initMocks(){
41 MockitoAnnotations.initMocks(this);
45 public void testGetSpecificPnf(){
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();
54 assertEquals("11111",pnf.getPnfId());
55 assertEquals("aaaa",specificPnf.getErrorMessage());
56 assertEquals(200,specificPnf.getHttpCode());
60 public void testGetAssociatedPnfs(){
61 ServiceRelationships serviceRelationships = createServiceRelationships();
62 AaiResponse<ServiceRelationships> aaiResponse = new AaiResponse<>(serviceRelationships, null, 200);
63 Mockito.doReturn(aaiResponse).when(aaiClientInterface).getServiceInstance(Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
65 LogicalLinkResponse logicalLinkResponse = createLogicalLinkResponse();
66 AaiResponse<LogicalLinkResponse> aaiResponse1 = new AaiResponse<>(logicalLinkResponse, null, 200);
67 Mockito.doReturn(aaiResponse1).when(aaiClientInterface).getLogicalLink("SANITY6758cce9%3ALAG1992%7CSANITY6785cce9%3ALAG1961");
69 List<String> pnfList = aaiService.getServiceInstanceAssociatedPnfs("123", "456", "789");
70 assertNotNull(pnfList);
71 assertEquals(1, pnfList.size());
72 assertEquals("SANITY6785cce9", pnfList.get(0));
75 private ServiceRelationships createServiceRelationships() {
76 ServiceRelationships serviceRelationships = new ServiceRelationships();
77 serviceRelationships.setServiceInstanceName("test service");
79 RelationshipData logicalLinksRelationshipData = new RelationshipData();
80 logicalLinksRelationshipData.setRelationshipKey("logical-link.link-name");
81 logicalLinksRelationshipData.setRelationshipValue("SANITY6758cce9:LAG1992|SANITY6785cce9:LAG1961");
83 Relationship logicalLinksRelationship = new Relationship();
84 logicalLinksRelationship.setRelatedTo("logical-link");
85 logicalLinksRelationship.setRelationDataList(Arrays.asList(logicalLinksRelationshipData));
87 RelationshipList logicalLinksRelationshipsList = new RelationshipList();
88 logicalLinksRelationshipsList.setRelationship(Arrays.asList(logicalLinksRelationship));
90 serviceRelationships.setRelationshipList(logicalLinksRelationshipsList);
91 return serviceRelationships;
94 private LogicalLinkResponse createLogicalLinkResponse() {
95 LogicalLinkResponse logicalLinkResponse = new LogicalLinkResponse();
96 logicalLinkResponse.setLinkName("SANITY6758cce9:LAG1992|SANITY6785cce9:LAG1961");
98 RelationshipData lagInterfaceRelationshipData = new RelationshipData();
99 lagInterfaceRelationshipData.setRelationshipKey("pnf.pnf-name");
100 lagInterfaceRelationshipData.setRelationshipValue("SANITY6785cce9");
102 Relationship lagInterfaceRelationship = new Relationship();
103 lagInterfaceRelationship.setRelatedTo("lag-interface");
104 lagInterfaceRelationship.setRelationDataList(Arrays.asList(lagInterfaceRelationshipData));
106 RelationshipList lagInterfaceRelationshipsList = new RelationshipList();
107 lagInterfaceRelationshipsList.setRelationship(Arrays.asList(lagInterfaceRelationship));
109 logicalLinkResponse.setRelationshipList(lagInterfaceRelationshipsList);
111 return logicalLinkResponse;
115 public static Object[][] getTenantsData() {
116 return new Object[][] {
117 {"customer1", "serviceType1", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", true},
118 {"customer1", "serviceType1", "TeNant1", "customer1", "serviceType1", "tenant1", "id-1", true},
119 {"customer1", "serviceType1", "TENANT1", "customer1", "serviceType1", "tenant1", "id-1", true},
120 {"customer1", "serviceType1", "tenant2", "customer1", "serviceType1", "tenant1", "tenant2", false},
121 {"customer1", "serviceType1", null, "customer1", "serviceType1", "tenant1", "tenant2", true},
122 {"customer2", "serviceType1", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", false},
123 {"customer1", "serviceType2", "tenant1", "customer1", "serviceType1", "tenant1", "id-1", false},
124 {"customer2", "serviceType1", null, "customer1", "serviceType1", "tenant1", "id-1", false},
125 {"customer1", "serviceType2", null, "customer1", "serviceType1", "tenant1", "id-1", false},
129 @Test(dataProvider = "getTenantsData")
130 public void testGetTenants(String userGlobalCustomerId, String userServiceType, String userTenantName, String serviceGlobalCustomerId,
131 String serviceServiceType, String serviceTenantName, String serviceTenantId, boolean expectedIsPermitted) {
132 GetTenantsResponse[] getTenantsResponses = new GetTenantsResponse[] {new GetTenantsResponse(null, serviceTenantName, serviceTenantId, false)};
133 AaiResponse<GetTenantsResponse[]> aaiResponse = new AaiResponse<>(getTenantsResponses, null, 200);
134 Mockito.doReturn(aaiResponse).when(aaiClientInterface).getTenants(serviceGlobalCustomerId, serviceServiceType);
135 Role role = new Role(null, userGlobalCustomerId, userServiceType, userTenantName);
136 RoleValidator roleValidator = new RoleValidator(Collections.singletonList(role));
137 AaiResponse<GetTenantsResponse[]> actualTenants = aaiService.getTenants(serviceGlobalCustomerId, serviceServiceType, roleValidator);
139 assertThat(actualTenants.getT(), arrayWithSize(1));
140 assertThat(actualTenants.getT()[0].tenantName, equalTo(serviceTenantName));
141 assertThat(actualTenants.getT()[0].isPermitted, equalTo(expectedIsPermitted));