Stendhal Quest Testing: Difference between revisions
Content deleted Content added
imported>Kymara No edit summary |
imported>Kymara |
||
Line 183:
Finally after fixing one more 'you don't have the cash error', your test should pass!
The completed test looks like:
<source lang="java">
package games.stendhal.server.maps.quests;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static utilities.SpeakerNPCTestHelper.getReply;
import games.stendhal.server.core.engine.SingletonRepository;
import games.stendhal.server.core.engine.StendhalRPZone;
import games.stendhal.server.entity.npc.SpeakerNPC;
import games.stendhal.server.entity.npc.fsm.Engine;
import games.stendhal.server.entity.player.Player;
import games.stendhal.server.maps.semos.pad.DealerNPC;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import utilities.PlayerTestHelper;
import utilities.QuestHelper;
public class RainbowBeansTest {
private Player player = null;
private SpeakerNPC npc = null;
private Engine en = null;
private String questSlot;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
QuestHelper.setUpBeforeClass();
}
@Before
public void setUp() {
final StendhalRPZone zone = new StendhalRPZone("admin_test");
new DealerNPC().configureZone(zone, null);
AbstractQuest quest = new RainbowBeans();
quest.addToWorld();
questSlot = quest.getSlotName();
player = PlayerTestHelper.createPlayer("bob");
}
@Test
public void testQuest() {
npc = SingletonRepository.getNPCList().get("Pdiddi");
en = npc.getEngine();
// -----------------------------------------------
// [11:33] Please note: The test database will be reset every day and all PROGRESS WILL BE LOST.
// [11:33] Synchronized
// [11:33] Your admin level is only 400, but a level of 900 is required to run "alterquest".
// [11:34] Admin superkym changed your state of the quest 'rainbow_beans' from 'bought;1264104887559;taken;1264104889247' to 'null'
// player was too low level last time. make them at leastlevel 50
player.addXP(248800);
assertThat(player.getLevel(), greaterThanOrEqualTo(30));
en.step(player, "hi");
assertEquals("SHHH! Don't want all n' sundry knowin' wot I #deal in.", getReply(npc));
en.step(player, "deal");
assertEquals("Nosy, aint yer? I deal in rainbow beans. You take some, and who knows where the trip will take yer. It'll cost you 2000 money. You want to buy some?", getReply(npc));
en.step(player, "no");
assertEquals("Aight, ain't for everyone. Anythin else you want, you say so.", getReply(npc));
en.step(player, "help");
assertEquals("To be honest mate I can't help you with much, you're better off in the city for that.", getReply(npc));
en.step(player, "quest");
assertEquals("Haven't got anything for you, pal.", getReply(npc));
en.step(player, "job");
assertEquals("I think you already know what I do.", getReply(npc));
en.step(player, "offer");
assertEquals("Ha! The sign on the door's a cover! This is no inn. If you want a drink, you better go back into town.", getReply(npc));
en.step(player, "bye");
assertEquals("Bye.", getReply(npc));
PlayerTestHelper.equipWithMoney(player, 2000);
en.step(player, "hi");
assertEquals("SHHH! Don't want all n' sundry knowin' wot I #deal in.", getReply(npc));
en.step(player, "deal");
assertEquals("Nosy, aint yer? I deal in rainbow beans. You take some, and who knows where the trip will take yer. It'll cost you 2000 money. You want to buy some?", getReply(npc));
en.step(player, "yes");
assertEquals("Alright, here's the beans. Once you take them, you come down in about 30 minutes. And if you get nervous up there, hit one of the green panic squares to take you back here.", getReply(npc));
en.step(player, "bye");
assertEquals("Bye.", getReply(npc));
en.step(player, "hi");
assertEquals("Alright? I hope you don't want more beans. You can't take more of that stuff for at least another 6 hours.", getReply(npc));
en.step(player, "bye");
assertEquals("Bye.", getReply(npc));
// [11:36] Admin superkym changed your state of the quest 'rainbow_beans' from 'bought;1289129695296;taken;-1' to 'bought;0;taken;0'
player.setQuest(questSlot,"bought;0;taken;0");
en.step(player, "hi");
assertEquals("Oi, you. Back for more rainbow beans?", getReply(npc));
en.step(player, "no");
assertEquals("Aight, ain't for everyone. Anythin else you want, you say so.", getReply(npc));
en.step(player, "bye");
assertEquals("Bye.", getReply(npc));
PlayerTestHelper.equipWithMoney(player, 2000);
en.step(player, "hi");
assertEquals("Oi, you. Back for more rainbow beans?", getReply(npc));
en.step(player, "yes");
assertEquals("Alright, here's the beans. Once you take them, you come down in about 30 minutes. And if you get nervous up there, hit one of the green panic squares to take you back here.", getReply(npc));
en.step(player, "bye");
assertEquals("Bye.", getReply(npc));
}
}
</source>
==Tests with more than one NPC==
| |||