use of org.kie.dmn.api.core.DMNContext in project drools by kiegroup.
the class DMNRuntimeTest method testBoxedContext.
@Test
public void testBoxedContext() {
DMNRuntime runtime = DMNRuntimeUtil.createRuntime("BoxedContext.dmn", this.getClass());
DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_0de36357-fec0-4b4e-b7f1-382d381e06e9", "Dessin 1");
assertThat(dmnModel, notNullValue());
assertThat(DMNRuntimeUtil.formatMessages(dmnModel.getMessages()), dmnModel.hasErrors(), is(false));
DMNContext context = DMNFactory.newContext();
context.set("a", 10);
context.set("b", 5);
DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.hasErrors(), is(false));
assertThat((Map<String, Object>) dmnResult.getContext().get("Math"), hasEntry("Sum", BigDecimal.valueOf(15)));
assertThat((Map<String, Object>) dmnResult.getContext().get("Math"), hasEntry("Product", BigDecimal.valueOf(50)));
}
use of org.kie.dmn.api.core.DMNContext in project drools by kiegroup.
the class DMNRuntimeTest method testDrools2125.
@Test
public void testDrools2125() {
// DROOLS-2125
DMNRuntime runtime = DMNRuntimeUtil.createRuntime("drools2125.dmn", this.getClass());
DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/definitions/_9f976b29-4cdd-42e9-8737-0ccbc2ad9498", "drools2125");
assertThat(dmnModel, notNullValue());
assertThat(DMNRuntimeUtil.formatMessages(dmnModel.getMessages()), dmnModel.hasErrors(), is(false));
DMNContext context = DMNFactory.newContext();
context.set("person", "Bob");
context.set("list of persons", Arrays.asList("Bob", "John"));
DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.hasErrors(), is(false));
DMNContext result = dmnResult.getContext();
assertThat(result.get("person is Bob"), is("yes"));
assertThat(result.get("persons complies with UT list"), is("yes"));
assertThat(result.get("person on the list of persons"), is("yes"));
assertThat(result.get("persons complies with hardcoded list"), is("yes"));
assertThat(result.get("person is person"), is("yes"));
}
use of org.kie.dmn.api.core.DMNContext in project drools by kiegroup.
the class DMNRuntimeTest method testInvokeFunctionWrongDecisionName.
@Test
public void testInvokeFunctionWrongDecisionName() {
DMNRuntime runtime = DMNRuntimeUtil.createRuntimeWithAdditionalResources("Caller.dmn", this.getClass(), "Calling.dmn");
DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/definitions/_b0a696d6-3d57-4e97-b5d4-b44a63909d67", "Caller");
assertThat(dmnModel, notNullValue());
DMNContext wrongContext = DMNFactory.newContext();
wrongContext.set("My Name", "John Doe");
wrongContext.set("My Number", 3);
wrongContext.set("Call ns", "http://www.trisotech.com/definitions/_88156d21-3acc-43b6-8b81-385caf0bb6ca");
wrongContext.set("Call name", "Calling");
wrongContext.set("Invoke decision", "<unexistent decision>");
DMNResult dmnResult = runtime.evaluateAll(dmnModel, wrongContext);
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.hasErrors(), is(true));
// total of: 2. x1 error in calling external decision, and x1 error in making final decision as it depends on the former.
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.getMessages().size(), is(2));
}
use of org.kie.dmn.api.core.DMNContext in project drools by kiegroup.
the class DMNRuntimeTest method testNull.
@Test
public void testNull() {
DMNRuntime runtime = DMNRuntimeUtil.createRuntime("null_values.dmn", this.getClass());
DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/kie-dmn", "Null values model");
assertThat(dmnModel, notNullValue());
assertThat(DMNRuntimeUtil.formatMessages(dmnModel.getMessages()), dmnModel.hasErrors(), is(false));
DMNContext context = runtime.newContext();
context.set("Null Input", null);
DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.hasErrors(), is(false));
DMNContext result = dmnResult.getContext();
assertThat(result.get("Null value"), is("Input is null"));
context = runtime.newContext();
context.set("Null Input", "foo");
dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(DMNRuntimeUtil.formatMessages(dmnResult.getMessages()), dmnResult.hasErrors(), is(false));
result = dmnResult.getContext();
assertThat(result.get("Null value"), is("Input is not null"));
}
use of org.kie.dmn.api.core.DMNContext in project drools by kiegroup.
the class DMNRuntimeTest method testArtificialAttributes.
@Test
public void testArtificialAttributes() {
DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0001-input-data-string-artificial-attributes.dmn", this.getClass());
DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/drools", "0001-input-data-string");
assertThat(dmnModel, notNullValue());
DMNContext context = DMNFactory.newContext();
context.set("Full Name", "John Doe");
DMNResult dmnResult = runtime.evaluateAll(dmnModel, context);
assertThat(dmnResult.getDecisionResults().size(), is(1));
assertThat(dmnResult.getDecisionResultByName("Greeting Message").getResult(), is("Hello John Doe"));
DMNContext result = dmnResult.getContext();
assertThat(result.get("Greeting Message"), is("Hello John Doe"));
}
Aggregations