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