@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"); } }
@Test public void testExecuteClosedDoor() { Player playerTest = game.getPlayer(); int health = playerTest.getHealth(); try { testCommand = testCommand.parse("go north", game); testCommand.execute(); fail( "ERROR: execute does not throw a exception when trying to move in a direction with a closed door"); } catch (WrongCommandFormatException e) { fail("ERROR: parse throws an exception with a correct command"); } catch (CommandExecutionException e) { assertEquals( "ERROR: The command does not move the player but it consumes health", health, playerTest.getHealth()); } }