92b5b525d0244fdda4a04d395c523c13fe8eb97e
[vnfsdk/refrepo.git] /
1 /**
2  * Copyright 2017 Huawei Technologies Co., Ltd.
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
17 package org.onap.vnfsdk.marketplace.resource;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22
23 import java.io.BufferedInputStream;
24 import java.io.File;
25 import java.io.FileInputStream;
26 import java.io.FileNotFoundException;
27 import java.io.FileOutputStream;
28 import java.io.FileWriter;
29 import java.io.InputStream;
30 import java.text.DecimalFormat;
31 import java.util.ArrayList;
32 import java.util.List;
33 import java.util.Map;
34 import java.util.zip.ZipEntry;
35 import java.util.zip.ZipOutputStream;
36
37 import javax.ws.rs.core.Response;
38
39 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
40 import org.junit.Before;
41 import org.junit.Test;
42 import org.onap.vnfsdk.marketplace.common.FileUtil;
43 import org.onap.vnfsdk.marketplace.common.ToolUtil;
44 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
45 import org.onap.vnfsdk.marketplace.db.impl.MarketplaceDaoImpl;
46 import org.onap.vnfsdk.marketplace.db.inf.IMarketplaceDao;
47 import org.onap.vnfsdk.marketplace.db.resource.PackageManager;
48 import org.onap.vnfsdk.marketplace.db.util.MarketplaceDbUtil;
49 import org.onap.vnfsdk.marketplace.db.wrapper.PackageHandler;
50 import org.onap.vnfsdk.marketplace.entity.CsarPackage;
51 import org.onap.vnfsdk.marketplace.entity.EnumOperationalState;
52 import org.onap.vnfsdk.marketplace.entity.EnumType;
53 import org.onap.vnfsdk.marketplace.entity.EnumUsageState;
54 import org.onap.vnfsdk.marketplace.entity.VnfPackage;
55 import org.onap.vnfsdk.marketplace.entity.request.PackageBasicInfo;
56 import org.onap.vnfsdk.marketplace.entity.response.CsarFileUriResponse;
57 import org.onap.vnfsdk.marketplace.entity.response.PackageMeta;
58 import org.onap.vnfsdk.marketplace.entity.response.PackageResponse;
59 import org.onap.vnfsdk.marketplace.filemanage.http.HttpFileManagerImpl;
60 import org.onap.vnfsdk.marketplace.msb.MsbDetailsHolder;
61 import org.onap.vnfsdk.marketplace.onboarding.entity.OnBoardingResult;
62 import org.onap.vnfsdk.marketplace.onboarding.entity.OnBoradingRequest;
63 import org.onap.vnfsdk.marketplace.onboarding.entity.ResultKey;
64 import org.onap.vnfsdk.marketplace.onboarding.hooks.functiontest.FunctionTestExceutor;
65 import org.onap.vnfsdk.marketplace.onboarding.hooks.functiontest.FunctionTestHook;
66 import org.onap.vnfsdk.marketplace.rest.RestResponse;
67 import org.onap.vnfsdk.marketplace.rest.RestfulClient;
68 import org.onap.vnfsdk.marketplace.wrapper.PackageWrapper;
69 import org.onap.vnfsdk.marketplace.wrapper.PackageWrapperUtil;
70 import org.open.infc.grpc.Result;
71 import org.open.infc.grpc.client.OpenRemoteCli;
72
73 import mockit.Mock;
74 import mockit.MockUp;
75
76 public class PackageResourceTest {
77
78     private PackageResource packageResource = null;
79
80     private Response response = null;
81
82     private String csarID = "csarid";
83
84     private List<PackageData> packageDataList = null;
85
86     private PackageData packageData = null;
87
88     private FormDataContentDisposition fileDetail = null;
89
90     private InputStream inputStream = null;
91
92     private String operTypeId = "opertype";
93
94     private VnfPackage vnfPackageObj = null;
95
96     private CsarPackage csarPackageObj = null;
97
98     private PackageBasicInfo pkgBasicInfoObj = null;
99
100     private PackageMeta pkgMetaObj = null;
101
102     private PackageResponse pkgResponseObj = null;
103
104     private CsarFileUriResponse csarFileUriResObj = null;
105
106     @Before
107     public void setUp() {
108         packageResource = new PackageResource();
109         vnfPackageObj = new VnfPackage();
110         csarPackageObj = new CsarPackage();
111         pkgBasicInfoObj = new PackageBasicInfo();
112         pkgMetaObj = new PackageMeta();
113         pkgResponseObj = new PackageResponse();
114         csarFileUriResObj = new CsarFileUriResponse();
115     }
116
117     @Before
118     public void createTestFile() {
119         String filePath = "src" + File.separator + "test" + File.separator + "resources" + File.separator + "Test.txt";
120         File file = new File(filePath);
121         try {
122             file.createNewFile();
123             FileWriter writer = new FileWriter(file);
124             writer.write("This is test file.");
125             writer.close();
126         } catch(Exception e) {
127             e.printStackTrace();
128         }
129
130         filePath = "src" + File.separator + "test" + File.separator + "resources" + File.separator + "testfolder";
131         file = new File(filePath);
132         if(!file.exists()) {
133             file.mkdirs();
134         }
135
136         StringBuilder sb = new StringBuilder();
137         sb.append("test data");
138
139         filePath = "src" + File.separator + "test" + File.separator + "resources" + File.separator + "temp.zip";
140         file = new File(filePath);
141         try {
142             ZipOutputStream out = new ZipOutputStream(new FileOutputStream(file));
143             ZipEntry e = new ZipEntry("temp.txt");
144             out.putNextEntry(e);
145             byte[] data = sb.toString().getBytes();
146             out.write(data, 0, data.length);
147             out.closeEntry();
148             out.close();
149         } catch(Exception e) {
150             e.printStackTrace();
151         }
152     }
153
154     @Test
155     public void testQueryPackageListByCond() throws Exception {
156         new MockUp<MarketplaceDaoImpl>() {
157
158             @Mock
159             public List<PackageData> getPackageDataSubset(Map<String, String> queryParam) {
160                 return new ArrayList<PackageData>();
161             }
162         };
163         try {
164             response = PackageWrapper.getInstance().queryPackageListByCond(null, null, null, null, null);
165         } catch(Exception e) {
166             e.printStackTrace();
167         }
168
169         assertNotNull(response);
170         assertEquals(200, response.getStatus());
171         // assertNull(res5);
172         // assertEquals(00,res5.getStatus());
173     }
174
175     @Test
176     public void testQueryPackageById() throws Exception {
177         new MockUp<MarketplaceDaoImpl>() {
178
179             @Mock
180             public List<PackageData> getPackageData(String csarId) {
181                 return null;
182             }
183
184         };
185         new MockUp<MarketplaceDaoImpl>() {
186
187             @Mock
188             public List<PackageData> getPackageData(String csarId) {
189                 packageDataList = new ArrayList<PackageData>();
190                 packageData = new PackageData();
191                 packageData.setCsarId(csarId);
192                 packageData.setDownloadUri("src\\test\\resources\\clearwater_ns.csar");
193                 packageData.setName("clearwater_ns.csar");
194                 packageData.setSize("59,854  bytes");
195                 packageData.setVersion("v1.0");
196                 packageData.setProvider("Huawei");
197                 packageDataList.add(packageData);
198                 return packageDataList;
199             }
200         };
201
202         try {
203             response = PackageWrapper.getInstance().queryPackageById(csarID);
204         } catch(Exception e) {
205             e.printStackTrace();
206         }
207         assertNotNull(response);
208         assertEquals(200, response.getStatus());
209     }
210
211     @Test
212     public void testDelPackageFaiure() {
213         new MockUp<MarketplaceDaoImpl>() {
214
215             @Mock
216             public List<PackageData> getAllPackageData() {
217                 return new ArrayList<PackageData>();
218             }
219         };
220
221         new MockUp<MarketplaceDaoImpl>() {
222
223             @Mock
224             public void deletePackageData(String csarId) {
225                 return;
226             }
227         };
228
229         new MockUp<MarketplaceDaoImpl>() {
230
231             @Mock
232             public List<PackageData> getPackageData(String csarId) {
233                 return new ArrayList<PackageData>();
234             }
235         };
236
237         try {
238             response = PackageWrapper.getInstance().delPackage("");
239         } catch(Exception e5) {
240             e5.printStackTrace();
241         }
242         assertEquals(500, response.getStatus());
243
244         try {
245             response = PackageWrapper.getInstance().delPackage(null);
246         } catch(Exception e5) {
247             e5.printStackTrace();
248         }
249         assertEquals(500, response.getStatus());
250     }
251
252     @Test
253     public void testDelPackageSuccess() {
254         new MockUp<MarketplaceDaoImpl>() {
255
256             @Mock
257             public List<PackageData> getAllPackageData() {
258                 packageDataList = new ArrayList<PackageData>();
259                 packageData = new PackageData();
260                 packageData.setCsarId(csarID);
261                 packageData.setDownloadUri("src\\test\\resources\\clearwater_ns.csar");
262                 packageData.setName("clearwater_ns.csar");
263                 packageData.setSize("59,854  bytes");
264                 packageData.setVersion("v1.0");
265                 packageData.setProvider("Huawei");
266                 packageDataList.add(packageData);
267                 return packageDataList;
268             }
269         };
270
271         new MockUp<PackageManager>() {
272
273             @Mock
274             public void deletePackage(String csarId) {
275                 return;
276             }
277         };
278
279         new MockUp<HttpFileManagerImpl>() {
280
281             @Mock
282             public boolean delete(String srcPath) {
283                 return true;
284             }
285         };
286
287         new MockUp<MarketplaceDaoImpl>() {
288
289             @Mock
290             public List<PackageData> getPackageData(String csarId) {
291                 packageDataList = new ArrayList<PackageData>();
292                 packageData = new PackageData();
293                 packageData.setCsarId(csarID);
294                 packageData.setDownloadUri("src\\test\\resources\\");
295                 packageData.setName("clearwater_ns.csar");
296                 packageData.setSize("59,854  bytes");
297                 packageData.setVersion("v1.0");
298                 packageData.setProvider("Huawei");
299                 packageDataList.add(packageData);
300                 return packageDataList;
301             }
302         };
303
304         try {
305             response = PackageWrapper.getInstance().delPackage("csarid");
306         } catch(Exception e) {
307             e.printStackTrace();
308         }
309
310         assertNotNull(response);
311         assertEquals(200, response.getStatus());
312     }
313
314     @Test
315     public void testGetCsarFileUri() {
316         new MockUp<MarketplaceDaoImpl>() {
317
318             @Mock
319             public List<PackageData> getPackageData(String csarId) {
320                 packageDataList = new ArrayList<PackageData>();
321                 packageData = new PackageData();
322                 packageData.setCsarId(csarId);
323                 packageData.setDownloadUri("src\\test\\resources\\");
324                 packageData.setName("clearwater_ns.csar");
325                 packageData.setSize("59,854  bytes");
326                 packageData.setVersion("v1.0");
327                 packageData.setProvider("Huawei");
328                 packageDataList.add(packageData);
329                 return packageDataList;
330             }
331         };
332
333         new MockUp<PackageWrapper>() {
334
335             @Mock
336             Response downloadCsarPackagesById(String csarId) throws FileNotFoundException {
337                 String fileName =
338                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "Test.txt";
339                 InputStream fis = new BufferedInputStream(new FileInputStream(fileName));
340                 return Response.ok(fis).header("Content-Disposition", "attachment; filename=\"" + fileName + "\"")
341                         .build();
342             }
343         };
344         response = PackageWrapper.getInstance().getCsarFileUri("csarId");
345         assertEquals(200, response.getStatus());
346
347     }
348
349     @Test
350     public void testupdateDwonloadCountSuccess() throws Exception {
351         final List<PackageData> pkgList = new ArrayList<PackageData>();
352         PackageData pkgDataObj = new PackageData();
353         pkgDataObj.setDownloadCount(1);
354         pkgList.add(pkgDataObj);
355         new MockUp<MarketplaceDaoImpl>() {
356
357             @Mock
358             public List<PackageData> getPackageData(String csarId) {
359                 return pkgList;
360                 // return new ArrayList<PackageData>();
361             }
362         };
363         new MockUp<MarketplaceDaoImpl>() {
364
365             @Mock
366             public void updatePackageData(PackageData oPackageData) {
367                 return;
368
369             }
370         };
371         try {
372             response = PackageWrapper.getInstance().updateDwonloadCount(csarID);
373         } catch(Exception e5) {
374             e5.printStackTrace();
375         }
376         assertNotNull(response);
377         assertEquals(200, response.getStatus());
378     }
379
380     @Test
381     public void testReUploadPackage() {
382         new MockUp<MarketplaceDaoImpl>() {
383
384             @Mock
385             public List<PackageData> getPackageData(String csarId) {
386                 List<PackageData> packageDataList = new ArrayList<PackageData>();
387                 PackageData packageData = new PackageData();
388                 packageData = new PackageData();
389                 packageData.setCsarId(csarId);
390                 packageData.setDownloadUri("src\\test\\resources\\clearwater_ns.csar");
391                 packageData.setName("clearwater_ns.csar");
392                 packageData.setSize("59,854  bytes");
393                 packageData.setVersion("v1.0");
394                 packageData.setProvider("Huawei");
395                 packageDataList.add(packageData);
396                 return packageDataList;
397             }
398         };
399
400         new MockUp<HttpFileManagerImpl>() {
401
402             @Mock
403             public boolean delete(String srcPath) {
404                 return true;
405             }
406         };
407
408         new MockUp<MarketplaceDaoImpl>() {
409
410             @Mock
411             public void deletePackageData(String csarId) {
412                 return;
413             }
414         };
415
416         new MockUp<ToolUtil>() {
417
418             @Mock
419             public String getTempDir(String dirName, String fileName) {
420                 String fileN =
421                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "testfolder";
422                 return fileN;
423             }
424         };
425
426         new MockUp<HttpFileManagerImpl>() {
427
428             @Mock
429             public boolean upload(String srcPath, String dstPath) {
430                 return true;
431             }
432         };
433
434         new MockUp<PackageWrapperUtil>() {
435
436             @Mock
437             public PackageData getPackageData(PackageMeta meta) {
438                 PackageData packageData = new PackageData();
439                 packageData.setCreateTime("25-3-2017 15:26:00");
440                 packageData.setDeletionPending("deletion");
441                 packageData.setDownloadUri("downloaduri");
442                 packageData.setFormat("format");
443                 packageData.setModifyTime("time");
444                 packageData.setName("name");
445                 packageData.setCsarId("csarid");
446                 packageData.setProvider("huawei");
447                 String fileSize = "10 mb";
448                 packageData.setSize(fileSize);
449                 packageData.setType("type");
450                 packageData.setVersion("v2.0");
451                 packageData.setDetails("details");
452                 packageData.setShortDesc("description");
453                 packageData.setRemarks("remarks");
454                 return packageData;
455             }
456         };
457
458         new MockUp<PackageHandler>() {
459
460             @Mock
461             public PackageData create(PackageData packageData) {
462                 PackageData packageDataObj = new PackageData();
463                 packageDataObj.setCreateTime("25-3-2017 15:26:00");
464                 packageDataObj.setDeletionPending("deletion");
465                 packageDataObj.setDownloadUri("downloaduri");
466                 packageDataObj.setFormat("format");
467                 packageDataObj.setModifyTime("modifytime");
468                 packageDataObj.setName("name");
469                 packageDataObj.setCsarId("csarid");
470                 packageDataObj.setProvider("huawei");
471                 String fileSize = "10 mb";
472                 packageDataObj.setSize(fileSize);
473                 packageDataObj.setType("type");
474                 packageDataObj.setVersion("v2.0");
475                 packageDataObj.setDetails("details");
476                 packageDataObj.setShortDesc("description");
477                 packageDataObj.setRemarks("remarks");
478                 return packageDataObj;
479             }
480         };
481
482         try {
483             response = PackageWrapper.getInstance().reUploadPackage(null, null, null, null, null);
484         } catch(Exception e) {
485             e.printStackTrace();
486         }
487         assertEquals(417, response.getStatus());
488
489         try {
490             fileDetail = FormDataContentDisposition.name("fileName").fileName("clearwater_ns.csar").build();
491             String fileName = "src" + File.separator + "test" + File.separator + "resources" + File.separator
492                     + "clearwater_ns.csar";
493             inputStream = new FileInputStream(fileName);
494             response = PackageWrapper.getInstance().reUploadPackage("csarID", inputStream, fileDetail, null, null);
495             // assertEquals( 200, response.getStatus() );
496         } catch(Exception e) {
497             e.printStackTrace();
498         }
499     }
500
501     @Test
502     public void testgetOperResultByOperTypeIdFailure() throws Exception {
503         final ResultKey resultKeyObj = new ResultKey();
504
505         new MockUp<FunctionTestHook>() {
506
507             @Mock
508             ResultKey getFuncTestResultKey(PackageData packageData) {
509                 resultKeyObj.setKey("key");
510                 return resultKeyObj;
511             }
512         };
513         new MockUp<FunctionTestExceutor>() {
514
515             @Mock
516             String getTestResultsByFuncTestKey(String key) {
517                 return null;
518             }
519         };
520
521         new MockUp<MarketplaceDaoImpl>() {
522
523             @Mock
524             public List<PackageData> getPackageData(String csarId) {
525                 List<PackageData> packageDataList = new ArrayList<PackageData>();
526                 PackageData packageData = new PackageData();
527                 packageData = new PackageData();
528                 packageData.setCsarId(csarId);
529                 packageData.setDownloadUri("src\\test\\resources\\learwater_ns.csar");
530                 packageData.setName("clearwater_ns.csar");
531                 packageData.setSize("59,854  bytes");
532                 packageData.setVersion("v1.0");
533                 packageData.setProvider("Airtel");
534                 packageDataList.add(packageData);
535                 return packageDataList;
536             }
537         };
538
539         try {
540             response = PackageWrapper.getInstance().getOperResultByOperTypeId(csarID, operTypeId);
541         } catch(Exception e5) {
542             e5.printStackTrace();
543         }
544         assertEquals(500, response.getStatus());
545
546         try {
547             response = PackageWrapper.getInstance().getOperResultByOperTypeId("", "");
548         } catch(Exception e) {
549             e.printStackTrace();
550         }
551         assertEquals(400, response.getStatus());
552     }
553
554     @Test
555     public void testgetOperResultByOperTypeIdSuccess() {
556         new MockUp<MarketplaceDaoImpl>() {
557
558             @Mock
559             public List<PackageData> getPackageData(String csarId) {
560                 List<PackageData> packageDataList = new ArrayList<PackageData>();
561                 PackageData packageData = new PackageData();
562                 packageData = new PackageData();
563                 packageData.setCsarId(csarId);
564                 packageData.setDownloadUri("src\\test\\resources\\learwater_ns.csar");
565                 packageData.setName("clearwater_ns.csar");
566                 packageData.setSize("59,854  bytes");
567                 packageData.setVersion("v1.0");
568                 packageData.setProvider("Airtel");
569                 packageDataList.add(packageData);
570                 return packageDataList;
571             }
572         };
573
574         new MockUp<ToolUtil>() {
575
576             @Mock
577             public String getTempDir(String dirName, String fileName) {
578                 String filena =
579                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "testfolder";
580                 return filena;
581             }
582         };
583         new MockUp<PackageWrapper>() {
584
585             @Mock
586             Response downloadCsarPackagesById(String csarId) throws FileNotFoundException {
587                 String fileName =
588                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "Test.txt";
589                 InputStream fis = new BufferedInputStream(new FileInputStream(fileName));
590                 return Response.ok(fis).header("Content-Disposition", "attachment; filename=\"" + fileName + "\"")
591                         .build();
592             }
593         };
594
595         new MockUp<FunctionTestHook>() {
596
597             @Mock
598             ResultKey getFuncTestResultKey(PackageData packageData) {
599                 ResultKey resultKey = new ResultKey();
600                 resultKey.setKey("key");
601                 return resultKey;
602             }
603         };
604         new MockUp<FunctionTestExceutor>() {
605
606             @Mock
607             String getTestResultsByFuncTestKey(String key) {
608                 return "key";
609             }
610         };
611
612         try {
613             response = PackageWrapper.getInstance().getOperResultByOperTypeId(csarID, operTypeId);
614         } catch(Exception e) {
615             e.printStackTrace();
616         }
617     }
618
619     // @Ignore
620     @Test
621     public void testUploadPackage() throws Exception {
622         InputStream ins = null;
623         Response result = null;
624         /*
625          * Response result1 = null; Response result2 = null; PackageData
626          * packageData = new PackageData(); packageData = getPackageData();
627          */
628
629         new MockUp<MarketplaceDaoImpl>() {
630
631             @Mock
632             public List<PackageData> getPackageData(String csarId) {
633                 List<PackageData> packageDataList = new ArrayList<PackageData>();
634                 PackageData packageData = new PackageData();
635                 packageData = new PackageData();
636                 packageData.setCsarId(csarId);
637                 packageData.setDownloadUri("src\\test\\resources\\");
638                 packageData.setName("clearwater_ns.csar");
639                 packageData.setSize("59,854  bytes");
640                 packageData.setVersion("v1.0");
641                 packageData.setProvider("Airtel");
642                 packageDataList.add(packageData);
643                 return packageDataList;
644             }
645
646             @Mock
647             public List<PackageData> getPackageDataSubset(Map<String, String> paramsMap) {
648                 List<PackageData> packageDataList = new ArrayList<PackageData>();
649
650                 return packageDataList;
651             }
652         };
653
654         new MockUp<HttpFileManagerImpl>() {
655
656             @Mock
657             public boolean delete(String srcPath) {
658                 return true;
659             }
660         };
661
662         new MockUp<MarketplaceDaoImpl>() {
663
664             @Mock
665             public void deletePackageData(String csarId) {
666                 return;
667             }
668         };
669
670         new MockUp<ToolUtil>() {
671
672             @Mock
673             public String getTempDir(String dirName, String fileName) {
674                 String filena =
675                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "testfolder";
676                 return filena;
677             }
678         };
679
680         new MockUp<HttpFileManagerImpl>() {
681
682             @Mock
683             public boolean upload(String srcPath, String dstPath) {
684                 return false;
685             }
686         };
687
688         new MockUp<PackageWrapperUtil>() {
689
690             @Mock
691             public PackageData getPackageData(PackageMeta meta) {
692                 PackageData packageData = new PackageData();
693                 packageData.setCreateTime("25-3-2017 15:26:00");
694                 packageData.setDeletionPending("deletion");
695                 packageData.setDownloadUri("downloaduri");
696                 packageData.setFormat("format");
697                 packageData.setModifyTime("time");
698                 packageData.setName("name");
699                 packageData.setCsarId("csarid");
700                 packageData.setProvider("huawei");
701                 String fileSize = "10 mb";
702                 packageData.setSize(fileSize);
703                 packageData.setType("type");
704                 packageData.setVersion("v2.0");
705                 packageData.setDetails("details");
706                 packageData.setShortDesc("description");
707                 packageData.setRemarks("remarks");
708                 return packageData;
709             }
710         };
711
712         new MockUp<PackageHandler>() {
713
714             @Mock
715             public PackageData create(PackageData packageData) {
716                 PackageData packageDataObj = new PackageData();
717                 packageDataObj.setCreateTime("25-3-2017 15:26:00");
718                 packageDataObj.setDeletionPending("deletion");
719                 packageDataObj.setDownloadUri("downloaduri");
720                 packageDataObj.setFormat("format");
721                 packageDataObj.setModifyTime("modifytime");
722                 packageDataObj.setName("name");
723                 packageDataObj.setCsarId("csarid");
724                 packageDataObj.setProvider("huawei");
725                 String fileSize = "10 mb";
726                 packageDataObj.setSize(fileSize);
727                 packageDataObj.setType("type");
728                 packageDataObj.setVersion("v2.0");
729                 packageDataObj.setDetails("details");
730                 packageDataObj.setShortDesc("description");
731                 packageDataObj.setRemarks("remarks");
732                 return packageDataObj;
733             }
734         };
735
736
737         new MockUp<OpenRemoteCli>() {
738
739             @Mock
740             public Result run(String[] args) {
741                 Result result = Result.newBuilder().
742                         setExitCode(0).
743                         setOutput("{\"error\":\"SUCCESS\"}").
744                         build();
745
746                 return result;
747             }
748         };
749
750         FormDataContentDisposition fileDetail =
751                 FormDataContentDisposition.name("fileName").fileName("clearwater_ns.csar").build();
752
753         String filenama =
754                 "src" + File.separator + "test" + File.separator + "resources" + File.separator + "clearwater_ns.csar";
755         File packageFile = new File(filenama);
756
757         try {
758             ins = new FileInputStream(packageFile);
759         } catch(FileNotFoundException e2) {
760             e2.printStackTrace();
761         }
762         if(ins != null) {
763             try {
764                 result = PackageWrapper.getInstance().uploadPackage(ins, fileDetail, null, null);
765                 // PackageWrapper.getInstance().updateValidateStatus(ins);
766             } catch(Exception e3) {
767                 e3.printStackTrace();
768             }
769         }
770
771         assertNotNull(result);
772         assertEquals(200, result.getStatus());
773
774         try {
775             result = PackageWrapper.getInstance().uploadPackage(null, null, null, null);
776         } catch(Exception e4) {
777             e4.printStackTrace();
778         }
779
780         assertEquals(417, result.getStatus());
781     }
782
783     @Test
784     public void testUploadPackageFailedOnVtp() throws Exception {
785         InputStream ins = null;
786         Response result = null;
787         /*
788          * Response result1 = null; Response result2 = null; PackageData
789          * packageData = new PackageData(); packageData = getPackageData();
790          */
791
792         new MockUp<MarketplaceDaoImpl>() {
793
794             @Mock
795             public List<PackageData> getPackageData(String csarId) {
796                 List<PackageData> packageDataList = new ArrayList<PackageData>();
797                 PackageData packageData = new PackageData();
798                 packageData = new PackageData();
799                 packageData.setCsarId(csarId);
800                 packageData.setDownloadUri("src\\test\\resources\\");
801                 packageData.setName("clearwater_ns.csar");
802                 packageData.setSize("59,854  bytes");
803                 packageData.setVersion("v1.0");
804                 packageData.setProvider("Airtel");
805                 packageDataList.add(packageData);
806                 return packageDataList;
807             }
808
809             @Mock
810             public List<PackageData> getPackageDataSubset(Map<String, String> paramsMap) {
811                 List<PackageData> packageDataList = new ArrayList<PackageData>();
812
813                 return packageDataList;
814             }
815         };
816
817         new MockUp<HttpFileManagerImpl>() {
818
819             @Mock
820             public boolean delete(String srcPath) {
821                 return true;
822             }
823         };
824
825         new MockUp<MarketplaceDaoImpl>() {
826
827             @Mock
828             public void deletePackageData(String csarId) {
829                 return;
830             }
831         };
832
833         new MockUp<ToolUtil>() {
834
835             @Mock
836             public String getTempDir(String dirName, String fileName) {
837                 String filena =
838                         "src" + File.separator + "test" + File.separator + "resources" + File.separator + "testfolder";
839                 return filena;
840             }
841         };
842
843         new MockUp<HttpFileManagerImpl>() {
844
845             @Mock
846             public boolean upload(String srcPath, String dstPath) {
847                 return false;
848             }
849         };
850
851         new MockUp<PackageWrapperUtil>() {
852
853             @Mock
854             public PackageData getPackageData(PackageMeta meta) {
855                 PackageData packageData = new PackageData();
856                 packageData.setCreateTime("25-3-2017 15:26:00");
857                 packageData.setDeletionPending("deletion");
858                 packageData.setDownloadUri("downloaduri");
859                 packageData.setFormat("format");
860                 packageData.setModifyTime("time");
861                 packageData.setName("name");
862                 packageData.setCsarId("csarid");
863                 packageData.setProvider("huawei");
864                 String fileSize = "10 mb";
865                 packageData.setSize(fileSize);
866                 packageData.setType("type");
867                 packageData.setVersion("v2.0");
868                 packageData.setDetails("details");
869                 packageData.setShortDesc("description");
870                 packageData.setRemarks("remarks");
871                 return packageData;
872             }
873         };
874
875         new MockUp<PackageHandler>() {
876
877             @Mock
878             public PackageData create(PackageData packageData) {
879                 PackageData packageDataObj = new PackageData();
880                 packageDataObj.setCreateTime("25-3-2017 15:26:00");
881                 packageDataObj.setDeletionPending("deletion");
882                 packageDataObj.setDownloadUri("downloaduri");
883                 packageDataObj.setFormat("format");
884                 packageDataObj.setModifyTime("modifytime");
885                 packageDataObj.setName("name");
886                 packageDataObj.setCsarId("csarid");
887                 packageDataObj.setProvider("huawei");
888                 String fileSize = "10 mb";
889                 packageDataObj.setSize(fileSize);
890                 packageDataObj.setType("type");
891                 packageDataObj.setVersion("v2.0");
892                 packageDataObj.setDetails("details");
893                 packageDataObj.setShortDesc("description");
894                 packageDataObj.setRemarks("remarks");
895                 return packageDataObj;
896             }
897         };
898
899
900         new MockUp<OpenRemoteCli>() {
901
902             @Mock
903             public Result run(String[] args) throws Exception {
904                 throw new Exception();
905             }
906         };
907
908         FormDataContentDisposition fileDetail =
909                 FormDataContentDisposition.name("fileName").fileName("clearwater_ns.csar").build();
910
911         String filenama =
912                 "src" + File.separator + "test" + File.separator + "resources" + File.separator + "clearwater_ns.csar";
913         File packageFile = new File(filenama);
914
915         try {
916             ins = new FileInputStream(packageFile);
917         } catch(FileNotFoundException e2) {
918             e2.printStackTrace();
919         }
920         if(ins != null) {
921             try {
922                 result = PackageWrapper.getInstance().uploadPackage(ins, fileDetail, null, null);
923                 // PackageWrapper.getInstance().updateValidateStatus(ins);
924             } catch(Exception e3) {
925                 e3.printStackTrace();
926             }
927         }
928
929         assertEquals(500, result.getStatus());
930     }
931
932     @Test
933     public void testGetOnBoardingStepsSuccess() {
934         new MockUp<org.onap.vnfsdk.marketplace.filemanage.http.ToolUtil>() {
935
936             @Mock
937             String getAppDeployPath() {
938                 String path = "src" + File.separator + "main" + File.separator + "resources";
939                 return path;
940             }
941         };
942
943         try {
944             response = PackageWrapper.getInstance().getOnBoardingSteps();
945         } catch(Exception e) {
946             e.printStackTrace();
947         }
948
949         assertNotNull(response);
950     }
951
952     @Test
953     public void testGetOnBoardingStepsFailure() {
954         new MockUp<org.onap.vnfsdk.marketplace.filemanage.http.ToolUtil>() {
955
956             @Mock
957             String getAppDeployPath() {
958                 String path = "src" + File.separator + "main" + File.separator + "resources" + File.separator
959                         + "generalconfig";
960                 return path;
961             }
962         };
963
964         try {
965             response = PackageWrapper.getInstance().getOnBoardingSteps();
966         } catch(Exception e) {
967             e.printStackTrace();
968         }
969         assertEquals(500, response.getStatus());
970     }
971
972     @Test
973     public void testRestGetClient() {
974         FunctionTestExceutor.getTestResultsByFuncTestKey("GET");
975
976     }
977
978     @Test
979     public void testRestPostClient() {
980
981         OnBoradingRequest onBoradFuncTestReq = new OnBoradingRequest();
982         onBoradFuncTestReq.setPackagePath("src/test/resources/clearwater_ns.csar");
983         onBoradFuncTestReq.setPackageName("clearwater_ns.csar");
984         String result = FunctionTestExceutor.execFunctionTest(onBoradFuncTestReq);
985         assertNull(result);
986         // assertEquals(200,result);
987
988     }
989
990     @Test
991     public void testRestDeleteClient() {
992         RestResponse rsp = RestfulClient.delete("127.0.0.1", 8987, "TestURL");
993         assertNotNull(rsp);
994         if(rsp.getStatusCode() != null)
995             assertEquals(200, rsp.getStatusCode().intValue());
996
997     }
998
999     @Test
1000     public void testExec() {
1001
1002         new MockUp<FunctionTestHook>() {
1003
1004             @Mock
1005             String getResultStorePath() {
1006                 return "src/test/resources";
1007
1008             }
1009         };
1010         FunctionTestHook testHookObj = new FunctionTestHook();
1011         OnBoradingRequest onBoradFuncTestReq = new OnBoradingRequest();
1012         onBoradFuncTestReq.setPackagePath("src/test/resources/clearwater_ns.csar");
1013         int res = testHookObj.exec(onBoradFuncTestReq);
1014
1015         assertEquals(res, -1);
1016     }
1017
1018     @Test
1019
1020     public void testwriteJsonDatatoFile() {
1021
1022         String filePath = "src//test//resources//functionTest.json";
1023         OnBoardingResult onBoardResultObj = new OnBoardingResult();
1024         onBoardResultObj.setCsarId("csrId");
1025         onBoardResultObj.setOperStatus(1);
1026         boolean res = FileUtil.writeJsonDatatoFile(filePath, onBoardResultObj);
1027         assertEquals(res, true);
1028
1029     }
1030
1031     @Test
1032
1033     public void testCreateDirectory() {
1034         String dirPath = "src//test//resources//TestDirectory";
1035         boolean res = FileUtil.createDirectory(dirPath);
1036         assertEquals(res, true);
1037     }
1038
1039     @Test
1040
1041     public void testDeleteDirectory() {
1042         String dirPath = "src//test//resources//TestDirectory";
1043         boolean res = FileUtil.deleteFile(dirPath);
1044         assertEquals(res, true);
1045     }
1046
1047     @Test
1048
1049     public void testGenerateId() {
1050         String id = MarketplaceDbUtil.generateId();
1051         assertNotNull(id);
1052     }
1053
1054     @Test
1055     public void testisNotEmpty() {
1056         boolean res = MarketplaceDbUtil.isNotEmpty(null);
1057         assertEquals(res, false);
1058         res = MarketplaceDbUtil.isNotEmpty("test");
1059         assertEquals(res, true);
1060     }
1061
1062     @Test
1063     public void testobjectToString() {
1064         Object obj = "testexa";
1065         String res = MarketplaceDbUtil.objectToString(obj);
1066         assertNotNull(res);
1067         res = MarketplaceDbUtil.objectToString(null);
1068         assertNull(res);
1069     }
1070
1071     @Test
1072     public void testisEmptyString() {
1073         boolean res = ToolUtil.isEmptyString(null);
1074         assertEquals(res, true);
1075         res = ToolUtil.isEmptyString("huawei");
1076         assertEquals(res, false);
1077     }
1078
1079     @Test
1080     public void testisTrimedEmptyString() {
1081         boolean res = ToolUtil.isTrimedEmptyString(null);
1082         assertEquals(res, true);
1083         res = ToolUtil.isTrimedEmptyString("    ");
1084         assertEquals(res, true);
1085     }
1086
1087     @Test
1088     public void testisEmptyCollection() {
1089
1090         boolean res = ToolUtil.isEmptyCollection(new ArrayList());
1091         assertEquals(res, true);
1092     }
1093
1094     @Test
1095     public void testisYamlFile() {
1096         File fileObj = new File("test.txt");
1097         boolean res = ToolUtil.isYamlFile(fileObj);
1098         assertEquals(res, false);
1099     }
1100
1101     @Test
1102     public void testgenerateID() {
1103         String id = ToolUtil.generateId();
1104         assertNotNull(id);
1105     }
1106
1107     @Test
1108     public void testgetFormatFileSize() {
1109         String res = ToolUtil.getFormatFileSize(10000000);
1110         assertNotNull(res);
1111         res = ToolUtil.getFormatFileSize(10000);
1112         assertNotNull(res);
1113         res = ToolUtil.getFormatFileSize(100);
1114         assertNotNull(res);
1115     }
1116
1117     @Test
1118     public void testObjectToString() {
1119         Object obj = "testexa";
1120         String res = ToolUtil.objectToString(obj);
1121         assertNotNull(res);
1122         res = ToolUtil.objectToString(null);
1123         assertNotNull(res);
1124     }
1125
1126     @Test
1127     public void testprocessFileName() {
1128         String res = ToolUtil.processFileName("abc.txt");
1129         assertNotNull(res);
1130         res = ToolUtil.processFileName("abc.zip");
1131         assertNotNull(res);
1132     }
1133
1134     @Test
1135     public void testremoveCsarSuffix() {
1136         String res = ToolUtil.removeCsarSuffix("abc.csar");
1137         assertEquals(res, "abc");
1138     }
1139
1140     @Test
1141     public void testformatCsar() {
1142         String res = ToolUtil.formatCsar("abc");
1143         assertEquals(res, "abc.csar");
1144     }
1145
1146     @Test
1147     public void testformatFileSize() {
1148         String res = ToolUtil.formatFileSize(10000.0, 10);
1149         String expected = new DecimalFormat("#0.00").format(1000) + "M";// may
1150                                                                         // be
1151                                                                         // "1000.00"
1152                                                                         // or
1153                                                                         // "1000,00"
1154                                                                         // depending
1155                                                                         // on
1156                                                                         // Locale
1157         assertEquals(res, expected);
1158     }
1159
1160     @Test
1161     public void testgetFileSize() {
1162         File fileObj = new File("example.txt");
1163         String res = ToolUtil.getFileSize(fileObj, 10);
1164         assertNotNull(res);
1165     }
1166
1167     @Test
1168     public void testgetCatalogueCsarPath() {
1169         String res = ToolUtil.getCatalogueCsarPath();
1170         assertEquals(res, File.separator + "csar");
1171     }
1172
1173     @Test
1174     public void testgetCatalogueImagePath() {
1175         String res = ToolUtil.getCatalogueImagePath();
1176         assertEquals(res, File.separator + "image");
1177     }
1178
1179     @Test
1180     public void testdeleteFile() {
1181         boolean res = ToolUtil.deleteFile("src//test//resources", "test1.txt");
1182         assertEquals(res, true);
1183     }
1184
1185     @Test
1186     public void teststoreChunkFileInLocal() {
1187         try {
1188             inputStream = new FileInputStream("src//test//resources//Test.txt");
1189             String res = ToolUtil.storeChunkFileInLocal("src//test//resources", "TestOut.txt", inputStream);
1190             File file = new File(res);
1191             String fileName = file.getName();
1192             assertEquals(fileName, "TestOut.txt");
1193
1194         } catch(Exception ex) {
1195             ex.printStackTrace();
1196         }
1197     }
1198
1199     @Test
1200     public void testToolUtildeleteFile() {
1201         boolean res = ToolUtil.deleteFile("src/test/resources", "TestOut.txt");
1202         assertEquals(res, true);
1203     }
1204
1205
1206     @Test
1207     public void testUnzip() {
1208
1209         List<String> listObj = new ArrayList<String>();
1210         try {
1211             listObj = FileUtil.unzip("src/test/resources/temp.zip", "src/test/resources/testfolder");
1212         } catch(Exception ex) {
1213             ex.printStackTrace();
1214         }
1215         assertNotNull(listObj);
1216     }
1217
1218     @Test
1219     public void testreadJsonDatafFromFile() {
1220
1221         Object obj =
1222                 FileUtil.readJsonDatafFromFile("src/main/resources/generalconfig/OnBoardingSteps.json", Object.class);
1223         assertNotNull(obj);
1224     }
1225
1226     @Test
1227     public void testGetPkgSize() {
1228         long pkgSize = PackageWrapperUtil.getPacakgeSize("src/test/resources/Test.txt");
1229         assertNotNull(pkgSize);
1230     }
1231
1232     @Test
1233     public void testPkgFormat() {
1234         assertNotNull(PackageWrapperUtil.getPackageFormat("xml"));
1235         assertNotNull(PackageWrapperUtil.getPackageFormat("yml"));
1236         assertNull(PackageWrapperUtil.getPackageFormat("pdf"));
1237
1238         MsbDetailsHolder.getMsbDetails();
1239         try {
1240             IMarketplaceDao dao = new MarketplaceDaoImpl();
1241
1242             packageDataList = new ArrayList<PackageData>();
1243             packageData = new PackageData();
1244             packageData.setCsarId("21");
1245             packageData.setDownloadUri("src\\test\\resources\\");
1246             packageData.setName("clearwater_ns.csar");
1247             packageData.setSize("59,854  bytes");
1248             packageData.setVersion("v1.0");
1249             packageData.setProvider("Huawei");
1250             packageDataList.add(packageData);
1251
1252             dao.savePackageData(packageData);
1253             dao.getAllPackageData();
1254             dao.getPackageData("21");
1255             dao.updatePackageData(packageData);
1256             dao.deletePackageData("21");
1257
1258         } catch(Exception e) {
1259         }
1260
1261     }
1262
1263     @Test
1264     public void testVnfPackageSetter() {
1265
1266         vnfPackageObj.setVnfPackageId("vnfpackageId");
1267         vnfPackageObj.setVnfPackageUrl("vnfPackageUrl");
1268         vnfPackageObj.setVnfd("vnfd");
1269         vnfPackageObj.setVersion("1");
1270         vnfPackageObj.setUsageState(EnumUsageState.NotInUse);
1271         vnfPackageObj.setProvider("huawei");
1272         vnfPackageObj.setOperationalState(EnumOperationalState.Enabled);
1273         vnfPackageObj.setName("vnf");
1274         vnfPackageObj.setDeletionPending("pending");
1275
1276         String res = vnfPackageObj.getVnfPackageId();
1277         assertEquals(res, "vnfpackageId");
1278         res = vnfPackageObj.getVnfPackageUrl();
1279         assertEquals(res, "vnfPackageUrl");
1280         res = vnfPackageObj.getVnfd();
1281         assertEquals(res, "vnfd");
1282         res = vnfPackageObj.getVersion();
1283         assertEquals(res, "1");
1284         EnumUsageState state = vnfPackageObj.getUsageState();
1285         assertEquals(state, EnumUsageState.NotInUse);
1286         res = vnfPackageObj.getProvider();
1287         assertEquals(res, "huawei");
1288         EnumOperationalState operState = vnfPackageObj.getOperationalState();
1289         assertEquals(operState, EnumOperationalState.Enabled);
1290         res = vnfPackageObj.getName();
1291         assertEquals(res, "vnf");
1292         res = vnfPackageObj.getDeletionPending();
1293         assertEquals(res, "pending");
1294     }
1295
1296     @Test
1297     public void testCsarPackageSetter() {
1298         csarPackageObj.setCreateTime("04052017");
1299         csarPackageObj.setDeletionPending("pending");
1300         csarPackageObj.setFormat("format");
1301         csarPackageObj.setId("12");
1302         csarPackageObj.setName("csartest");
1303         csarPackageObj.setSize("10");
1304         csarPackageObj.setStatus("done");
1305         csarPackageObj.setType("type");
1306         csarPackageObj.setUrl("//network");
1307
1308         String res = csarPackageObj.getCreateTime();
1309         assertEquals(res, "04052017");
1310         res = csarPackageObj.getDeletionPending();
1311         assertEquals(res, "pending");
1312         res = csarPackageObj.getFormat();
1313         assertEquals(res, "format");
1314         res = csarPackageObj.getId();
1315         assertEquals(res, "12");
1316         res = csarPackageObj.getName();
1317         assertEquals(res, "csartest");
1318         res = csarPackageObj.getSize();
1319         assertEquals(res, "10");
1320         res = csarPackageObj.getStatus();
1321         assertEquals(res, "done");
1322         res = csarPackageObj.getType();
1323         assertEquals(res, "type");
1324         res = csarPackageObj.getUrl();
1325         assertEquals(res, "//network");
1326
1327     }
1328
1329     @Test
1330     public void testPackageBasicInfoSetter() {
1331         pkgBasicInfoObj.setFormat("pdf");
1332         pkgBasicInfoObj.setProvider("huawei");
1333         pkgBasicInfoObj.setType(EnumType.GSAR);
1334         pkgBasicInfoObj.setVersion("1");
1335         String res = pkgBasicInfoObj.getFormat();
1336         assertEquals(res, "pdf");
1337         res = pkgBasicInfoObj.getProvider();
1338         assertEquals(res, "huawei");
1339         EnumType type = pkgBasicInfoObj.getType();
1340         assertEquals(type, EnumType.GSAR);
1341         res = pkgBasicInfoObj.getVersion();
1342         assertEquals(res, "1");
1343     }
1344
1345     @Test
1346     public void testPackageMetaSetter() {
1347         pkgMetaObj.setCreateTime("05042017");
1348         pkgMetaObj.setCsarId("csarid");
1349         pkgMetaObj.setDeletionPending(true);
1350         pkgMetaObj.setDetails("details");
1351         pkgMetaObj.setDownloadCount(10);
1352         pkgMetaObj.setDownloadUri("//network");
1353         pkgMetaObj.setFormat("pdf");
1354         pkgMetaObj.setModifyTime("05042017");
1355         pkgMetaObj.setName("huawei");
1356         pkgMetaObj.setProvider("huawei");
1357         pkgMetaObj.setRemarks("tested");
1358         pkgMetaObj.setReport("done");
1359         pkgMetaObj.setShortDesc("done");
1360         pkgMetaObj.setSize("1000");
1361         pkgMetaObj.setType("type");
1362         pkgMetaObj.setVersion("1");
1363
1364         String res = pkgMetaObj.getCreateTime();
1365         assertEquals(res, "05042017");
1366         res = pkgMetaObj.getCsarId();
1367         assertEquals(res, "csarid");
1368         res = pkgMetaObj.getDetails();
1369         assertEquals(res, "details");
1370         res = pkgMetaObj.getDownloadCount() + "";
1371         assertEquals(res, "10");
1372         res = pkgMetaObj.getDownloadUri();
1373         assertEquals(res, "//network");
1374         res = pkgMetaObj.getFormat();
1375         assertEquals(res, "pdf");
1376         res = pkgMetaObj.getModifyTime();
1377         assertEquals(res, "05042017");
1378         res = pkgMetaObj.getName();
1379         assertEquals(res, "huawei");
1380         res = pkgMetaObj.getProvider();
1381         assertEquals(res, "huawei");
1382         res = pkgMetaObj.getRemarks();
1383         assertEquals(res, "tested");
1384         res = pkgMetaObj.getReport();
1385         assertEquals(res, "done");
1386         res = pkgMetaObj.getShortDesc();
1387         assertEquals(res, "done");
1388         res = pkgMetaObj.getSize();
1389         assertEquals(res, "1000");
1390         res = pkgMetaObj.getType();
1391         assertEquals(res, "type");
1392         res = pkgMetaObj.getVersion();
1393         assertEquals(res, "1");
1394     }
1395
1396     @Test
1397     public void testPackageResponseSetter() {
1398         pkgResponseObj.setReportPath("localpath");
1399         String res = pkgResponseObj.getReportPath();
1400         assertEquals(res, "localpath");
1401
1402     }
1403
1404     @Test
1405     public void testCsarFileUriResSetter() {
1406         csarFileUriResObj.setDownloadUri("downloaduri");
1407         csarFileUriResObj.setLocalPath("localpath");
1408         String res = csarFileUriResObj.getDownloadUri();
1409         assertEquals(res, "downloaduri");
1410         res = csarFileUriResObj.getLocalPath();
1411         assertEquals(res, "localpath");
1412
1413     }
1414 }