2ad68dd93c280b4c5eb05530b6c3ced643bc015a
[vid.git] / vid-app-common / src / test / java / org / onap / vid / services / RoleGenaratorServiceImplTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 package org.onap.vid.services;
22
23 import static org.mockito.Mockito.doReturn;
24 import static org.mockito.Mockito.doThrow;
25 import static org.mockito.MockitoAnnotations.initMocks;
26
27 import java.util.ArrayList;
28 import org.apache.commons.lang.StringUtils;
29 import org.mockito.InjectMocks;
30 import org.mockito.Mock;
31 import org.mockito.Mockito;
32 import org.onap.vid.aai.AaiClientInterface;
33 import org.onap.vid.aai.AaiResponse;
34 import org.onap.vid.aai.ServiceSubscription;
35 import org.onap.vid.aai.ServiceSubscriptions;
36 import org.onap.vid.aai.Services;
37 import org.onap.vid.model.Subscriber;
38 import org.onap.vid.model.SubscriberList;
39 import org.testng.Assert;
40 import org.testng.annotations.BeforeClass;
41 import org.testng.annotations.BeforeMethod;
42 import org.testng.annotations.Test;
43
44 public class RoleGenaratorServiceImplTest {
45
46     private static final String GLOBAL_CUSTOMER_ID = "997";
47     private static final String SUBSCRIBER_NAME = "name";
48     private static final String SUBSCRIBER_TYPE = "subscriber_type";
49     private static final String RESOURCE_VERSION = "1";
50     private static final String SERVICE_TYPE = "service_type";
51
52     @Mock
53     private AaiClientInterface aaiClientInterface;
54
55     @InjectMocks
56     private RoleGenaratorServiceImpl testSubject;
57
58     @BeforeClass
59     public void beforeClass() {
60         initMocks(this);
61     }
62
63     @BeforeMethod
64     public void resetMocks() {
65         Mockito.reset(aaiClientInterface);
66     }
67
68     @Test
69     public void tenerateRoleScript_firstRun() {
70         boolean firstRun = true;
71
72         Subscriber subscriber = createSubscriber();
73         AaiResponse<SubscriberList> subscribers = createSubscriberListAaiResponse(subscriber);
74         doReturn(subscribers).when(aaiClientInterface).getAllSubscribers();
75
76         ServiceSubscription serviceSubscription = createServiceSubscription();
77         AaiResponse<Services> subscriberResponse = createServicesAaiResponse(serviceSubscription);
78         doReturn(subscriberResponse).when(aaiClientInterface).getSubscriberData(subscriber.globalCustomerId);
79
80         String result = testSubject.generateRoleScript(firstRun);
81         Assert.assertTrue(StringUtils.isNotBlank(result));
82     }
83
84     @Test
85     public void tenerateRoleScript_notAFirstRun() {
86         boolean firstRun = false;
87
88         Subscriber subscriber = createSubscriber();
89         AaiResponse<SubscriberList> subscribers = createSubscriberListAaiResponse(subscriber);
90         doReturn(subscribers).when(aaiClientInterface).getAllSubscribers();
91
92         ServiceSubscription serviceSubscription = createServiceSubscription();
93         AaiResponse<Services> subscriberResponse = createServicesAaiResponse(serviceSubscription);
94         doReturn(subscriberResponse).when(aaiClientInterface).getSubscriberData(subscriber.globalCustomerId);
95
96         String result = testSubject.generateRoleScript(firstRun);
97         Assert.assertTrue(StringUtils.isNotBlank(result));
98     }
99
100     @Test(expectedExceptions = { Exception.class })
101     public void tenerateRoleScript_errorGettingDataFromAAIClient() {
102         boolean firstRun = false;
103
104         doThrow(new Exception("This is expected.")).when(aaiClientInterface).getAllSubscribers();
105
106         String result = testSubject.generateRoleScript(firstRun);
107         Assert.fail();
108     }
109
110     private ServiceSubscription createServiceSubscription() {
111         ServiceSubscription serviceSubscription = new ServiceSubscription();
112         serviceSubscription.serviceType = SERVICE_TYPE;
113         return serviceSubscription;
114     }
115
116     private AaiResponse<SubscriberList> createSubscriberListAaiResponse(Subscriber subscriber) {
117         AaiResponse<SubscriberList> subscribers = new AaiResponse<>(new SubscriberList(new ArrayList<>()), "", 200);
118         subscribers.getT().customer.add(subscriber);
119         return subscribers;
120     }
121
122     private AaiResponse<Services> createServicesAaiResponse(ServiceSubscription serviceSubscription) {
123         AaiResponse<Services> subscriberResponse = new AaiResponse<>(new Services(), "", 200);
124         subscriberResponse.getT().serviceSubscriptions = new ServiceSubscriptions();
125         subscriberResponse.getT().serviceSubscriptions.serviceSubscription = new ArrayList<>();
126         subscriberResponse.getT().serviceSubscriptions.serviceSubscription.add(serviceSubscription);
127         return subscriberResponse;
128     }
129
130     private Subscriber createSubscriber() {
131         Subscriber subscriber = new Subscriber();
132         subscriber.globalCustomerId = GLOBAL_CUSTOMER_ID;
133         subscriber.subscriberName = SUBSCRIBER_NAME;
134         subscriber.subscriberType = SUBSCRIBER_TYPE;
135         subscriber.resourceVersion = RESOURCE_VERSION;
136         return subscriber;
137     }
138
139
140 }