use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class BProgramTest method testAppendSource.
@Test
public void testAppendSource() throws InterruptedException {
String coreSource = "bp.registerBThread(function() {\n" + " bsync( {request: bp.Event(\"1\")} );\n" + " bsync( {request: bp.Event(\"2\")} );\n" + " bsync( {request: bp.Event(\"3\")} );\n" + "});" + "bp.log.info('Source code evaluated');";
String additionalSource = "bp.registerBThread(function(){\n" + " bsync({waitFor: bp.Event(\"2\")});\n" + " bsync({request: bp.Event(\"2a\"),\n" + " block: bp.Event(\"3\")});\n" + "});\n" + "bp.log.info('Additional code evaluated');";
BProgram sanitySut = new StringBProgram(coreSource);
BProgramRunner rnr = new BProgramRunner(sanitySut);
rnr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener el = rnr.addListener(new InMemoryEventLoggingListener());
System.out.println("Sanity run");
rnr.run();
System.out.println("/Sanity run");
System.out.println("");
assertEquals(asList("1", "2", "3"), el.getEvents().stream().map(BEvent::getName).collect(toList()));
System.out.println("Test Run");
BProgram sut = new StringBProgram(coreSource);
sut.appendSource(additionalSource);
rnr.setBProgram(sut);
rnr.run();
assertEquals(asList("1", "2", "2a", "3"), el.getEvents().stream().map(BEvent::getName).collect(toList()));
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class BProgramSyncSnapshotClonerTest method testProgramIsOk.
@Test
public void testProgramIsOk() throws InterruptedException {
BProgramRunner bpr = new BProgramRunner(new SingleResourceBProgram("BProgramSyncSnapshotClonerTest.js"));
bpr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener events = bpr.addListener(new InMemoryEventLoggingListener());
bpr.run();
events.getEvents().forEach(e -> System.out.println(e.toString()));
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class DynamicBThreadAdditionTest method test.
@Test
public void test() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("dynamicBthreadAddition.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
Set<String> expected = new HashSet<>(Arrays.asList("e0", "e1", "e2", "e3"));
assertEquals(expected, eventLogger.getEvents().stream().map(BEvent::getName).collect(toSet()));
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class EventsWithDataTest method testEventsWithData.
@Test
public void testEventsWithData() throws Exception {
BProgram bpr = new SingleResourceBProgram("EventsWithData.js", "programName", new SimpleEventSelectionStrategy(99l));
BProgramRunner rnr = new BProgramRunner(bpr);
rnr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener events = rnr.addListener(new InMemoryEventLoggingListener());
rnr.run();
assertEquals(Arrays.asList("e1", "e2", "e1e2"), events.getEvents().stream().map(BEvent::getName).collect(toList()));
}
use of il.ac.bgu.cs.bp.bpjs.execution.listeners.InMemoryEventLoggingListener in project BPjs by bThink-BGU.
the class ExternalEventsTest method superStepTest.
@Test
public void superStepTest() throws InterruptedException {
final BEvent in1a = new BEvent("in1a");
final BEvent ext1 = new BEvent("ext1");
final BEvent in1b = new BEvent("in1b");
final SingleResourceBProgram bprog = new SingleResourceBProgram("ExternalEvents.js");
bprog.setEventSelectionStrategy(new LoggingEventSelectionStrategyDecorator(bprog.getEventSelectionStrategy()));
final BProgramRunner sut = new BProgramRunner(bprog);
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.getBProgram().enqueueExternalEvent(ext1);
sut.run();
eventLogger.getEvents().forEach(e -> System.out.println(e));
EventPattern expected = new EventPattern().append(in1a).append(ext1).append(in1b);
assertTrue(expected.matches(eventLogger.getEvents()));
}
Aggregations