ActorMove[] moves = new ActorMove[] {
new ActorMove(fantomas, n2, null),
new ActorMove(joker, n1, null)
};
g.placeActors(new MessageMove(moves));
moves = new ActorMove[] {
new ActorMove(poirot, n4, null),
new ActorMove(batman, n3, null),
new ActorMove(japp, n5, null),
};
g.placeActors(new MessageMove(moves));
assertSame(n2, fantomas.getCurrentPosition());
assertSame(n1, joker.getCurrentPosition());
assertSame(n4, poirot.getCurrentPosition());
assertSame(n3, batman.getCurrentPosition());
assertSame(n5, japp.getCurrentPosition());
moves = new ActorMove[] {
new ActorMove(batman, n2, bus),
new ActorMove(japp, n6, tram),
};
g.moveActors(g.getActors(ClientType.DETECTIVE), new MessageMove(moves));
assertSame(n4, poirot.getCurrentPosition());
assertSame(n2, batman.getCurrentPosition());
assertSame(n6, japp.getCurrentPosition());
moves = new ActorMove[] {
new ActorMove(batman, n3, bus),
new ActorMove(japp, n5, tram),
};
try {
g.moveActors(g.getActors(ClientType.DETECTIVE), new MessageMove(moves));
fail("Mesage verification failed - one of the detectives did not move");
}
catch(ProtocolException e) {
}
}