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