@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"); } }
@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"); } }
@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(); }