Adding naming micro-service code - more tests.
[ccsdk/apps.git] / ms / neng / src / test / java / org / onap / ccsdk / apps / ms / neng / core / service / SpringServiceTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : CCSDK.apps
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.ccsdk.apps.ms.neng.core.service;
22
23 import java.util.ArrayList;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.Map;
27 import org.junit.Assert;
28 import org.junit.Test;
29 import org.junit.runner.RunWith;
30 import org.mockito.InjectMocks;
31 import org.mockito.Mock;
32 import org.mockito.Mockito;
33 import org.mockito.runners.MockitoJUnitRunner;
34 import org.onap.ccsdk.apps.ms.neng.core.resource.model.NameGenRequest;
35 import org.onap.ccsdk.apps.ms.neng.core.validator.ExternalKeyValidator;
36 import org.onap.ccsdk.apps.ms.neng.persistence.entity.GeneratedName;
37 import org.onap.ccsdk.apps.ms.neng.persistence.entity.PolicyDetails;
38 import org.onap.ccsdk.apps.ms.neng.persistence.entity.ServiceParameter;
39 import org.onap.ccsdk.apps.ms.neng.persistence.repository.GeneratedNameRespository;
40 import org.onap.ccsdk.apps.ms.neng.persistence.repository.PolicyDetailsRepository;
41 import org.onap.ccsdk.apps.ms.neng.persistence.repository.ServiceParameterRepository;
42
43 @RunWith(MockitoJUnitRunner.class)
44 public class SpringServiceTest {
45
46     @Mock
47     ExternalKeyValidator externalKeyValidator;
48     @Mock
49     ServiceParameter param;
50     @Mock
51     ServiceParameterRepository serviceParamRepo;
52     @Mock
53     PolicyDetails policyDetails;
54     @Mock
55     PolicyDetailsRepository policyDetailsRepository;
56     @Mock
57     GeneratedNameRespository generatedNameRepository;
58
59     @InjectMocks
60     SpringServiceImpl springserviceImpl;
61
62     Map<String, String> req = new HashMap<>();
63     List<Map<String, String>> rsp = new ArrayList<>();
64     NameGenRequest request = new NameGenRequest();
65
66     {
67         req.put("external-key", "Xyx-zzk");
68         req.put("policy-instance-name", "testDbPolicy66");
69         req.put("COMPLEX", "TRLAKDG");
70         req.put("NFC-NAMING-CODE", "ESP");
71         req.put("CLOUD_REGION_ID", "SSR");
72         req.put("NF_CODE", "X1234");
73         req.put("resource-name", "vm-name");
74         req.put("naming-type", "VM");
75         req.put("nf-role", "vPE");
76         rsp.add(req);
77         request.setElements(rsp);
78     }
79
80     @Test(expected = Exception.class)
81     public void genNetworkElementNameTest() throws Exception {
82         Mockito.when(externalKeyValidator.isPresent(req.get("external-key"))).thenReturn(false);
83         Mockito.when(serviceParamRepo.findByName("use_db_policy")).thenReturn(param);
84         springserviceImpl.genNetworkElementName(request);
85
86     }
87
88     @Test
89     public void getPolicyDetailsTest() {
90         Mockito.when(policyDetailsRepository.findPolicyResponseByName("testDbPolicy66")).thenReturn(policyDetails);
91         org.junit.Assert.assertNotNull(springserviceImpl.getPolicyDetails("testDbPolicy66"));
92     }
93
94     @Test
95     public void addPolicy() throws Exception {
96         springserviceImpl.addPolicy(req);
97     }
98
99     @Test
100     public void releaseNetworkElementNameTest() throws Exception {
101         GeneratedName gn = new GeneratedName();
102         List<GeneratedName> generatedNameList = new ArrayList<>();
103         generatedNameList.add(gn);
104
105         Mockito.when(generatedNameRepository.findByExternalId(req.get("external-key"))).thenReturn(generatedNameList);
106         Assert.assertNotNull(springserviceImpl.releaseNetworkElementName(request));
107     }
108 }