String getEvent(List<ScuflModelEvent> events, NotifyThread notifier) { // Poke the notifier (again!) so it can process some events and we don't have to wait notifier.interrupt(); ScuflModelEvent event; synchronized (events) { try { events.wait(1000); } catch (InterruptedException e) { // OK } if (events.size() == 0) { fail("Did not get any event"); } assertEquals("Too many events", 1, events.size()); event = events.get(0); events.remove(0); } return event.getMessage(); }
ScuflModel model = new ScuflModel(); String valid_name = model.getValidProcessorName("Fish: and-$problems"); assertEquals("Fish__and__problems", valid_name); model.addProcessor(new Processor(model, valid_name) { public Properties getProperties() { assertEquals(valid_name, model.getProcessors()[0].getName()); assertEquals(1, model.getProcessorsOfType(Processor.class).length); assertEquals(valid_name, model.locateProcessor(valid_name).getName()); assertEquals("Fish__and__problems1", valid_name); model.addProcessor(new Processor(model, valid_name) { public Properties getProperties() { assertEquals(valid_name, model.getProcessors()[1].getName()); model.setOffline(true); model.locatePortOrCreate(port_name, true); assertEquals("input1", model.locatePort(port_name).getName());
assertEquals("Forced update", getEvent(events, model.notifyThread)); model.setOffline(true); assertEquals("Offline status change", getEvent(events, model.notifyThread)); model.addProcessor(new Processor(model, "proc"){ public Properties getProperties() { assertTrue(notifyThread.loop); model.clear(); assertEquals("Reset model to initial state.", getEvent(events, model.notifyThread));
public void testConstruction() { ScuflModel model = new ScuflModel(); assertFalse(model.offline); ArrayAssert.assertEquals(new Processor[0], model.getProcessors()); ArrayAssert.assertEquals(new DataConstraint[0], model .getDataConstraints()); ArrayAssert.assertEquals(new ConcurrencyConstraint[0], model .getConcurrencyConstraints()); ArrayAssert.assertEquals(new ScuflModelEventListener[0], model .getListeners()); ArrayAssert.assertEquals(new Port[0], model.getWorkflowSinkPorts()); ArrayAssert.assertEquals(new Port[0], model.getWorkflowSourcePorts()); assertNotNull(model.getDescription()); // NOTE: the log level does not seem to be used for anything assertEquals(0, model.getLogLevel()); }