Search in sources :

Example 6 with ExecutableBuilder

use of org.kie.api.runtime.builder.ExecutableBuilder in project drools by kiegroup.

the class BatchRunFluentTest method testSetAndGetWithCommandRegisterWithEnds.

@Test
public void testSetAndGetWithCommandRegisterWithEnds() {
    ExecutableBuilder f = ExecutableBuilder.create();
    f.newApplicationContext("app1").getKieContainer(releaseId).newSession().set("s1").end().getKieContainer(releaseId).newSession().set("s2").end().get("s1", KieSessionFluent.class).insert("h1").fireAllRules().end().get("s2", KieSessionFluent.class).insert("h2").fireAllRules().end().get("s1", KieSessionFluent.class).getGlobal("outS").out("outS1").dispose().get("s2", KieSessionFluent.class).getGlobal("outS").out("outS2").dispose();
    RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable());
    // Check that nothing went to the 'out'
    assertEquals("h1", requestContext.get("outS1"));
    assertEquals("h2", requestContext.get("outS2"));
}
Also used : ExecutableBuilder(org.kie.api.runtime.builder.ExecutableBuilder) KieSessionFluent(org.kie.api.runtime.builder.KieSessionFluent) RequestContext(org.kie.api.runtime.RequestContext) Test(org.junit.Test)

Example 7 with ExecutableBuilder

use of org.kie.api.runtime.builder.ExecutableBuilder in project drools by kiegroup.

the class BatchRunFluentTest method testConversationScope.

@Test
public void testConversationScope() {
    ExecutableRunner<RequestContext> runner = ExecutableRunner.create();
    ExecutableBuilder f = ExecutableBuilder.create();
    f.newApplicationContext("app1").startConversation().getKieContainer(releaseId).newSession().insert("h1").fireAllRules().getGlobal("outS").set("outS1", Scope.CONVERSATION).dispose();
    RequestContextImpl requestContext = (RequestContextImpl) runner.execute(f.getExecutable());
    // check that nothing went to the 'out'
    assertEquals(null, requestContext.get("outS"));
    String conversationId = requestContext.getConversationContext().getName();
    assertEquals("h1", requestContext.getConversationContext().get("outS1"));
    // Make another request, add to conversation context, assert old and new values are there.
    f = new ExecutableBuilderImpl();
    f.getApplicationContext("app1").joinConversation(conversationId).getKieContainer(releaseId).newSession().insert("h2").fireAllRules().getGlobal("outS").set("outS2", Scope.CONVERSATION).dispose();
    requestContext = (RequestContextImpl) runner.execute(f.getExecutable());
    assertEquals("h1", requestContext.getConversationContext().get("outS1"));
    assertEquals("h2", requestContext.getConversationContext().get("outS2"));
    // End the conversation, check it's now null
    f = new ExecutableBuilderImpl();
    f.endConversation(conversationId);
    requestContext = (RequestContextImpl) runner.execute(f.getExecutable());
    assertNull(requestContext.getConversationContext());
}
Also used : ExecutableBuilderImpl(org.drools.core.fluent.impl.ExecutableBuilderImpl) ExecutableBuilder(org.kie.api.runtime.builder.ExecutableBuilder) RequestContextImpl(org.drools.core.command.RequestContextImpl) RequestContext(org.kie.api.runtime.RequestContext) Test(org.junit.Test)

Example 8 with ExecutableBuilder

use of org.kie.api.runtime.builder.ExecutableBuilder in project drools by kiegroup.

the class BatchRunFluentTest method testApplicationScope.

@Test
public void testApplicationScope() {
    ExecutableRunner<RequestContext> runner = ExecutableRunner.create();
    ExecutableBuilder f = ExecutableBuilder.create();
    f.newApplicationContext("app1").getKieContainer(releaseId).newSession().insert("h1").fireAllRules().getGlobal("outS").set("outS1", Scope.APPLICATION).dispose();
    RequestContext requestContext = runner.execute(f.getExecutable());
    // Check that nothing went to the 'out'
    assertEquals(null, requestContext.get("outS"));
    assertEquals("h1", requestContext.getApplicationContext().get("outS1"));
    // Make another request, add to application context, assert old and new values are there.
    f = new ExecutableBuilderImpl();
    f.getApplicationContext("app1").getKieContainer(releaseId).newSession().insert("h2").fireAllRules().getGlobal("outS").set("outS2", Scope.APPLICATION).dispose();
    requestContext = (RequestContextImpl) runner.execute(f.getExecutable());
    assertEquals("h1", requestContext.getApplicationContext().get("outS1"));
    assertEquals("h2", requestContext.getApplicationContext().get("outS2"));
}
Also used : ExecutableBuilderImpl(org.drools.core.fluent.impl.ExecutableBuilderImpl) ExecutableBuilder(org.kie.api.runtime.builder.ExecutableBuilder) RequestContext(org.kie.api.runtime.RequestContext) Test(org.junit.Test)

Example 9 with ExecutableBuilder

use of org.kie.api.runtime.builder.ExecutableBuilder in project drools by kiegroup.

the class BatchRunFluentTest method testOutWithoutPriorSetAndNoName.

@Test
public void testOutWithoutPriorSetAndNoName() {
    ExecutableBuilder f = ExecutableBuilder.create();
    f.newApplicationContext("app1").getKieContainer(releaseId).newSession().insert("h1").fireAllRules().getGlobal("outS").out().dispose();
    try {
        RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable());
        assertEquals("h1", requestContext.get("out1"));
        fail("Must throw Exception, as no prior set was called and no name given to out");
    } catch (Exception e) {
    }
}
Also used : ExecutableBuilder(org.kie.api.runtime.builder.ExecutableBuilder) RequestContext(org.kie.api.runtime.RequestContext) Test(org.junit.Test)

Example 10 with ExecutableBuilder

use of org.kie.api.runtime.builder.ExecutableBuilder in project drools by kiegroup.

the class BatchRunFluentTest method testOutName.

@Test
public void testOutName() {
    ExecutableBuilder f = ExecutableBuilder.create();
    f.newApplicationContext("app1").getKieContainer(releaseId).newSession().insert("h1").fireAllRules().getGlobal("outS").out("outS").dispose();
    RequestContext requestContext = ExecutableRunner.create().execute(f.getExecutable());
    assertEquals("h1", requestContext.get("outS"));
}
Also used : ExecutableBuilder(org.kie.api.runtime.builder.ExecutableBuilder) RequestContext(org.kie.api.runtime.RequestContext) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)11 RequestContext (org.kie.api.runtime.RequestContext)11 ExecutableBuilder (org.kie.api.runtime.builder.ExecutableBuilder)11 ExecutableBuilderImpl (org.drools.core.fluent.impl.ExecutableBuilderImpl)3 KieSessionFluent (org.kie.api.runtime.builder.KieSessionFluent)2 RequestContextImpl (org.drools.core.command.RequestContextImpl)1