c1da617e08b67204f8990b4c3ed60c15e8452c0e
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / driver / src / test / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nokia / onap / direct / TestAAIExternalSystemInfoProvider.java
1 /*
2  * Copyright 2016-2017, Nokia Corporation
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct;
17
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;
28
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;
34
35 public class TestAAIExternalSystemInfoProvider extends TestBase {
36     private ObjectFactory OBJECT_FACTORY = new ObjectFactory();
37     private AAIExternalSystemInfoProvider aaiExternalSystemInfoProvider;
38     @Mock
39     private AAIRestApiProvider aaiRestApiProvider;
40
41     @Before
42     public void init() {
43         aaiExternalSystemInfoProvider = new AAIExternalSystemInfoProvider(environment, aaiRestApiProvider);
44         setField(AAIExternalSystemInfoProvider.class, "logger", logger);
45     }
46
47     /**
48      * test query VIM success scenario
49      */
50     @Test
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");
61         vim.setType("type");
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);
65         //when
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());
79
80     }
81
82     /**
83      * test query VIM success scenario for SSL
84      */
85     @Test
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");
96         vim.setType("type");
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);
101         //when
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());
115     }
116
117     /**
118      * unable to query VIM from AAI results in error
119      */
120     @Test
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);
124         //when
125         try {
126             aaiExternalSystemInfoProvider.getVimInfo(VIM_ID);
127             fail();
128         } catch (Exception e) {
129             verify(logger).error("Unable to query VIM with myCloudOwnerId_myRegionName identifier from AAI", expectedException);
130             assertEquals(expectedException, e.getCause());
131         }
132     }
133
134     /**
135      * test VNFM query success scenario
136      */
137     @Test
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);
156
157         //when
158         VnfmInfo actualVnfmInfo = aaiExternalSystemInfoProvider.queryVnfmInfoFromSource(VNFM_ID);
159         //verify
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());
171     }
172
173     /**
174      * unable to query VNFM from AAI results in error
175      */
176     @Test
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);
180         //when
181         try {
182             aaiExternalSystemInfoProvider.queryVnfmInfoFromSource(VNFM_ID);
183             fail();
184         } catch (Exception e) {
185             verify(logger).error("Unable to query VNFM with " + VNFM_ID + " identifier from AAI", expectedException);
186             assertEquals(expectedException, e.getCause());
187         }
188     }
189 }