@Test public void testUnitLambdaInitializer() { ExecutableBuilder f = ExecutableBuilder.create(); DataSource<Person> people = DataSource.create( new Person("Mario", 10), new Person("Daniele", 30), new Person("Mark", 90)); f.newApplicationContext("app1") .getKieContainer(releaseIdUnit) .newRuleUnitExecutor() .bindVariable("people", people) .run((() -> new AdultUnitDifferentDataSourceName(people))) .out("firedRules") .dispose(); RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable()); assertEquals(1, requestContext.getOutputs().get("firedRules")); }
@Test public void testUnit() { ExecutableBuilder f = ExecutableBuilder.create(); f.newApplicationContext("app1") .getKieContainer(releaseIdUnit) .newRuleUnitExecutor() .createDataSource(Person.class) .addBinding("persons") .insert(new Person("Mario", 10)) .insert(new Person("Daniele", 30)) .insert(new Person("Mark", 40)) .buildDataSource() .run(AdultUnit.class) .out("firedRules") .dispose(); RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable()); assertEquals(2, requestContext.getOutputs().get("firedRules")); }
@Test public void testUnitMultipleBinding() { ExecutableBuilder f = ExecutableBuilder.create(); f.newApplicationContext("app1") .getKieContainer(releaseIdUnit) .newRuleUnitExecutor() .createDataSource(Person.class) .addBinding("persons").addBinding("people") .insert(new Person("Mario", 40)) .insert(new Person("Daniele", 30)) .insert(new Person("Mark", 90)) .buildDataSource() .run(AdultUnit.class) .out("firedRules1") .run(AdultUnitDifferentDataSourceName.class) .out("firedRules2") .dispose(); RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable()); assertEquals(3, requestContext.getOutputs().get("firedRules1")); assertEquals(1, requestContext.getOutputs().get("firedRules2")); }
@Test public void testUnitNoBinding() { ExecutableBuilder f = ExecutableBuilder.create(); f.newApplicationContext("app1") .getKieContainer(releaseIdUnit) .newRuleUnitExecutor() .createDataSource(Person.class) .insert(new Person("Mario", 10)) .insert(new Person("Daniele", 30)) .insert(new Person("Mark", 40)) .buildDataSource() .run(AdultUnit.class) .out("firedRulesNoBinding") .dispose(); RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable()); assertEquals(0, requestContext.getOutputs().get("firedRulesNoBinding")); }
@Test public void testUnitLazyVarBinding() { ExecutableBuilder f = ExecutableBuilder.create(); DataSource<Person> people = DataSource.create( new Person("Mario", 10), new Person("Daniele", 30), new Person("Mark", 90)); f.newApplicationContext("app1") .getKieContainer(releaseIdUnit) .newRuleUnitExecutor() .run((() -> new AdultUnitDifferentDataSourceName(people))) .getGlobal("oldName") .set("test") .bindVariableByExpression("lazyVariable", context -> context.get("test")) .get("lazyVariable") .out("firedRules") .dispose(); RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable()); assertEquals("Mark", requestContext.getOutputs().get("firedRules")); }