From 5e89003fa9a6f892c2922658a5c1d3f900b557d9 Mon Sep 17 00:00:00 2001 From: Lianhao Lu Date: Thu, 21 Nov 2019 10:29:08 +0800 Subject: Tolerate subdirectory zip entries in csar Issue-ID: VNFSDK-516 Signed-off-by: Lianhao Lu Change-Id: Ic14e713522871fba5ebce92870ff796624f4a820 --- .../java/org/onap/cvc/csar/FileArchiveTest.java | 35 ++++++++++++++++++++- .../src/test/resources/vnf/noDirectoryEntry.csar | Bin 0 -> 3154 bytes 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 csarvalidation/src/test/resources/vnf/noDirectoryEntry.csar (limited to 'csarvalidation/src/test') diff --git a/csarvalidation/src/test/java/org/onap/cvc/csar/FileArchiveTest.java b/csarvalidation/src/test/java/org/onap/cvc/csar/FileArchiveTest.java index 738b4f6..1c66bbe 100644 --- a/csarvalidation/src/test/java/org/onap/cvc/csar/FileArchiveTest.java +++ b/csarvalidation/src/test/java/org/onap/cvc/csar/FileArchiveTest.java @@ -66,4 +66,37 @@ public class FileArchiveTest { assertTrue(workspace.getPathToCmsFile().isPresent()); } -} \ No newline at end of file + @Test + public void shouldUnpackCsarNoDirectoryEntry() throws URISyntaxException, IOException { + /* + * We should be able to unpack the csar with the following simlary zip entries: + * $ unzip -l /tmp/output1.csar + * Archive: /tmp/output1.csar + * Length Date Time Name + * --------- ---------- ----- ---- + * 0 2019-11-01 14:29 ChangeLog.txt + * 1143 2019-11-01 14:29 test.crt + * 782 2019-11-01 14:29 test_entry.yaml + * 0 2019-11-01 14:29 Tests/test + * 1516 2019-11-12 09:52 test_entry.mf + * 237 2019-11-12 09:52 TOSCA-Metadata/TOSCA.meta + * --------- ------- + * 3678 7 files + */ + + // given + String absolutePath = folder.getRoot().getAbsolutePath(); + + // when + FileArchive.Workspace workspace = new FileArchive(absolutePath).unpack(absoluteFilePath("vnf/noDirectoryEntry.csar")); + + // then + assertFalse(workspace.isZip()); + assertTrue(workspace.getRootFolder().isPresent()); + assertTrue(workspace.getPathToCsarFolder().isPresent()); + assertFalse(workspace.getPathToCertFile().isPresent()); + assertFalse(workspace.getPathToCmsFile().isPresent()); + } + + +} diff --git a/csarvalidation/src/test/resources/vnf/noDirectoryEntry.csar b/csarvalidation/src/test/resources/vnf/noDirectoryEntry.csar new file mode 100644 index 0000000..1868264 Binary files /dev/null and b/csarvalidation/src/test/resources/vnf/noDirectoryEntry.csar differ -- cgit 1.2.3-korg