1 package games.stendhal.server.core.rp.pvp; 2 3 import static org.hamcrest.CoreMatchers.is; 4 import static org.hamcrest.CoreMatchers.notNullValue; 5 import static org.hamcrest.CoreMatchers.nullValue; 6 import static org.junit.Assert.assertThat; 7 8 import org.junit.Before; 9 import org.junit.Test; 10 11 import games.stendhal.server.entity.player.Player; 12 import games.stendhal.server.maps.MockStendlRPWorld; 13 import utilities.PlayerTestHelper; 14 15 /** 16 * Tests for the challenge manager 17 * 18 * @author markus 19 */ 20 public class PlayerVsPlayerChallengeManagerTest { 21 22 private PlayerVsPlayerChallengeManager manager; 23 private Player challenger; 24 private Player challenged; 25 26 @Before before()27 public void before() { 28 MockStendlRPWorld.reset(); 29 manager = PlayerVsPlayerChallengeManager.create(); 30 challenger = PlayerTestHelper.createPlayer("challenger"); 31 challenged = PlayerTestHelper.createPlayer("challenged"); 32 } 33 34 @Test testCreateChallenge()35 public void testCreateChallenge() { 36 manager.createChallenge(challenger, challenged, 0); 37 PlayerVsPlayerChallenge challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 38 assertThat(challenge, notNullValue()); 39 assertThat(challenge.isAccepted(), is(Boolean.FALSE)); 40 assertThat(challenge.getOpened(), is(Long.valueOf(0))); 41 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.FALSE)); 42 } 43 44 @Test testCreateChallengeAndAccept()45 public void testCreateChallengeAndAccept() throws Exception { 46 manager.createChallenge(challenger, challenged, 0); 47 PlayerVsPlayerChallenge challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 48 assertThat(challenge, notNullValue()); 49 assertThat(challenge.isAccepted(), is(Boolean.FALSE)); 50 assertThat(challenge.getOpened(), is(Long.valueOf(0))); 51 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.FALSE)); 52 manager.accpetChallenge(challenger, challenged, 1); 53 challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 54 assertThat(challenge, nullValue()); 55 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.TRUE)); 56 } 57 58 @Test testCreateChallengeAndTimeout()59 public void testCreateChallengeAndTimeout() throws Exception { 60 manager.createChallenge(challenger, challenged, 0); 61 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.FALSE)); 62 63 PlayerVsPlayerChallenge challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 64 assertThat(challenge, notNullValue()); 65 assertThat(challenge.isAccepted(), is(Boolean.FALSE)); 66 assertThat(challenge.getOpened(), is(Long.valueOf(0))); 67 68 manager.timeOutCurrentChallenges(PlayerVsPlayerChallengeManager.TIMEOUT_FOR_ACCEPTANCE + 1); 69 challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 70 assertThat(challenge, nullValue()); 71 } 72 73 @Test testCreateChallengeAndLogout()74 public void testCreateChallengeAndLogout() throws Exception { 75 manager.createChallenge(challenger, challenged, 0); 76 77 PlayerVsPlayerChallenge challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 78 assertThat(challenge, notNullValue()); 79 assertThat(challenge.isAccepted(), is(Boolean.FALSE)); 80 assertThat(challenge.getOpened(), is(Long.valueOf(0))); 81 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.FALSE)); 82 83 manager.onLoggedOut(challenger); 84 challenge = manager.getOpenChallengeForPlayers(challenger, challenged); 85 assertThat(challenge, nullValue()); 86 assertThat(Boolean.valueOf(manager.playersHaveActiveChallenge(challenger, challenged)), is(Boolean.FALSE)); 87 } 88 89 } 90