2 * Copyright 2016 [ZTE] and others.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
16 package org.openo.commontosca.catalog.wrapper;
\r
18 import java.io.File;
\r
19 import java.io.FileInputStream;
\r
20 import java.io.FileNotFoundException;
\r
21 import java.io.InputStream;
\r
22 import java.net.URISyntaxException;
\r
23 import java.util.ArrayList;
\r
25 import javax.ws.rs.core.Response;
\r
27 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
\r
28 import org.junit.After;
\r
29 import org.junit.AfterClass;
\r
30 import org.junit.Assert;
\r
31 import org.junit.Before;
\r
32 import org.junit.BeforeClass;
\r
33 import org.junit.Ignore;
\r
34 import org.junit.Test;
\r
35 import org.openo.commontosca.catalog.CatalogAppConfiguration;
\r
36 import org.openo.commontosca.catalog.common.Config;
\r
37 import org.openo.commontosca.catalog.common.MsbAddrConfig;
\r
38 import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
\r
39 import org.openo.commontosca.catalog.db.resource.PackageManager;
\r
40 import org.openo.commontosca.catalog.filemanage.entity.FileLink;
\r
41 import org.openo.commontosca.catalog.common.HttpServerAddrConfig;
\r
42 import org.openo.commontosca.catalog.common.HttpServerPathConfig;
\r
43 import org.openo.commontosca.catalog.db.dao.DaoManager;
\r
44 import org.openo.commontosca.catalog.db.entity.PackageData;
\r
45 import org.openo.commontosca.catalog.db.util.H2DbServer;
\r
46 import org.openo.commontosca.catalog.db.util.HibernateSession;
\r
47 import org.openo.commontosca.catalog.entity.EnumOnboardState;
\r
48 import org.openo.commontosca.catalog.entity.EnumOperationalState;
\r
49 import org.openo.commontosca.catalog.entity.EnumProcessState;
\r
50 import org.openo.commontosca.catalog.entity.EnumUsageState;
\r
51 import org.openo.commontosca.catalog.entity.response.CsarFileUriResponse;
\r
52 import org.openo.commontosca.catalog.entity.response.PackageMeta;
\r
54 import static org.junit.Assert.*;
\r
60 public class PackageWrapperTest {
\r
61 private static String resourcePath;
\r
64 MsbAddrConfig.setMsbAddress("http://127.0.0.1:80");
\r
67 HttpServerAddrConfig.setHttpServerAddress("http://127.0.0.1:8080");
\r
70 HttpServerPathConfig.setHttpServerPath("../tomcat/webapps/ROOT/");
\r
74 private static PackageManager manager;
\r
78 public static void setUpBeforeClass() throws CatalogResourceException {
\r
79 CatalogAppConfiguration configuration = new CatalogAppConfiguration();
\r
80 H2DbServer.startUp();
\r
81 DaoManager.getInstance().setSessionFactory(HibernateSession.init());
\r
82 manager = PackageManager.getInstance();
\r
83 Config.setConfigration(configuration);
\r
84 System.out.println("Set up before class");
\r
88 public void setUp() throws Exception {
\r
89 ArrayList<PackageData> packageList = manager.queryPackage(null, null, null, null, null);
\r
90 if (packageList != null && packageList.size() > 0) {
\r
91 for (int i = 0; i < packageList.size(); i++) {
\r
92 String package_oid = packageList.get(i).getCsarId();
\r
93 manager.deletePackage(package_oid);
\r
97 // PowerMockito.mockStatic(PackageManager.class);
\r
98 // PowerMockito.when(manager.addPackage(packageData)).thenReturn(packageData);
\r
99 // PowerMock.replayAll();
\r
100 PackageData packageData = new PackageData();
\r
101 packageData = getPackageData();
\r
102 manager.addPackage(packageData);
\r
107 public void testUploadPackage() throws Exception {
\r
108 InputStream ins = null;
\r
109 Response result = null;
\r
110 Response result1 = null;
\r
111 Response result2 = null;
\r
112 // PackageData packageData = new PackageData();
\r
113 // packageData = getPackageData();
\r
115 FormDataContentDisposition fileDetail =
\r
116 FormDataContentDisposition.name("fileName").fileName("NanocellGW.csar").build();
\r
119 resourcePath = HibernateSession.class.getResource("/").toURI().getPath();
\r
120 } catch (URISyntaxException e) {
\r
121 e.printStackTrace();
\r
123 final String filename = "NanocellGW.csar";
\r
124 File packageFile = new File(resourcePath + filename);
\r
126 ins = new FileInputStream(packageFile);
\r
127 } catch (FileNotFoundException e) {
\r
128 e.printStackTrace();
\r
132 result = PackageWrapper.getInstance().uploadPackage(ins, fileDetail, null);
\r
133 } catch (Exception e) {
\r
134 e.printStackTrace();
\r
137 assertEquals(200, result.getStatus());
\r
138 assertNotNull(result.getEntity());
\r
141 result1 = PackageWrapper.getInstance().uploadPackage(null, fileDetail, null);
\r
142 } catch (Exception e) {
\r
143 e.printStackTrace();
\r
145 assertEquals(500, result1.getStatus());
\r
148 result2 = PackageWrapper.getInstance().uploadPackage(ins, null, null);
\r
149 } catch (Exception e) {
\r
150 e.printStackTrace();
\r
152 assertEquals(500, result2.getStatus());
\r
156 public void testQueryPackageById() throws Exception {
\r
157 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
158 metas = getPackageMetaList();
\r
159 // PackageManager packageManager = mock(PackageManager.class);
\r
160 // when(packageManager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
161 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(packageManager);
\r
162 // PowerMockito.mockStatic(PackageManager.class);
\r
163 // PowerMockito.when(PackageManager.getInstance()).thenReturn(manager);
\r
164 // PowerMock.replayAll();
\r
165 // when(manager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
166 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(manager);
\r
168 Response result = PackageWrapper.getInstance().queryPackageById("1");
\r
169 assertEquals(200, result.getStatus());
\r
170 assertEquals(metas, result.getEntity());
\r
175 public void testQueryPackageByCond() {
\r
176 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
177 metas = getPackageMetaList();
\r
178 System.out.println("Test query package by Id");
\r
180 PackageWrapper.getInstance().queryPackageListByCond("NanocellGW", "ZTE", "V1.0",
\r
182 assertEquals(200, result.getStatus());
\r
183 assertEquals(metas, result.getEntity());
\r
187 public void testUpdatePackageStatus() {
\r
188 System.out.println("Test update package status");
\r
190 PackageWrapper.getInstance().updatePackageStatus("1", "Enabled", "NotInUse",
\r
191 "true", "onBoarding", "true");
\r
192 assertEquals(200, result.getStatus());
\r
196 public void testGetCsarFileUri() {
\r
197 System.out.println("Test get csar file uri ");
\r
198 CsarFileUriResponse expectResult = new CsarFileUriResponse();
\r
199 String csarFileUri =
\r
200 MsbAddrConfig.getMsbAddress()
\r
201 + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
203 HttpServerPathConfig.getHttpServerPath()
\r
204 + "NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
205 File srcDir = new File(localUri);
\r
206 String localPath = srcDir.getAbsolutePath().replace("\\", "/");
\r
208 expectResult.setDownloadUri(csarFileUri);
\r
209 expectResult.setLocalPath(localPath);
\r
210 Response result = PackageWrapper.getInstance().getCsarFileUri("1", "/images/segw.img");
\r
211 assertEquals(200, result.getStatus());
\r
212 assertEquals(expectResult, result.getEntity());
\r
217 public void testGetPlansUri() {
\r
218 System.out.println("Test get csar plans uri ");
\r
219 ArrayList<FileLink> expectResult = new ArrayList<FileLink>();
\r
220 FileLink fileLink1 = new FileLink();
\r
221 FileLink fileLink2 = new FileLink();
\r
222 fileLink1.setFileName("init.zip");
\r
223 fileLink1.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
224 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/init.zip");
\r
225 expectResult.add(fileLink1);
\r
226 fileLink2.setFileName("delete.zip");
\r
227 fileLink2.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
228 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/delete.zip");
\r
229 expectResult.add(fileLink2);
\r
230 Response result = PackageWrapper.getInstance().getCsarPlansUri("1");
\r
231 assertEquals(200, result.getStatus());
\r
232 assertEquals(expectResult, result.getEntity());
\r
236 public void testDelPackage() {
\r
237 System.out.println("Test delete package ");
\r
238 Response result = PackageWrapper.getInstance().delPackage("1");
\r
239 assertEquals(204, result.getStatus());
\r
241 Thread.sleep(5000);
\r
242 } catch (InterruptedException e) {
\r
243 e.printStackTrace();
\r
248 public void tearDown() throws Exception {
\r
249 ArrayList<PackageData> packageList = manager.queryPackageByCsarId("1");
\r
250 if (packageList != null && packageList.size() != 0) {
\r
251 manager.deletePackage("1");
\r
255 System.out.println("Tear down");
\r
259 public static void tearDownAfterClass() {
\r
261 HibernateSession.destory();
\r
262 DaoManager.getInstance().setDaoNull();
\r
263 H2DbServer.shutDown();
\r
264 } catch (Exception e) {
\r
265 Assert.fail("Exception" + e.getMessage());
\r
269 private PackageData getPackageData() {
\r
270 PackageData packageData = new PackageData();
\r
271 packageData.setCsarId("1");
\r
272 packageData.setCreateTime("2016-06-29 03:33:15");
\r
273 packageData.setDeletionPending("false");
\r
274 packageData.setDownloadUri("/NSAR/ZTE/NanocellGW/v1.0/");
\r
275 packageData.setFormat("yml");
\r
276 packageData.setModifyTime("2016-06-29 03:33:15");
\r
277 packageData.setName("NanocellGW");
\r
278 packageData.setOnBoardState("non-onBoarded");
\r
279 packageData.setOperationalState("Disabled");
\r
280 packageData.setProvider("ZTE");
\r
281 packageData.setSize("0.93M");
\r
282 packageData.setType("NSAR");
\r
283 packageData.setUsageState("InUse");
\r
284 packageData.setVersion("V1.0");
\r
285 packageData.setProcessState("normal");
\r
286 return packageData;
\r
289 private ArrayList<PackageData> getPackageDataList() {
\r
290 ArrayList<PackageData> packageDataList = new ArrayList<PackageData>();
\r
291 PackageData packageData = new PackageData();
\r
292 packageData = getPackageData();
\r
293 packageDataList.add(packageData);
\r
294 return packageDataList;
\r
297 private ArrayList<PackageMeta> getPackageMetaList() {
\r
298 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
299 PackageMeta meta = new PackageMeta();
\r
300 meta.setCreateTime("2016-06-29 03:33:15");
\r
301 meta.setCsarId("1");
\r
302 meta.setDeletionPending(false);
\r
303 meta.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
304 + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW.csar");
\r
305 meta.setFormat("yml");
\r
306 meta.setModifyTime("2016-06-29 03:33:15");
\r
307 meta.setName("NanocellGW");
\r
308 meta.setOperationalState(EnumOperationalState.valueOf("Disabled"));
\r
309 meta.setProvider("ZTE");
\r
310 meta.setSize("0.93M");
\r
311 meta.setType("NSAR");
\r
312 meta.setUsageState(EnumUsageState.valueOf("InUse"));
\r
313 meta.setVersion("V1.0");
\r
314 meta.setOnBoardState(EnumOnboardState.nonOnBoarded.getValue());
\r
315 meta.setProcessState(EnumProcessState.valueOf("normal"));
\r