+ @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]))
+ );
+ }
+