mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Made discovery more reliable & added docs/tests
- Added unit tests - Added documentation for discovery classes - Improved error handling Tags: #story[1281]
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package seng302.serverDiscovery;
|
||||
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import seng302.discoveryServer.util.ServerListing;
|
||||
import seng302.discoveryServer.util.ServerTable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class ServerTableTest {
|
||||
private static ServerTable serverTable;
|
||||
|
||||
@BeforeClass
|
||||
public static void setup(){
|
||||
serverTable = new ServerTable();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddServer(){
|
||||
ServerListing listing = new ServerListing("", "", "", 12, 12);
|
||||
serverTable.addServer(listing);
|
||||
|
||||
assertTrue(serverTable.getAllServers().contains(listing));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetNextRoomCodeIsUnique(){
|
||||
assertTrue(!Objects.equals(serverTable.getNextRoomCode(), serverTable.getNextRoomCode()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetServerRoomCode(){
|
||||
ServerListing listing = new ServerListing("123", "", "", 12, 12);
|
||||
listing.setRoomCode(serverTable.getNextRoomCode().toString());
|
||||
serverTable.addServer(listing);
|
||||
|
||||
ServerListing result = serverTable.getServerByRoomCode(listing.getRoomCode());
|
||||
|
||||
assertTrue(result.equals(listing));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testServersRemovedOnExpiry() throws InterruptedException {
|
||||
ServerListing listing = new ServerListing("432", "221", "", 12, 12);
|
||||
listing.setTtl(1);
|
||||
|
||||
serverTable.addServer(listing);
|
||||
|
||||
listing.decrementTtl();
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
assertTrue(!serverTable.getAllServers().contains(listing));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package seng302.serverDiscovery;
|
||||
|
||||
import org.junit.Test;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.gameServer.messages.RoomCodeRequest;
|
||||
import seng302.model.stream.packets.PacketType;
|
||||
import seng302.discoveryServer.util.ServerRepoStreamParser;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class testStreamParser {
|
||||
private static ServerRepoStreamParser parser;
|
||||
private static InputStream inputStream;
|
||||
|
||||
private static void setupWithByteArray(byte[] bytes){
|
||||
inputStream = new ByteArrayInputStream(bytes);
|
||||
parser = new ServerRepoStreamParser(inputStream);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseRoomCodeRequest() throws Exception {
|
||||
Message roomCodeMsg = new RoomCodeRequest("1234");
|
||||
setupWithByteArray(roomCodeMsg.getBuffer());
|
||||
|
||||
assertTrue(parser.parse() == PacketType.ROOM_CODE_REQUEST);
|
||||
assertTrue(parser.getRoomCode().equals("1234"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user