diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/org/onap/sdc/toscaparser/api/JToscaMetadataParse.java | 58 | ||||
-rw-r--r-- | src/test/resources/csars/tmpCSAR_Huawei_vSPGW_fixed.csar | bin | 43627 -> 45116 bytes | |||
-rw-r--r-- | src/test/resources/csars/tmpCSAR_Huawei_vSPGW_without_required_inputs.csar | bin | 0 -> 43627 bytes |
3 files changed, 52 insertions, 6 deletions
diff --git a/src/test/java/org/onap/sdc/toscaparser/api/JToscaMetadataParse.java b/src/test/java/org/onap/sdc/toscaparser/api/JToscaMetadataParse.java index 3f5290d..2ec41b2 100644 --- a/src/test/java/org/onap/sdc/toscaparser/api/JToscaMetadataParse.java +++ b/src/test/java/org/onap/sdc/toscaparser/api/JToscaMetadataParse.java @@ -20,15 +20,23 @@ package org.onap.sdc.toscaparser.api; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; import java.util.LinkedHashMap; +import java.util.Map; import org.junit.Test; import org.onap.sdc.toscaparser.api.common.JToscaException; +import org.onap.sdc.toscaparser.api.common.JToscaValidationIssue; import org.onap.sdc.toscaparser.api.utils.JToscaErrorCodes; import org.onap.sdc.toscaparser.api.utils.ThreadLocalsHolder; @@ -36,8 +44,7 @@ public class JToscaMetadataParse { @Test public void testMetadataParsedCorrectly() throws JToscaException { - String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/csar_hello_world.csar").getFile(); - File file = new File(fileStr); + final File file = loadCsar("csars/csar_hello_world.csar"); ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); LinkedHashMap<String, Object> metadataProperties = toscaTemplate.getMetaProperties("TOSCA.meta"); assertNotNull(metadataProperties); @@ -48,17 +55,49 @@ public class JToscaMetadataParse { @Test public void noWarningsAfterParse() throws JToscaException { - String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/tmpCSAR_Huawei_vSPGW_fixed.csar").getFile(); - File file = new File(fileStr); + final File file = loadCsar("csars/tmpCSAR_Huawei_vSPGW_fixed.csar"); ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); int validationIssuesCaught = ThreadLocalsHolder.getCollector().validationIssuesCaught(); assertTrue(validationIssuesCaught == 0); } @Test + public void requiredInputErrorsAfterParse() throws JToscaException { + final File file = loadCsar("csars/tmpCSAR_Huawei_vSPGW_without_required_inputs.csar"); + new ToscaTemplate(file.getAbsolutePath(), null, true, null); + + final Map<String, JToscaValidationIssue> validationIssues = ThreadLocalsHolder.getCollector() + .getValidationIssues(); + final Collection<JToscaValidationIssue> actualValidationIssueList = validationIssues.values(); + + final Collection<JToscaValidationIssue> expectedValidationIssueList = new ArrayList<>(); + final String errorCode = "JE003"; + final String errorFormat = "MissingRequiredFieldError: The required input \"%s\" was not provided"; + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "nf_naming_code"))); + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "nf_type"))); + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "nf_role"))); + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "min_instances"))); + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "max_instances"))); + expectedValidationIssueList.add(new JToscaValidationIssue(errorCode + , String.format(errorFormat, "nf_function"))); + + assertThat("The actual and the expected validation issue lists should have the same size" + , actualValidationIssueList, hasSize(expectedValidationIssueList.size()) + ); + + assertThat("The actual and the expected validation issue lists should be the same" + , actualValidationIssueList, containsInAnyOrder(expectedValidationIssueList.toArray(new JToscaValidationIssue[0])) + ); + } + + @Test public void testEmptyCsar() throws JToscaException { - String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/emptyCsar.csar").getFile(); - File file = new File(fileStr); + final File file = loadCsar("csars/emptyCsar.csar"); try { ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); } catch (JToscaException e) { @@ -78,4 +117,11 @@ public class JToscaMetadataParse { assertTrue(e.getCode().equals(JToscaErrorCodes.PATH_NOT_VALID.getValue())); } } + + private File loadCsar(final String csarFilePath) { + final URL resourceUrl = JToscaMetadataParse.class.getClassLoader().getResource(csarFilePath); + assertNotNull(String.format("Could not load CSAR file '%s'", csarFilePath), resourceUrl); + + return new File(resourceUrl.getFile()); + } } diff --git a/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_fixed.csar b/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_fixed.csar Binary files differindex 194fabb..9dc29c7 100644 --- a/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_fixed.csar +++ b/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_fixed.csar diff --git a/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_without_required_inputs.csar b/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_without_required_inputs.csar Binary files differnew file mode 100644 index 0000000..194fabb --- /dev/null +++ b/src/test/resources/csars/tmpCSAR_Huawei_vSPGW_without_required_inputs.csar |