2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (C) 2018 IBM.
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.ccsdk.apps.ms.neng.core.service;
25 import java.util.ArrayList;
26 import java.util.HashMap;
27 import java.util.List;
29 import org.junit.Assert;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.mockito.InjectMocks;
33 import org.mockito.ArgumentMatchers;
34 import org.mockito.Mock;
35 import org.mockito.Mockito;
36 import org.mockito.junit.MockitoJUnitRunner;
37 import org.onap.ccsdk.apps.ms.neng.core.exceptions.NengException;
38 import org.onap.ccsdk.apps.ms.neng.core.persistence.NamePersister;
39 import org.onap.ccsdk.apps.ms.neng.core.resource.model.HelloWorld;
40 import org.onap.ccsdk.apps.ms.neng.core.resource.model.NameGenRequest;
41 import org.onap.ccsdk.apps.ms.neng.core.validator.AaiNameValidator;
42 import org.onap.ccsdk.apps.ms.neng.core.validator.ExternalKeyValidator;
43 import org.onap.ccsdk.apps.ms.neng.persistence.entity.GeneratedName;
44 import org.onap.ccsdk.apps.ms.neng.persistence.entity.PolicyDetails;
45 import org.onap.ccsdk.apps.ms.neng.persistence.entity.ServiceParameter;
46 import org.onap.ccsdk.apps.ms.neng.persistence.repository.GeneratedNameRespository;
47 import org.onap.ccsdk.apps.ms.neng.persistence.repository.PolicyDetailsRepository;
48 import org.onap.ccsdk.apps.ms.neng.persistence.repository.ServiceParameterRepository;
50 @RunWith(MockitoJUnitRunner.class)
51 public class SpringServiceTest {
54 ExternalKeyValidator externalKeyValidator;
56 ServiceParameter param;
58 ServiceParameterRepository serviceParamRepo;
60 PolicyDetails policyDetails;
62 PolicyDetailsRepository policyDetailsRepository;
64 GeneratedNameRespository generatedNameRepository;
66 AaiNameValidator aaiNameValidator;
68 NamePersister namePersister;
71 SpringServiceImpl springserviceImpl;
73 Map<String, String> req = new HashMap<>();
74 List<Map<String, String>> rsp = new ArrayList<>();
75 NameGenRequest request = new NameGenRequest();
78 req.put("external-key", "Xyx-zzk");
79 req.put("policy-instance-name", "testDbPolicy66");
80 req.put("COMPLEX", "TRLAKDG");
81 req.put("NFC-NAMING-CODE", "ESP");
82 req.put("CLOUD_REGION_ID", "SSR");
83 req.put("NF_CODE", "X1234");
84 req.put("resource-name", "vm-name");
85 req.put("naming-type", "VM");
86 req.put("nf-role", "vPE");
88 request.setElements(rsp);
91 @Test(expected = Exception.class)
92 public void genNetworkElementNameTest() throws Exception {
93 Mockito.lenient().when(externalKeyValidator.isPresent(req.get("external-key"))).thenReturn(false);
94 Mockito.lenient().when(serviceParamRepo.findByName("use_db_policy")).thenReturn(param);
95 springserviceImpl.genNetworkElementName(request);
99 public void genNetworkElementNameTest_empty_elements() throws Exception {
100 NameGenRequest request = new NameGenRequest();
101 request.setElements(new ArrayList<>());
102 springserviceImpl.genNetworkElementName(request);
107 public void genNetworkElementNameTest_extkey_error_3() throws Exception {
108 NameGenRequest request = new NameGenRequest();
109 List<Map<String, String>> rsp = new ArrayList<>();
110 request.setElements(rsp);
111 springserviceImpl.genNetworkElementName(request);
114 @Test(expected = Exception.class)
115 public void genNetworkElementNameTest_useDb() throws Exception {
116 Mockito.lenient().when(externalKeyValidator.isPresent(req.get("external-key"))).thenReturn(false);
117 Mockito.lenient().when(serviceParamRepo.findByName("use_db_policy")).thenReturn(param);
118 request.setUseDb(true);
119 springserviceImpl.genNetworkElementName(request);
123 public void getPolicyDetailsTest() {
124 Mockito.lenient().when(policyDetailsRepository.findPolicyResponseByName("testDbPolicy66")).thenReturn(policyDetails);
125 org.junit.Assert.assertNotNull(springserviceImpl.getPolicyDetails("testDbPolicy66"));
129 public void addPolicy() throws Exception {
130 springserviceImpl.addPolicy(req);
134 public void releaseNetworkElementNameTest() throws Exception {
135 GeneratedName gn = new GeneratedName();
136 List<GeneratedName> generatedNameList = new ArrayList<>();
137 generatedNameList.add(gn);
139 Mockito.lenient().when(generatedNameRepository.findByExternalId(req.get("external-key"))).thenReturn(generatedNameList);
140 Assert.assertNotNull(springserviceImpl.releaseNetworkElementName(request));
143 @Test(expected = Exception.class)
144 public void releaseNetworkElementNameTestForNull() throws Exception {
145 springserviceImpl.releaseNetworkElementName(null);
148 @Test(expected = Exception.class)
149 public void releaseNetworkElementNameTest_exp() throws Exception {
150 GeneratedName gn = new GeneratedName();
151 List<GeneratedName> generatedNameList = new ArrayList<>();
152 generatedNameList.add(gn);
154 Mockito.lenient().when(generatedNameRepository.findByExternalId(req.get("external-key"))).thenThrow(new Exception());
155 springserviceImpl.releaseNetworkElementName(request);
158 @Test(expected = Exception.class)
159 public void releaseNetworkElementNameTest_exp_neng() throws Exception {
160 GeneratedName gn = new GeneratedName();
161 List<GeneratedName> generatedNameList = new ArrayList<>();
162 generatedNameList.add(gn);
164 Mockito.lenient().when(generatedNameRepository.findByExternalId(req.get("external-key"))).thenThrow(
165 new NengException("Failed"));
166 springserviceImpl.releaseNetworkElementName(request);
170 public void testGetQuickHello() {
171 Assert.assertTrue(springserviceImpl.getQuickHello("testMessage") instanceof HelloWorld);
175 public void testGetQuickHelloForNullMessage() {
176 Assert.assertTrue(springserviceImpl.getQuickHello("") instanceof HelloWorld);
180 public void updateNetworkElementName() throws Exception {
182 req.put("external-key", "TST-UV1");
183 req.put("resource-name", "vnf-name");
184 req.put("resource-value", "dst1000tv1");
185 req.put("naming-type", "vnf");
187 GeneratedName gn = new GeneratedName();
188 gn.setExternalId("TST-UV1");
189 gn.setElementType("VNF");
190 gn.setName("dst1000tv1");
192 List<GeneratedName> generatedNameList = new ArrayList<>();
193 generatedNameList.add(gn);
194 Mockito.lenient().when(namePersister.findByExternalIdAndElementType(req.get("external-key"), "VNF")).thenReturn(gn);
195 Mockito.lenient().when(aaiNameValidator.validate(ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(true);
196 Assert.assertNotNull(springserviceImpl.updateNetworkElementName(request));
197 Mockito.verify(namePersister, Mockito.times(1)).persist(gn);
201 @Test(expected = NengException.class)
202 public void updateNetworkElementName_Aai_Fail() throws Exception {
204 req.put("external-key", "TST-UV1");
205 req.put("resource-name", "vnf-name");
206 req.put("resource-value", "dst1000tv1");
207 req.put("naming-type", "vnf");
209 GeneratedName gn = new GeneratedName();
210 gn.setExternalId("TST-UV1");
211 gn.setElementType("VNF");
212 gn.setName("dst1000tv1");
214 Mockito.lenient().when(namePersister.findByExternalIdAndElementType(req.get("external-key"), "VNF")).thenReturn(null);
215 Mockito.lenient().when(aaiNameValidator.validate(Matchers.anyString(), Matchers.anyString())).thenReturn(false);
216 springserviceImpl.updateNetworkElementName(request);