@Override public void addObjectAt(RoadUser newObj, Point pos) { if (newObj instanceof MovingRoadUser) { checkArgument( !occupiedNodes.containsValue(pos), "A MovingRoadUser can not be added on an already occupied position " + "%s.", pos); occupiedNodes.put((MovingRoadUser) newObj, pos); } super.addObjectAt(newObj, pos); }
final MovingRoadUser car3 = new TestRoadUser(); model.addObjectAt(car1, SW); assertTrue(model.hasRoadUserOn(SW, SE));
public void testIsOccupied() { final MovingRoadUser car = new TestRoadUser(); model.addObjectAt(car, SW); assertThat(model.hasRoadUserOn(SW, NW)).isTrue(); assertThat(model.getRoadUsersOn(SW, NW)).containsExactly(car);
/** * Tests removals when a connection is occupied. */ @Test public void testRemoveConnectionOccupied() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); model.moveTo(user, NW, hour(1)); // remove everything except the connection with the user on it model.getGraph().removeConnection(NW, SW); model.getGraph().removeNode(NE); model.getGraph().removeNode(SE); assertEquals(1, model.getGraph().getConnections().size()); assertEquals(2, model.getGraph().getNodes().size()); // attempt removal of occupied conn, should fail boolean fail = false; try { model.getGraph().removeConnection(SW, NW); } catch (final IllegalStateException e) { fail = true; } assertThat(fail).isEqualTo(isGraphModCheckEnabled); }
/** * Test removal of object. */ @Test public void testRemoveObject() { final MovingRoadUser car = new TestRoadUser(); boolean fail = false; try { model.removeObject(car); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); model.addObjectAt(car, NW); model.removeObject(car); assertTrue(model.getObjects().isEmpty()); assertFalse(model.hasRoadUserOn(NW, NE)); }
/** * Tests the removal of a connection which was previously occupied. */ @Test public void testRemovePrevOccupiedCon() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); model.moveTo(user, NW, hour(1)); assertTrue(model.hasRoadUserOn(SW, NW)); model.moveTo(user, NE, hour(10)); assertFalse(model.hasRoadUserOn(SW, NW)); assertTrue(model.hasRoadUserOn(NW, NE)); model.getGraph().removeConnection(SW, NW); }
public void testRemoveConnCornerOccupied() { boolean fail = false; model.addObjectAt(new TestRoadUser(), SW); model.getGraph().removeNode(SE); model.getGraph().removeConnection(SW, NW);
public void testModifyGraphUpdateShortestPath() { final TestRoadUser tru = new TestRoadUser(); model.addObjectAt(tru, SW); model.moveTo(tru, NW, hour(1));