use of org.omg.dmn.tck.marshaller._20160719.TestCases.TestCase in project tck by dmn-tck.
the class TestCasesFiles method data.
@Parameters(name = "TestCase {0}")
public static Iterable<Object[]> data() {
List<Object[]> testCases = new ArrayList<>();
File cl2parent = new File("../../TestCases/compliance-level-2");
FileFilter filenameFilter = pathname -> pathname.isDirectory();
for (File file : cl2parent.listFiles(filenameFilter)) {
testCases.add(new Object[] { file.getName(), file });
}
File cl3parent = new File("../../TestCases/compliance-level-3");
for (File file : cl3parent.listFiles(filenameFilter)) {
testCases.add(new Object[] { file.getName(), file });
}
return testCases;
}
use of org.omg.dmn.tck.marshaller._20160719.TestCases.TestCase in project tck by dmn-tck.
the class JDMNTckTest method executeTest.
@Override
public TestResult executeTest(Description description, TestSuiteContext context, TestCase testCase) {
List<String> failures = new ArrayList<>();
List<String> exceptions = new ArrayList<>();
try {
JDMNTestContext gsContext = (JDMNTestContext) context;
BasicDMNToJavaTransformer basicTransformer = gsContext.getBasicToJavaTransformer();
StandardFEELLib lib = gsContext.getLib();
DMNInterpreter interpreter = gsContext.getInterpreter();
TCKUtil tckUtil = new TCKUtil(basicTransformer, lib);
TestCases testCases = gsContext.getTestCases();
for (ResultNode res : testCase.getResultNode()) {
String testLocation = String.format("Unexpected result in test for model '%s', TestCase.id='%s', ResultNode.name='%s'.", testCases.getModelName(), testCase.getId(), res.getName());
Object expectedValue = null;
Result actualResult = null;
Object actualValue = null;
try {
expectedValue = tckUtil.expectedValue(testCases, testCase, res);
actualResult = tckUtil.evaluate(interpreter, testCases, testCase, res);
actualValue = Result.value(actualResult);
if (!isEquals(expectedValue, actualValue)) {
String errorMessage = String.format("%s ResultNode '%s' output mismatch, expected '%s' actual '%s'", testLocation, res.getName(), expectedValue, actualValue);
failures.add(errorMessage);
}
if (!IGNORE_ERROR_FLAG) {
String errorFlagMessage = String.format("%s ResultNode '%s' error flag mismatch", testLocation, res.getName());
if (!isEquals(res.isErrorResult(), actualResult.hasErrors())) {
failures.add(errorFlagMessage);
}
}
} catch (Throwable e) {
String stackTrace = ExceptionUtils.getStackTrace(e);
LOGGER.error(stackTrace);
String errorMessage = String.format("%s ResultNode '%s' output mismatch, expected '%s' actual '%s'", testLocation, res.getName(), expectedValue, actualValue);
exceptions.add(errorMessage + ". Exception thrown while testing");
}
}
} catch (Throwable e) {
exceptions.add(e.getMessage());
}
TestResult.Result r = TestResult.Result.SUCCESS;
String message = "";
if (!failures.isEmpty()) {
r = TestResult.Result.ERROR;
message = String.join("\n", failures);
}
if (!exceptions.isEmpty()) {
r = TestResult.Result.ERROR;
message = String.join("\n", exceptions);
}
return new TestResult(r, message);
}
use of org.omg.dmn.tck.marshaller._20160719.TestCases.TestCase in project tck by dmn-tck.
the class TestCasesTest method testRead0001.
@Test
public void testRead0001() throws Exception {
InputStream is = null;
try {
is = getClass().getResourceAsStream("/compliance-level-2/0001-input-data-string/0001-input-data-string-test-01.xml");
TestCases testCases = load(is);
assertNotNull(testCases);
assertEquals(2, testCases.getTestCase().size());
for (TestCase testCase : testCases.getTestCase()) {
for (InputNode inputNode : testCase.getInputNode()) {
if (inputNode.getValue() != null) {
System.out.println("inputNode is simple type with content: " + ((Element) inputNode.getValue().getValue()).getTextContent());
} else {
System.out.println("inputNode is complex: " + inputNode.getComponent());
}
}
}
String json = objectMapper.writeValueAsString(testCases);
// assertions on JSON go here
File testOutputDir = new File(baseOutputDir, "0001-input-data-string");
testOutputDir.mkdirs();
File jsonFile = new File(testOutputDir, "0001-input-data-string-test-01.json");
System.out.println("Writing JSON output to: " + jsonFile.getAbsolutePath());
objectMapper.writerWithDefaultPrettyPrinter().writeValue(jsonFile, testCases);
} finally {
try {
is.close();
} catch (Exception e) {
;
}
}
}
Aggregations