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
17 package org.openo.commontosca.catalog.wrapper;
\r
19 import static org.junit.Assert.assertEquals;
\r
20 import static org.junit.Assert.assertNotNull;
\r
22 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
\r
23 import org.junit.After;
\r
24 import org.junit.AfterClass;
\r
25 import org.junit.Assert;
\r
26 import org.junit.Before;
\r
27 import org.junit.BeforeClass;
\r
28 import org.junit.Ignore;
\r
29 import org.junit.Test;
\r
30 import org.openo.commontosca.catalog.CatalogAppConfiguration;
\r
31 import org.openo.commontosca.catalog.common.Config;
\r
32 import org.openo.commontosca.catalog.common.HttpServerAddrConfig;
\r
33 import org.openo.commontosca.catalog.common.HttpServerPathConfig;
\r
34 import org.openo.commontosca.catalog.common.MsbAddrConfig;
\r
35 import org.openo.commontosca.catalog.db.dao.DaoManager;
\r
36 import org.openo.commontosca.catalog.db.entity.PackageData;
\r
37 import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
\r
38 import org.openo.commontosca.catalog.db.resource.PackageManager;
\r
39 import org.openo.commontosca.catalog.db.util.H2DbServer;
\r
40 import org.openo.commontosca.catalog.db.util.HibernateSession;
\r
41 import org.openo.commontosca.catalog.entity.EnumOnboardState;
\r
42 import org.openo.commontosca.catalog.entity.EnumOperationalState;
\r
43 import org.openo.commontosca.catalog.entity.EnumProcessState;
\r
44 import org.openo.commontosca.catalog.entity.EnumUsageState;
\r
45 import org.openo.commontosca.catalog.entity.response.CsarFileUriResponse;
\r
46 import org.openo.commontosca.catalog.entity.response.PackageMeta;
\r
47 import org.openo.commontosca.catalog.filemanage.entity.FileLink;
\r
49 import java.io.File;
\r
50 import java.io.FileInputStream;
\r
51 import java.io.FileNotFoundException;
\r
52 import java.io.InputStream;
\r
53 import java.net.URISyntaxException;
\r
54 import java.util.ArrayList;
\r
56 import javax.ws.rs.core.Response;
\r
58 public class PackageWrapperTest {
\r
59 private static String resourcePath;
\r
62 MsbAddrConfig.setMsbAddress("http://127.0.0.1:80");
\r
66 HttpServerAddrConfig.setHttpServerAddress("http://127.0.0.1:8080");
\r
70 HttpServerPathConfig.setHttpServerPath("../tomcat/webapps/ROOT/");
\r
73 private static PackageManager manager;
\r
77 * startup db session before class.
\r
78 * @throws Exception e
\r
81 public static void setUpBeforeClass() throws CatalogResourceException {
\r
82 H2DbServer.startUp();
\r
83 DaoManager.getInstance().setSessionFactory(HibernateSession.init());
\r
84 manager = PackageManager.getInstance();
\r
85 CatalogAppConfiguration configuration = new CatalogAppConfiguration();
\r
86 Config.setConfigration(configuration);
\r
87 System.out.println("Set up before class");
\r
91 * create data before test.
\r
94 public void setUp() throws Exception {
\r
95 ArrayList<PackageData> packageList = manager.queryPackage(null, null, null, null, null);
\r
96 if (packageList != null && packageList.size() > 0) {
\r
97 for (int i = 0; i < packageList.size(); i++) {
\r
98 String packageOid = packageList.get(i).getCsarId();
\r
99 manager.deletePackage(packageOid);
\r
103 // PowerMockito.mockStatic(PackageManager.class);
\r
104 // PowerMockito.when(manager.addPackage(packageData)).thenReturn(packageData);
\r
105 // PowerMock.replayAll();
\r
106 PackageData packageData = new PackageData();
\r
107 packageData = getPackageData();
\r
108 manager.addPackage(packageData);
\r
113 public void testUploadPackage() throws Exception {
\r
114 InputStream ins = null;
\r
115 Response result = null;
\r
116 Response result1 = null;
\r
117 Response result2 = null;
\r
118 // PackageData packageData = new PackageData();
\r
119 // packageData = getPackageData();
\r
121 FormDataContentDisposition fileDetail =
\r
122 FormDataContentDisposition.name("fileName").fileName("NanocellGW.csar").build();
\r
125 resourcePath = HibernateSession.class.getResource("/").toURI().getPath();
\r
126 } catch (URISyntaxException e1) {
\r
127 e1.printStackTrace();
\r
129 final String filename = "NanocellGW.csar";
\r
130 File packageFile = new File(resourcePath + filename);
\r
132 ins = new FileInputStream(packageFile);
\r
133 } catch (FileNotFoundException e2) {
\r
134 e2.printStackTrace();
\r
138 result = PackageWrapper.getInstance().uploadPackage(ins, fileDetail, null);
\r
139 } catch (Exception e3) {
\r
140 e3.printStackTrace();
\r
143 assertEquals(200, result.getStatus());
\r
144 assertNotNull(result.getEntity());
\r
147 result1 = PackageWrapper.getInstance().uploadPackage(null, fileDetail, null);
\r
148 } catch (Exception e4) {
\r
149 e4.printStackTrace();
\r
151 assertEquals(500, result1.getStatus());
\r
154 result2 = PackageWrapper.getInstance().uploadPackage(ins, null, null);
\r
155 } catch (Exception e5) {
\r
156 e5.printStackTrace();
\r
158 assertEquals(500, result2.getStatus());
\r
162 public void testQueryPackageById() throws Exception {
\r
163 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
164 metas = getPackageMetaList();
\r
165 // PackageManager packageManager = mock(PackageManager.class);
\r
166 // when(packageManager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
167 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(packageManager);
\r
168 // PowerMockito.mockStatic(PackageManager.class);
\r
169 // PowerMockito.when(PackageManager.getInstance()).thenReturn(manager);
\r
170 // PowerMock.replayAll();
\r
171 // when(manager.queryPackageByCsarId(anyString())).thenThrow(new Exception());
\r
172 // PowerMockito.whenNew(PackageManager.class).withNoArguments().thenReturn(manager);
\r
174 Response result = PackageWrapper.getInstance().queryPackageById("1");
\r
175 assertEquals(200, result.getStatus());
\r
176 assertEquals(metas, result.getEntity());
\r
181 public void testQueryPackageByCond() {
\r
182 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r
183 metas = getPackageMetaList();
\r
184 System.out.println("Test query package by Id");
\r
186 PackageWrapper.getInstance().queryPackageListByCond("NanocellGW", "ZTE", "V1.0", "false",
\r
188 assertEquals(200, result.getStatus());
\r
189 assertEquals(metas, result.getEntity());
\r
193 public void testUpdatePackageStatus() {
\r
194 System.out.println("Test update package status");
\r
196 PackageWrapper.getInstance().updatePackageStatus("1", "Enabled", "NotInUse", "true",
\r
197 "onBoarding", "true");
\r
198 assertEquals(200, result.getStatus());
\r
202 public void testGetCsarFileUri() {
\r
203 System.out.println("Test get csar file uri ");
\r
204 CsarFileUriResponse expectResult = new CsarFileUriResponse();
\r
205 String csarFileUri =
\r
206 MsbAddrConfig.getMsbAddress() + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
208 HttpServerPathConfig.getHttpServerPath()
\r
209 + "NSAR/ZTE/NanocellGW/v1.0/NanocellGW/images/segw.img";
\r
210 File srcDir = new File(localUri);
\r
211 String localPath = srcDir.getAbsolutePath().replace("\\", "/");
\r
213 expectResult.setDownloadUri(csarFileUri);
\r
214 expectResult.setLocalPath(localPath);
\r
215 Response result = PackageWrapper.getInstance().getCsarFileUri("1", "/images/segw.img");
\r
216 assertEquals(200, result.getStatus());
\r
217 assertEquals(expectResult, result.getEntity());
\r
222 public void testGetPlansUri() {
\r
223 System.out.println("Test get csar plans uri ");
\r
224 ArrayList<FileLink> expectResult = new ArrayList<FileLink>();
\r
225 FileLink fileLink1 = new FileLink();
\r
226 fileLink1.setFileName("init.zip");
\r
227 fileLink1.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
228 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/init.zip");
\r
229 expectResult.add(fileLink1);
\r
230 FileLink fileLink2 = new FileLink();
\r
231 fileLink2.setFileName("delete.zip");
\r
232 fileLink2.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
233 + "/NSAR/ZTE/NanocellGW/v1.0/Plans/delete.zip");
\r
234 expectResult.add(fileLink2);
\r
235 Response result = PackageWrapper.getInstance().getCsarPlansUri("1");
\r
236 assertEquals(200, result.getStatus());
\r
237 assertEquals(expectResult, result.getEntity());
\r
241 public void testDelPackage() {
\r
242 System.out.println("Test delete package ");
\r
243 Response result = PackageWrapper.getInstance().delPackage("1");
\r
244 assertEquals(204, result.getStatus());
\r
246 Thread.sleep(5000);
\r
247 } catch (InterruptedException e1) {
\r
248 e1.printStackTrace();
\r
253 * delete data after test.
\r
256 public void tearDown() throws Exception {
\r
257 ArrayList<PackageData> packageList = manager.queryPackageByCsarId("1");
\r
258 if (packageList != null && packageList.size() != 0) {
\r
259 manager.deletePackage("1");
\r
263 System.out.println("Tear down");
\r
267 * destory db session after class.
\r
268 * @throws Exception e
\r
271 public static void tearDownAfterClass() {
\r
273 HibernateSession.destory();
\r
274 DaoManager.getInstance().setDaoNull();
\r
275 H2DbServer.shutDown();
\r
276 } catch (Exception e1) {
\r
277 Assert.fail("Exception" + e1.getMessage());
\r
281 private PackageData getPackageData() {
\r
282 PackageData packageData = new PackageData();
\r
283 packageData.setCsarId("1");
\r
284 packageData.setCreateTime("2016-06-29 03:33:15");
\r
285 packageData.setDeletionPending("false");
\r
286 packageData.setDownloadUri("/NSAR/ZTE/NanocellGW/v1.0/");
\r
287 packageData.setFormat("yml");
\r
288 packageData.setModifyTime("2016-06-29 03:33:15");
\r
289 packageData.setName("NanocellGW");
\r
290 packageData.setOnBoardState("non-onBoarded");
\r
291 packageData.setOperationalState("Disabled");
\r
292 packageData.setProvider("ZTE");
\r
293 packageData.setSize("0.93M");
\r
294 packageData.setType("NSAR");
\r
295 packageData.setUsageState("InUse");
\r
296 packageData.setVersion("V1.0");
\r
297 packageData.setProcessState("normal");
\r
298 return packageData;
\r
301 private ArrayList<PackageData> getPackageDataList() {
\r
302 ArrayList<PackageData> packageDataList = new ArrayList<PackageData>();
\r
303 PackageData packageData = new PackageData();
\r
304 packageData = getPackageData();
\r
305 packageDataList.add(packageData);
\r
306 return packageDataList;
\r
309 private ArrayList<PackageMeta> getPackageMetaList() {
\r
310 PackageMeta meta = new PackageMeta();
\r
311 meta.setCreateTime("2016-06-29 03:33:15");
\r
312 meta.setCsarId("1");
\r
313 meta.setDeletionPending(false);
\r
314 meta.setDownloadUri(MsbAddrConfig.getMsbAddress()
\r
315 + "/NSAR/ZTE/NanocellGW/v1.0/NanocellGW.csar");
\r
316 meta.setFormat("yml");
\r
317 meta.setModifyTime("2016-06-29 03:33:15");
\r
318 meta.setName("NanocellGW");
\r
319 meta.setOperationalState(EnumOperationalState.valueOf("Disabled"));
\r
320 meta.setProvider("ZTE");
\r
321 meta.setSize("0.93M");
\r
322 meta.setType("NSAR");
\r
323 meta.setUsageState(EnumUsageState.valueOf("InUse"));
\r
324 meta.setVersion("V1.0");
\r
325 meta.setOnBoardState(EnumOnboardState.nonOnBoarded.getValue());
\r
326 meta.setProcessState(EnumProcessState.valueOf("normal"));
\r
327 ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
\r