@Test @DecisionResource(resource = RESULT_TEST_DMN) public void testMultipleResults() { DmnDecisionTableResult decisionResult = evaluateWithMatchingRules(NO_OUTPUT_VALUE, SINGLE_OUTPUT_VALUE, MULTIPLE_OUTPUT_VALUES); assertThat(decisionResult).hasSize(3); DmnDecisionRuleResult ruleResult = decisionResult.get(0); assertNoOutputValue(ruleResult); ruleResult = decisionResult.get(1); assertSingleOutputValue(ruleResult); ruleResult = decisionResult.get(2); assertMultipleOutputValues(ruleResult); ruleResult = decisionResult.getFirstResult(); assertNoOutputValue(ruleResult); try { decisionResult.getSingleResult(); failBecauseExceptionWasNotThrown(DmnDecisionResultException.class); } catch (DmnDecisionResultException e) { assertThat(e) .hasMessageStartingWith("DMN-01008") .hasMessageContaining("singleValue") .hasMessageContaining("multipleValues1") .hasMessageContaining("multipleValues2"); } }
@Test @DecisionResource(resource = RESULT_TEST_DMN) public void testNoResult() { DmnDecisionTableResult results = evaluateWithMatchingRules(); assertThat(results).isEmpty(); assertThat(results.getFirstResult()).isNull(); assertThat(results.getSingleResult()).isNull(); }
@Test @DecisionResource(resource = RESULT_TEST_DMN) public void testSingleResult() { DmnDecisionTableResult results = evaluateWithMatchingRules(SINGLE_OUTPUT_VALUE); assertThat(results).hasSize(1); assertSingleOutputValue(results.get(0)); assertSingleOutputValue(results.getFirstResult()); assertSingleOutputValue(results.getSingleResult()); }
@Test @DecisionResource(resource = RESULT_TEST_DMN) public void testValueMap() { DmnDecisionTableResult decisionResult = evaluateWithMatchingRules(MULTIPLE_OUTPUT_VALUES); DmnDecisionRuleResult ruleResult = decisionResult.getSingleResult(); assertThat(ruleResult).hasSize(2); Map<String, Object> entryMap = ruleResult.getEntryMap(); assertThat(entryMap).hasSize(2); assertThat(entryMap).containsEntry("firstOutput", "multipleValues1"); assertThat(entryMap).containsEntry("secondOutput", "multipleValues2"); }