package tv.dyndns.kishibe.qmaclone.client.packet;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import tv.dyndns.kishibe.qmaclone.client.game.GameMode;
import tv.dyndns.kishibe.qmaclone.client.game.ProblemGenre;
import tv.dyndns.kishibe.qmaclone.client.game.ProblemType;
import com.google.common.collect.ImmutableSet;
@RunWith(JUnit4.class)
public class PacketRoomKeyTest {
private PacketRoomKey keyEvent1;
private PacketRoomKey keyEvent2;
private PacketRoomKey keyWhole1;
private PacketRoomKey keyWhole2;
private PacketRoomKey keyTheme1;
private PacketRoomKey keyTheme2;
@Before
public void setUp() throws Exception {
keyEvent1 = new PacketRoomKey(GameMode.EVENT, null, ImmutableSet.of(ProblemGenre.Sports),
ImmutableSet.of(ProblemType.YonTaku));
keyEvent2 = new PacketRoomKey(GameMode.EVENT, null, ImmutableSet.of(ProblemGenre.Sports),
ImmutableSet.of(ProblemType.YonTaku));
keyWhole1 = new PacketRoomKey(GameMode.WHOLE, null, ImmutableSet.of(ProblemGenre.Geinou),
ImmutableSet.of(ProblemType.Rensou));
keyWhole2 = new PacketRoomKey(GameMode.WHOLE, null, ImmutableSet.of(ProblemGenre.Geinou,
ProblemGenre.Gakumon), ImmutableSet.of(ProblemType.Rensou, ProblemType.Narabekae));
keyTheme1 = new PacketRoomKey(GameMode.THEME, "THEME", ImmutableSet.of(
ProblemGenre.Zatsugaku, ProblemGenre.Anige), ImmutableSet.of(ProblemType.MojiPanel));
keyTheme2 = new PacketRoomKey(GameMode.THEME, "THEME",
ImmutableSet.of(ProblemGenre.Zatsugaku), ImmutableSet.of(ProblemType.MojiPanel,
ProblemType.Typing));
}
@Test
public void testHashCode() {
assertEquals(keyEvent1.hashCode(), keyEvent2.hashCode());
assertEquals(keyWhole1.hashCode(), keyWhole2.hashCode());
assertEquals(keyTheme1.hashCode(), keyTheme2.hashCode());
}
@Test
public void testEquals() {
assertEquals(keyEvent1, keyEvent2);
assertEquals(keyWhole1, keyWhole2);
assertEquals(keyTheme1, keyTheme2);
}
@Test
public void testPacketRoomKeyGameModeStringSetOfProblemGenreSetOfProblemType() {
assertEquals(ImmutableSet.of(ProblemGenre.Sports), keyEvent1.getGenres());
assertEquals(ImmutableSet.of(ProblemType.YonTaku), keyEvent1.getTypes());
assertEquals("THEME", keyTheme1.getName());
}
}