Adding Basic NSD parser
[so.git] / so-etsi-nfvo / so-etsi-nfvo-ns-lcm / so-etsi-nfvo-ns-lcm-bpmn-flows / src / test / java / org / onap / so / etsi / nfvo / ns / lcm / bpmn / flows / nsd / NetworkServiceDescriptorParserTest.java
1 package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6 import java.io.File;
7 import java.io.IOException;
8 import java.nio.file.Files;
9 import java.nio.file.Paths;
10 import java.util.Map;
11 import java.util.Optional;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.TestApplication;
15 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.boot.test.context.SpringBootTest;
17 import org.springframework.test.context.ActiveProfiles;
18 import org.springframework.test.context.junit4.SpringRunner;
19
20
21 @RunWith(SpringRunner.class)
22 @SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
23 @ActiveProfiles("test")
24 public class NetworkServiceDescriptorParserTest {
25
26     private static final String VALID_ETSI_NSD_FILE = "src/test/resources/ns.csar";
27     private static final String INVALID_ETSI_NSD_FILE = "src/test/resources/invalid_ns.csar";
28
29     @Autowired
30     private NetworkServiceDescriptorParser objUnderTest;
31
32     @Test
33     public void testValidEtsiNsd_ableToParserIt() throws IOException {
34         final byte[] zipBytes = Files.readAllBytes(Paths.get(getAbsolutePath(VALID_ETSI_NSD_FILE)));
35         final Optional<NetworkServiceDescriptor> optional = objUnderTest.parser(zipBytes);
36         assertTrue(optional.isPresent());
37         final NetworkServiceDescriptor actualNsd = optional.get();
38         assertEquals(NetworkServiceDescriptorParser.NS_NODE_TYPE, actualNsd.getType());
39         assertFalse(actualNsd.getProperties().isEmpty());
40
41         final Map<String, Object> actualNsdProperties = actualNsd.getProperties();
42         assertEquals(5, actualNsdProperties.size());
43         assertEquals("ffdddc5d-a44b-45ae-8fc3-e6551cce350f", actualNsdProperties.get("descriptor_id"));
44         assertEquals(5, actualNsd.getVnfs().size());
45
46     }
47
48     @Test
49     public void testEmptyEtsiNsd_ableToParserIt() throws IOException {
50         assertFalse(objUnderTest.parser(new byte[] {}).isPresent());
51     }
52
53     @Test
54     public void testInvalidEtsiNsd_ableToParserIt() throws IOException {
55         final byte[] zipBytes = Files.readAllBytes(Paths.get(getAbsolutePath(INVALID_ETSI_NSD_FILE)));
56         assertFalse(objUnderTest.parser(zipBytes).isPresent());
57     }
58
59     private String getAbsolutePath(final String path) {
60         final File file = new File(path);
61         return file.getAbsolutePath();
62     }
63
64 }