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