1 package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
7 import java.io.IOException;
8 import java.nio.file.Files;
9 import java.nio.file.Paths;
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;
21 @RunWith(SpringRunner.class)
22 @SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
23 @ActiveProfiles("test")
24 public class NetworkServiceDescriptorParserTest {
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";
30 private NetworkServiceDescriptorParser objUnderTest;
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());
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());
49 public void testEmptyEtsiNsd_ableToParserIt() throws IOException {
50 assertFalse(objUnderTest.parser(new byte[] {}).isPresent());
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());
59 private String getAbsolutePath(final String path) {
60 final File file = new File(path);
61 return file.getAbsolutePath();