2 * Copyright 2016-2017, Nokia Corporation
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct;
18 import org.junit.Before;
19 import org.junit.Test;
20 import org.mockito.Mock;
21 import org.onap.aai.domain.yang.v11.EsrSystemInfo;
22 import org.onap.aai.domain.yang.v11.EsrSystemInfoList;
23 import org.onap.aai.domain.yang.v11.EsrVnfm;
24 import org.onap.aai.domain.yang.v11.ObjectFactory;
25 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.TestBase;
26 import org.onap.vnfmdriver.model.VimInfo;
27 import org.onap.vnfmdriver.model.VnfmInfo;
29 import static junit.framework.TestCase.assertEquals;
30 import static junit.framework.TestCase.fail;
31 import static org.mockito.Mockito.verify;
32 import static org.mockito.Mockito.when;
33 import static org.springframework.test.util.ReflectionTestUtils.setField;
35 public class TestAAIExternalSystemInfoProvider extends TestBase {
36 private ObjectFactory OBJECT_FACTORY = new ObjectFactory();
37 private AAIExternalSystemInfoProvider aaiExternalSystemInfoProvider;
39 private AAIRestApiProvider aaiRestApiProvider;
43 aaiExternalSystemInfoProvider = new AAIExternalSystemInfoProvider(environment, aaiRestApiProvider);
44 setField(AAIExternalSystemInfoProvider.class, "logger", logger);
48 * test query VIM success scenario
51 public void testVim() throws Exception {
52 EsrSystemInfoList vims = OBJECT_FACTORY.createEsrSystemInfoList();
53 EsrSystemInfo vim = OBJECT_FACTORY.createEsrSystemInfo();
54 vims.getEsrSystemInfo().add(vim);
55 vim.setPassword("myPassword");
56 vim.setUserName("myUsername");
57 vim.setServiceUrl("http://1.2.3.4:1234/a");
58 vim.setVersion("v123");
59 vim.setSystemStatus("active");
60 vim.setSystemName("name");
62 vim.setSslInsecure(true);
63 vim.setVendor("vendor");
64 when(aaiRestApiProvider.get(logger, AAIRestApiProvider.AAIService.CLOUD, "/cloud-regions/cloud-region/myCloudOwnerId/myRegionName/esr-system-info-list", EsrSystemInfoList.class)).thenReturn(vims);
66 VimInfo vimInfo = aaiExternalSystemInfoProvider.getVimInfo(VIM_ID);
67 assertEquals("myPassword", vimInfo.getPassword());
68 assertEquals("true", vimInfo.getSslInsecure());
69 assertEquals(null, vimInfo.getSslCacert());
70 assertEquals("myUsername", vimInfo.getUserName());
71 assertEquals("name", vimInfo.getDescription());
72 assertEquals("name", vimInfo.getName());
73 assertEquals("http://1.2.3.4:1234/a", vimInfo.getUrl());
74 assertEquals("active", vimInfo.getStatus());
75 assertEquals("type", vimInfo.getType());
76 assertEquals("v123", vimInfo.getVersion());
77 assertEquals(VIM_ID, vimInfo.getVimId());
78 assertEquals(null, vimInfo.getCreateTime());
83 * test query VIM success scenario for SSL
86 public void testVimSsl() throws Exception {
87 EsrSystemInfoList vims = OBJECT_FACTORY.createEsrSystemInfoList();
88 EsrSystemInfo vim = OBJECT_FACTORY.createEsrSystemInfo();
89 vims.getEsrSystemInfo().add(vim);
90 vim.setPassword("myPassword");
91 vim.setUserName("myUsername");
92 vim.setServiceUrl("https://1.2.3.4:1234/a");
93 vim.setVersion("v123");
94 vim.setSystemStatus("active");
95 vim.setSystemName("name");
97 vim.setSslInsecure(false);
98 vim.setSslCacert("cert");
99 vim.setVendor("vendor");
100 when(aaiRestApiProvider.get(logger, AAIRestApiProvider.AAIService.CLOUD, "/cloud-regions/cloud-region/myCloudOwnerId/myRegionName/esr-system-info-list", EsrSystemInfoList.class)).thenReturn(vims);
102 VimInfo vimInfo = aaiExternalSystemInfoProvider.getVimInfo(VIM_ID);
103 assertEquals("myPassword", vimInfo.getPassword());
104 assertEquals("false", vimInfo.getSslInsecure());
105 assertEquals("cert", vimInfo.getSslCacert());
106 assertEquals("myUsername", vimInfo.getUserName());
107 assertEquals("name", vimInfo.getDescription());
108 assertEquals("name", vimInfo.getName());
109 assertEquals("https://1.2.3.4:1234/a", vimInfo.getUrl());
110 assertEquals("active", vimInfo.getStatus());
111 assertEquals("type", vimInfo.getType());
112 assertEquals("v123", vimInfo.getVersion());
113 assertEquals(VIM_ID, vimInfo.getVimId());
114 assertEquals(null, vimInfo.getCreateTime());
118 * unable to query VIM from AAI results in error
121 public void testVimUnableToQuery() throws Exception {
122 RuntimeException expectedException = new RuntimeException();
123 when(aaiRestApiProvider.get(logger, AAIRestApiProvider.AAIService.CLOUD, "/cloud-regions/cloud-region/myCloudOwnerId/myRegionName/esr-system-info-list", EsrSystemInfoList.class)).thenThrow(expectedException);
126 aaiExternalSystemInfoProvider.getVimInfo(VIM_ID);
128 } catch (Exception e) {
129 verify(logger).error("Unable to query VIM with myCloudOwnerId_myRegionName identifier from AAI", expectedException);
130 assertEquals(expectedException, e.getCause());
135 * test VNFM query success scenario
138 public void testVnfmQuery() throws Exception {
139 EsrVnfm vnfm = OBJECT_FACTORY.createEsrVnfm();
140 vnfm.setVimId(VIM_ID);
141 vnfm.setEsrSystemInfoList(OBJECT_FACTORY.createEsrSystemInfoList());
142 EsrSystemInfo esrInfo = OBJECT_FACTORY.createEsrSystemInfo();
143 vnfm.getEsrSystemInfoList().getEsrSystemInfo().add(esrInfo);
144 esrInfo.setPassword("myPassword");
145 esrInfo.setUserName("myUsername");
146 esrInfo.setServiceUrl("https://1.2.3.4:1234/a");
147 esrInfo.setVersion("v123");
148 esrInfo.setSystemStatus("active");
149 esrInfo.setSystemName("name");
150 esrInfo.setType("type");
151 esrInfo.setSslInsecure(false);
152 esrInfo.setSslCacert("cert");
153 esrInfo.setVendor("vendor");
154 vnfm.setVnfmId(VNFM_ID);
155 when(aaiRestApiProvider.get(logger, AAIRestApiProvider.AAIService.ESR, "/esr-vnfm-list/esr-vnfm/" + VNFM_ID + "?depth=all", EsrVnfm.class)).thenReturn(vnfm);
158 VnfmInfo actualVnfmInfo = aaiExternalSystemInfoProvider.queryVnfmInfoFromSource(VNFM_ID);
160 assertEquals("myPassword", actualVnfmInfo.getPassword());
161 assertEquals("https://1.2.3.4:1234/a", actualVnfmInfo.getUrl());
162 assertEquals("myUsername", actualVnfmInfo.getUserName());
163 assertEquals(null, actualVnfmInfo.getCreateTime());
164 assertEquals(null, actualVnfmInfo.getDescription());
165 assertEquals("name", actualVnfmInfo.getName());
166 assertEquals("type", actualVnfmInfo.getType());
167 assertEquals("vendor", actualVnfmInfo.getVendor());
168 assertEquals("v123", actualVnfmInfo.getVersion());
169 assertEquals(VIM_ID, actualVnfmInfo.getVimId());
170 assertEquals(VNFM_ID, actualVnfmInfo.getVnfmId());
174 * unable to query VNFM from AAI results in error
177 public void testVnfmUnableToQuery() throws Exception {
178 RuntimeException expectedException = new RuntimeException();
179 when(aaiRestApiProvider.get(logger, AAIRestApiProvider.AAIService.ESR, "/esr-vnfm-list/esr-vnfm/" + VNFM_ID + "?depth=all", EsrVnfm.class)).thenThrow(expectedException);
182 aaiExternalSystemInfoProvider.queryVnfmInfoFromSource(VNFM_ID);
184 } catch (Exception e) {
185 verify(logger).error("Unable to query VNFM with " + VNFM_ID + " identifier from AAI", expectedException);
186 assertEquals(expectedException, e.getCause());