@Test public void testNowFunction() { final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("today_function_test.dmn", getClass() ); runtime.addListener( DMNRuntimeUtil.createListener() ); final DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_4ad80959-5fd8-46b7-8c9a-ab2fa58cb5b4", "When is it" ); assertThat( dmnModel, notNullValue() ); assertThat( DMNRuntimeUtil.formatMessages( dmnModel.getMessages() ), dmnModel.hasErrors(), is( false ) ); final DMNContext context = DMNFactory.newContext(); context.set( "The date", LocalDate.of(2017, 1, 12 ) ); final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context ); assertThat( DMNRuntimeUtil.formatMessages( dmnResult.getMessages() ), dmnResult.getContext().get("When is it"), is( "It is in the past" ) ); }
runtime.addListener( DMNRuntimeUtil.createListener() );
@Test public void testFiltering() { final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("Person_filtering_by_age.dmn", getClass() ); runtime.addListener( DMNRuntimeUtil.createListener() ); final DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/definitions/_e215ed7a-701b-4c53-b8df-4b4d23d5fe32", "Person filtering by age" ); assertThat( dmnModel, notNullValue() ); assertThat( DMNRuntimeUtil.formatMessages( dmnModel.getMessages() ), dmnModel.hasErrors(), is( false ) ); final DMNContext context = DMNFactory.newContext(); context.set( "Min Age", 50 ); final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context ); assertThat( DMNRuntimeUtil.formatMessages( dmnResult.getMessages() ), ((List)dmnResult.getContext().get("Filtering")).size(), is( 2 ) ); }
@Test public void testTimeFunction() { final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("TimeFromDate.dmn", getClass() ); runtime.addListener( DMNRuntimeUtil.createListener() ); final DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_ecf4ea54-2abc-4e2f-a101-4fe14e356a46", "Dessin 1" ); assertThat( dmnModel, notNullValue() ); assertThat( DMNRuntimeUtil.formatMessages( dmnModel.getMessages() ), dmnModel.hasErrors(), is( false ) ); final DMNContext context = DMNFactory.newContext(); context.set( "datetimestring", "2016-07-29T05:48:23" ); final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context ); assertThat( DMNRuntimeUtil.formatMessages( dmnResult.getMessages() ), dmnResult.getContext().get("time"), is( LocalTime.of( 5, 48, 23 ) ) ); }
runtime.addListener( DMNRuntimeUtil.createListener() );
@Test public void testUninterpreted() { final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0019-flight-rebooking-uninterpreted.dmn", this.getClass() ); final DMNModel dmnModel = runtime.getModel("http://www.trisotech.com/dmn/definitions/_188d6caf-a355-49b5-a692-bd6ce713da08", "0019-flight-rebooking" ); runtime.addListener( DMNRuntimeUtil.createListener() ); assertThat( dmnModel, notNullValue() ); assertThat( DMNRuntimeUtil.formatMessages( dmnModel.getMessages() ), dmnModel.hasErrors(), is(false) ); final DMNContext context = DMNFactory.newContext(); final List passengerList = loadPassengerList(); final List flightList = loadFlightList(); context.set( "Passenger List", passengerList ); context.set( "Flight List", flightList ); final DMNResult dmnResult = runtime.evaluateAll(dmnModel, context ); assertThat( dmnResult.getDecisionResultByName( "Rebooked Passengers" ).getEvaluationStatus(), is( DMNDecisionResult.DecisionEvaluationStatus.SKIPPED ) ); }
@Test public void testDateAndTime() { final DMNRuntime runtime = DMNRuntimeUtil.createRuntime("0007-date-time.dmn", getClass() ); runtime.addListener( DMNRuntimeUtil.createListener() );
runtime.addListener(DMNRuntimeUtil.createListener());