@Test public void quest() { final Player player = PlayerTestHelper.createPlayer("player"); final Engine en = hayunn.getEngine(); en.step(player, "hi"); // we assume the player has already completed the meet hayunn quest // so that we know which of the greetings he will use player.setQuest("meet_hayunn", "done"); assertTrue(player.isQuestCompleted("meet_hayunn")); assertTrue(hayunn.isTalking()); assertEquals( "Hi. I bet you've been sent here to learn about adventuring from me. First, lets see what you're made of. Go and kill a rat outside, you should be able to find one easily. Do you want to learn how to attack it, before you go?", getReply(hayunn)); en.step(player, "quest"); assertEquals( "My mouth is dry, but I can't be seen to abandon this teaching room! Could you bring me some #beer from the #tavern?", getReply(hayunn)); en.step(player, "yes"); assertTrue(player.hasQuest("beer_hayunn")); en.step(player, "bye"); assertFalse(hayunn.isTalking()); assertEquals("start", player.getQuest("beer_hayunn")); final StackableItem beer = new StackableItem("beer", "", "", null); beer.setQuantity(1); beer.setID(new ID(2, "testzone")); player.getSlot("bag").add(beer); assertEquals(1, player.getNumberOfEquipped("beer")); en.step(player, "hi"); en.step(player, "yes"); assertEquals("done", player.getQuest("beer_hayunn")); en.step(player, "bye"); // reject final Player player2 = PlayerTestHelper.createPlayer("player"); en.step(player2, "hi"); player2.setQuest("meet_hayunn", "done"); assertTrue(player2.isQuestCompleted("meet_hayunn")); assertTrue(hayunn.isTalking()); assertEquals( "Hi. I bet you've been sent here to learn about adventuring from me. First, lets see what you're made of. Go and kill a rat outside, you should be able to find one easily. Do you want to learn how to attack it, before you go?", getReply(hayunn)); en.step(player2, "quest"); assertEquals( "My mouth is dry, but I can't be seen to abandon this teaching room! Could you bring me some #beer from the #tavern?", getReply(hayunn)); en.step(player2, "no"); assertTrue(player2.hasQuest("beer_hayunn")); assertEquals("rejected", player2.getQuest("beer_hayunn")); en.step(player2, "bye"); }