### Question:
WorldServerMessageFactory extends ServerMessageFactory { public Message generateForcedStateMessage(MoveState forcedState) { Message forcedStateMessage = MessageRegistry.getInstance().createMessage("ForceStateMessage"); forcedStateMessage.setArgument("relativeAngle", forcedState.angle.getRelativeAngle()); forcedStateMessage.setArgument("absoluteAngle", forcedState.angle.getAbsoluteAngle()); forcedStateMessage.setArgument("xCoordinate", forcedState.position.getXCoordinate()); forcedStateMessage.setArgument("yCoordinate", forcedState.position.getYCoordinate()); forcedStateMessage.setArgument("timeOfForce", forcedState.timeOfChange); return forcedStateMessage; }  Message generateNewlyVisibleMessage(WorldObject object); List<Message> generateChangeStateMessages(Actor changedActor); Message generateForcedStateMessage(MoveState forcedState); Message generateActorMoveSpeedMessage(double moveSpeed); Message generateNewlyInvisibleMessage(WorldObject object); Message generateWorldLoginResponse(); Message generateWorldFileResponse(byte[] worldFileBytes); Message generateWorldChecksumResponse(byte[] checkSum);  }### Answer:
@Test public void testGenerateForcedStateMessage() { MoveState forcedState = new MoveState(new Angle(), Vector2D.ORIGIN, 0); Message message = worldServerMessageFactory.generateForcedStateMessage(forcedState); assertEquals(message.name, "ForceStateMessage"); assertEquals(message.getArgument("relativeAngle"), forcedState.angle.getRelativeAngle()); assertEquals(message.getArgument("absoluteAngle"), forcedState.angle.getAbsoluteAngle()); assertEquals(message.getArgument("xCoordinate"), forcedState.position.getXCoordinate()); assertEquals(message.getArgument("yCoordinate"), forcedState.position.getYCoordinate()); assertEquals(message.getArgument("timeOfForce"), clientHandler.getServer().getCycleStartTime()); }