@Test(expected = IllegalArgumentException.class) public void createWhileIllegal() throws IllegalArgumentException { f.createWhile( new HerePosition(), new Print(new True()), null); // Dit gaat wel, maar gaat illegalArgumentException throwen }
@Test public void createWhile() throws Exception { // new While(new HerePosition(),new Print(new True()));// Dit lukt niet new While(new False(), new Print(new False())); Expression<Boolean> condition = f.createIsAlive(f.createAny(null), null); Statement body = f.createPrint(new LiteralPosition(0, 0, 0), null); Statement whileStmt = f.createWhile(condition, body, null); Unit test = w.spawnUnit(false); runStatementFor(u, whileStmt, 0.1, 0.01); // No exceptions // Task is still running: assertTrue(u.getTask() != null); assertEquals(1, u.getFaction().getScheduler().getNbTasks()); test.terminate(); advanceTimeFor(w, 0.1, 0.01); // Check whether task successfully finished assertEquals(null, u.getTask()); assertEquals(0, u.getFaction().getScheduler().getNbTasks()); }
@Test public void createBreak() throws Exception { Expression<Boolean> condition = f.createTrue(null); Statement body = f.createIf(new CarriesItem(new This()), f.createBreak(null), null, null); Statement stmt = f.createWhile(condition, body, null); runStatementFor(u, stmt, 0.2); // Task is still running: assertTrue(u.getTask() != null); assertEquals(1, u.getFaction().getScheduler().getNbTasks()); new Boulder(w, u); advanceTimeFor(w, 0.2); // Check whether task successfully finished assertEquals(null, u.getTask()); assertEquals(0, u.getFaction().getScheduler().getNbTasks()); }