コード例 #1
0
  @Test
  public void testExecuteArrivesExit() {
    // Now the target room is an exit room
    targetRoom = new Room(true, "Target");
    map = new MockMap(sourceRoom);
    map.addDoor(sourceRoom, Directions.NORTH, targetRoom);
    game = new MockGame(map);
    // Open the door
    Door retDoor = map.getDoor(sourceRoom, Directions.NORTH);
    retDoor.open();
    try {
      testCommand = testCommand.parse("go north", game);
      testCommand.execute();
      assertEquals(
          "ERROR: execute changes the room through an open door but the player "
              + "arrives to a room that is not the targetRoom",
          targetRoom,
          map.getCurrentRoom());
      assertTrue(
          "ERROR: Player arrives at an exit room but the command does not request to finish the game",
          game.isQuitRequested());

    } catch (WrongCommandFormatException e) {
      fail("ERROR: parse throws an exception with a correct command");
    } catch (CommandExecutionException e) {
      fail(
          "ERROR: execute throws an exception when trying to move in a direction with an open door");
    }
  }
コード例 #2
0
  @Test
  public void testExecuteOpenDoor() {
    Player playerTest = game.getPlayer();
    int health = playerTest.getHealth();
    // Open the door
    Door retDoor = map.getDoor(sourceRoom, Directions.NORTH);
    retDoor.open();
    try {
      testCommand = testCommand.parse("go north", game);
      testCommand.execute();
      assertEquals(
          "ERROR: execute changes the room through an open door but the player "
              + "arrives to a room that is not the targetRoom",
          targetRoom,
          map.getCurrentRoom());
      assertFalse(
          "ERROR: Player arrives at a non-exit room but the command requests to finish the game",
          game.isQuitRequested());
      assertTrue(
          "ERROR: The command moves the player but it does not consume health",
          playerTest.getHealth() < health);

    } catch (WrongCommandFormatException e) {
      fail("ERROR: parse throws an exception with a correct command");
    } catch (CommandExecutionException e) {
      fail(
          "ERROR: execute throws an exception when trying to move in a direction with an open door");
    }
  }
コード例 #3
0
 @Before
 public void setUp() throws Exception {
   sourceRoom = new Room(false, "Source");
   targetRoom = new Room(false, "Target");
   map = new MockMap(sourceRoom);
   map.addDoor(sourceRoom, Directions.NORTH, targetRoom);
   game = new MockGame(map);
   testCommand = new GoCommand();
 }