use of org.kie.dmn.api.core.DMNRuntime in project drools by kiegroup.
the class DMNAssemblerTest method testStrictModeProp.
@Test
public void testStrictModeProp() {
final KieServices services = KieServices.Factory.get();
final KieFileSystem fileSystem = services.newKieFileSystem();
KieModuleModel moduleModel = services.newKieModuleModel();
moduleModel.setConfigurationProperty("org.kie.dmn.strictConformance", "true");
fileSystem.writeKModuleXML(moduleModel.toXML());
fileSystem.write(services.getResources().newClassPathResource("strictMode.dmn", this.getClass()));
services.newKieBuilder(fileSystem).buildAll();
final KieContainer container = services.newKieContainer(services.getRepository().getDefaultReleaseId());
DMNRuntime runtime = container.newKieSession().getKieRuntime(DMNRuntime.class);
DMNModel model = runtime.getModel("http://www.trisotech.com/dmn/definitions/_ecf4ea54-2abc-4e2f-a101-4fe14e356a46", "strictMode");
DMNContext ctx = runtime.newContext();
ctx.set("timestring", "2016-12-20T14:30:22z");
DMNResult result = runtime.evaluateAll(model, ctx);
assertNull(result.getDecisionResultByName("time").getResult());
}
use of org.kie.dmn.api.core.DMNRuntime in project drools by kiegroup.
the class DMNCompilerTest method testImport.
@Test
public void testImport() {
System.out.println(null instanceof Definitions);
DMNRuntime runtime = DMNRuntimeUtil.createRuntimeWithAdditionalResources("Importing_Model.dmn", this.getClass(), "Imported_Model.dmn");
DMNModel importedModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df36", "Imported Model");
assertThat(importedModel, notNullValue());
for (DMNMessage message : importedModel.getMessages()) {
LOG.debug("{}", message);
}
DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edab52", "Importing Model");
assertThat(dmnModel, notNullValue());
for (DMNMessage message : dmnModel.getMessages()) {
LOG.debug("{}", message);
}
DMNContext context = runtime.newContext();
context.set("A Person", mapOf(entry("name", "John"), entry("age", 47)));
DMNResult evaluateAll = runtime.evaluateAll(dmnModel, context);
for (DMNMessage message : evaluateAll.getMessages()) {
LOG.debug("{}", message);
}
LOG.debug("{}", evaluateAll);
assertThat(evaluateAll.getDecisionResultByName("Greeting").getResult(), is("Hello John!"));
}
use of org.kie.dmn.api.core.DMNRuntime in project drools by kiegroup.
the class DMNDecisionTableHitPolicyTest method testSimpleDecisionTableHitPolicyPriority.
@Test
public void testSimpleDecisionTableHitPolicyPriority() {
final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0004-simpletable-P.dmn", this.getClass());
final DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/kie-dmn", "0004-simpletable-P");
assertThat(dmnModel, notNullValue());
final DMNContext context = getSimpleTableContext(BigDecimal.valueOf(70), "Medium", true);
final DMNContext result = evaluateSimpleTableWithContext(dmnModel, runtime, context);
assertThat(result.get("Approval Status"), is("Declined"));
}
use of org.kie.dmn.api.core.DMNRuntime in project drools by kiegroup.
the class DMNDecisionTableHitPolicyTest method testSimpleDecisionTableHitPolicyUniqueNullWarn.
@Test
public void testSimpleDecisionTableHitPolicyUniqueNullWarn() {
final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0004-simpletable-U-noinputvalues.dmn", this.getClass());
final DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/kie-dmn", "0004-simpletable-U-noinputvalues");
assertThat(dmnModel, notNullValue());
final DMNContext context = getSimpleTableContext(BigDecimal.valueOf(18), "ASD", false);
final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
final DMNContext result = dmnResult.getContext();
assertThat(result.get("Approval Status"), nullValue());
assertTrue(dmnResult.getMessages().size() > 0);
assertTrue(dmnResult.getMessages().stream().anyMatch(dm -> dm.getSeverity().equals(DMNMessage.Severity.WARN) && dm.getFeelEvent() instanceof HitPolicyViolationEvent && dm.getFeelEvent().getSeverity().equals(FEELEvent.Severity.WARN)));
}
use of org.kie.dmn.api.core.DMNRuntime in project drools by kiegroup.
the class DMNDecisionTableHitPolicyTest method testDecisionTableHitPolicyUnique.
@Test
public void testDecisionTableHitPolicyUnique() {
final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("BranchDistribution.dmn", this.getClass());
final DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_cdf29af2-959b-4004-8271-82a9f5a62147", "Dessin 1");
assertThat(dmnModel, notNullValue());
final DMNContext context = DMNFactory.newContext();
context.set("Branches dispersion", "Province");
context.set("Number of Branches", BigDecimal.valueOf(10));
final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(dmnResult.hasErrors(), is(false));
final DMNContext result = dmnResult.getContext();
assertThat(result.get("Branches distribution"), is("Medium"));
}
Aggregations