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.EnumOperationalState;
\r
48 import org.openo.commontosca.catalog.entity.EnumProcessState;
\r
49 import org.openo.commontosca.catalog.entity.EnumUsageState;
\r
50 import org.openo.commontosca.catalog.entity.response.CsarFileUriResponse;
\r
51 import org.openo.commontosca.catalog.entity.response.PackageMeta;
\r
53 import static org.junit.Assert.*;
\r
59 public class PackageWrapperTest {
\r
60 private static String resourcePath;
\r
63 MsbAddrConfig.setMsbAddress("http://127.0.0.1:80");
\r
66 HttpServerAddrConfig.setHttpServerAddress("http://127.0.0.1:8080");
\r
69 HttpServerPathConfig.setHttpServerPath("../tomcat/webapps/ROOT/");
\r
73 private static PackageManager manager;
\r
77 public static void setUpBeforeClass() throws CatalogResourceException {
\r
78 CatalogAppConfiguration configuration = new CatalogAppConfiguration();
\r
79 H2DbServer.startUp();
\r
80 DaoManager.getInstance().setSessionFactory(HibernateSession.init());
\r
81 manager = PackageManager.getInstance();
\r
82 Config.setConfigration(configuration);
\r
83 System.out.println("Set up before class");
\r
87 public void setUp() throws Exception {
\r
88 ArrayList<PackageData> packageList = manager.queryPackage(null, null, null, null, null);
\r
89 if (packageList != null && packageList.size() > 0) {
\r
90 for (int i = 0; i < packageList.size(); i++) {
\r
91 String package_oid = packageList.get(i).getCsarId();
\r
92 manager.deletePackage(package_oid);
\r
96 // PowerMockito.mockStatic(PackageManager.class);
\r
97 // PowerMockito.when(manager.addPackage(packageData)).thenReturn(packageData);
\r
98 // PowerMock.replayAll();
\r
99 PackageData packageData = new PackageData();
\r
100 packageData = getPackageData();
\r
101 manager.addPackage(packageData);
\r
106 public void testUploadPackage() throws Exception {
\r
107 InputStream ins = null;
\r
108 Response result = null;
\r
109 Response result1 = null;
\r
110 Response result2 = null;
\r
111 // PackageData packageData = new PackageData();
\r
112 // packageData = getPackageData();
\r
114 FormDataContentDisposition fileDetail =
\r
115 FormDataContentDisposition.name("fileName").fileName("NanocellGW.csar").build();
\r
118 resourcePath = HibernateSession.class.getResource("/").toURI().getPath();
\r
119 } catch (URISyntaxException e) {
\r
120 e.printStackTrace();
\r
122 final String filename = "NanocellGW.csar";
\r
123 File packageFile = new File(resourcePath + filename);
\r
125 ins = new FileInputStream(packageFile);
\r
126 } catch (FileNotFoundException e) {
\r
127 e.printStackTrace();
\r
131 result = PackageWrapper.getInstance().uploadPackage(ins, fileDetail, null);
\r
132 } catch (Exception e) {
\r
133 e.printStackTrace();
\r
136 assertEquals(200, result.getStatus());
\r
137 assertNotNull(result.getEntity());
\r
140 result1 = PackageWrapper.getInstance().uploadPackage(null, fileDetail, null);
\r
141 } catch (Exception e) {
\r
142 e.printStackTrace();
\r
144 assertEquals(500, result1.getStatus());
\r
147 result2 = PackageWrapper.getInstance().uploadPackage(ins, null, null);
\r
148 } catch (Exception e) {
\r
149 e.printStackTrace();
\r
151 assertEquals(500, result2.getStatus());
\r
155 public void testQueryPackageById() throws Exception {
\r
156 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
157 metas = getPackageMetaList();
\r
158 // PackageManager packageManager = mock(PackageManager.class);
\r
159 // when(packageManager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
160 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(packageManager);
\r
161 // PowerMockito.mockStatic(PackageManager.class);
\r
162 // PowerMockito.when(PackageManager.getInstance()).thenReturn(manager);
\r
163 // PowerMock.replayAll();
\r
164 // when(manager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
165 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(manager);
\r
167 Response result = PackageWrapper.getInstance().queryPackageById("1");
\r
168 assertEquals(200, result.getStatus());
\r
169 assertEquals(metas, result.getEntity());
\r
174 public void testQueryPackageByCond() {
\r
175 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
176 metas = getPackageMetaList();
\r
177 System.out.println("Test query package by Id");
\r
179 PackageWrapper.getInstance().queryPackageListByCond("NanocellGW", "ZTE", "V1.0",
\r
181 assertEquals(200, result.getStatus());
\r
182 assertEquals(metas, result.getEntity());
\r
186 public void testUpdatePackageStatus() {
\r
187 System.out.println("Test update package status");
\r
189 PackageWrapper.getInstance().updatePackageStatus("1", "Enabled", "NotInUse",
\r
190 "true", "onBoarding", "true");
\r
191 assertEquals(200, result.getStatus());
\r
195 public void testGetCsarFileUri() {
\r
196 System.out.println("Test get csar file uri ");
\r
197 CsarFileUriResponse expectResult = new CsarFileUriResponse();
\r
198 String csarFileUri =
\r
199 MsbAddrConfig.getMsbAddress()
\r
200 + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
202 HttpServerPathConfig.getHttpServerPath()
\r
203 + "NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
204 File srcDir = new File(localUri);
\r
205 String localPath = srcDir.getAbsolutePath().replace("\\", "/");
\r
207 expectResult.setDownloadUri(csarFileUri);
\r
208 expectResult.setLocalPath(localPath);
\r
209 Response result = PackageWrapper.getInstance().getCsarFileUri("1", "/images/segw.img");
\r
210 assertEquals(200, result.getStatus());
\r
211 assertEquals(expectResult, result.getEntity());
\r
216 public void testGetPlansUri() {
\r
217 System.out.println("Test get csar plans uri ");
\r
218 ArrayList<FileLink> expectResult = new ArrayList<FileLink>();
\r
219 FileLink fileLink1 = new FileLink();
\r
220 FileLink fileLink2 = new FileLink();
\r
221 fileLink1.setFileName("init.zip");
\r
222 fileLink1.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
223 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/init.zip");
\r
224 expectResult.add(fileLink1);
\r
225 fileLink2.setFileName("delete.zip");
\r
226 fileLink2.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
227 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/delete.zip");
\r
228 expectResult.add(fileLink2);
\r
229 Response result = PackageWrapper.getInstance().getCsarPlansUri("1");
\r
230 assertEquals(200, result.getStatus());
\r
231 assertEquals(expectResult, result.getEntity());
\r
235 public void testDelPackage() {
\r
236 System.out.println("Test delete package ");
\r
237 Response result = PackageWrapper.getInstance().delPackage("1");
\r
238 assertEquals(204, result.getStatus());
\r
240 Thread.sleep(5000);
\r
241 } catch (InterruptedException e) {
\r
242 e.printStackTrace();
\r
247 public void tearDown() throws Exception {
\r
248 ArrayList<PackageData> packageList = manager.queryPackageByCsarId("1");
\r
249 if (packageList != null && packageList.size() != 0) {
\r
250 manager.deletePackage("1");
\r
254 System.out.println("Tear down");
\r
258 public static void tearDownAfterClass() {
\r
260 HibernateSession.destory();
\r
261 DaoManager.getInstance().setDaoNull();
\r
262 H2DbServer.shutDown();
\r
263 } catch (Exception e) {
\r
264 Assert.fail("Exception" + e.getMessage());
\r
268 private PackageData getPackageData() {
\r
269 PackageData packageData = new PackageData();
\r
270 packageData.setCsarId("1");
\r
271 packageData.setCreateTime("2016-06-29 03:33:15");
\r
272 packageData.setDeletionPending("false");
\r
273 packageData.setDownloadUri("/NSAR/ZTE/NanocellGW/v1.0/");
\r
274 packageData.setFormat("yml");
\r
275 packageData.setModifyTime("2016-06-29 03:33:15");
\r
276 packageData.setName("NanocellGW");
\r
277 packageData.setOnBoardState("false");
\r
278 packageData.setOperationalState("Disabled");
\r
279 packageData.setProvider("ZTE");
\r
280 packageData.setSize("0.93M");
\r
281 packageData.setType("NSAR");
\r
282 packageData.setUsageState("InUse");
\r
283 packageData.setVersion("V1.0");
\r
284 packageData.setProcessState("normal");
\r
285 return packageData;
\r
288 private ArrayList<PackageData> getPackageDataList() {
\r
289 ArrayList<PackageData> packageDataList = new ArrayList<PackageData>();
\r
290 PackageData packageData = new PackageData();
\r
291 packageData = getPackageData();
\r
292 packageDataList.add(packageData);
\r
293 return packageDataList;
\r
296 private ArrayList<PackageMeta> getPackageMetaList() {
\r
297 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
298 PackageMeta meta = new PackageMeta();
\r
299 meta.setCreateTime("2016-06-29 03:33:15");
\r
300 meta.setCsarId("1");
\r
301 meta.setDeletionPending(false);
\r
302 meta.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
303 + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW.csar");
\r
304 meta.setFormat("yml");
\r
305 meta.setModifyTime("2016-06-29 03:33:15");
\r
306 meta.setName("NanocellGW");
\r
307 meta.setOperationalState(EnumOperationalState.valueOf("Disabled"));
\r
308 meta.setProvider("ZTE");
\r
309 meta.setSize("0.93M");
\r
310 meta.setType("NSAR");
\r
311 meta.setUsageState(EnumUsageState.valueOf("InUse"));
\r
312 meta.setVersion("V1.0");
\r
313 meta.setOnBoardState("false");
\r
314 meta.setProcessState(EnumProcessState.valueOf("normal"));
\r