package edu.uw.zookeeper; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import edu.uw.zookeeper.Cfg.DynamicServer.Role; @RunWith(JUnit4.class) public class TestCfg { @Test public void testServer() { int id = 1; Cfg.Server value = Cfg.Server.valueOf(id); assertEquals(id, value.getId()); assertEquals(value, Cfg.Server.valueOf(value.toString())); } @Test public void testStaticServer() { String hostname = "125.23.63.23"; int leaderPort = 1234; int electionPort = 1235; String input = Cfg.StaticServer.toString(hostname, leaderPort, electionPort); Cfg.StaticServer value = Cfg.StaticServer.valueOf(input); staticServerEquals(value, hostname, leaderPort, electionPort); input = Cfg.StaticServer.toString(hostname, leaderPort); value = Cfg.StaticServer.valueOf(input); staticServerEquals(value, hostname, leaderPort, Cfg.StaticServer.DEFAULT_ELECTION_PORT); input = Cfg.StaticServer.toString(leaderPort, electionPort); value = Cfg.StaticServer.valueOf(input); staticServerEquals(value, Cfg.StaticServer.DEFAULT_HOSTNAME, leaderPort, electionPort); input = Cfg.StaticServer.toString(leaderPort); value = Cfg.StaticServer.valueOf(input); staticServerEquals(value, Cfg.StaticServer.DEFAULT_HOSTNAME, leaderPort, Cfg.StaticServer.DEFAULT_ELECTION_PORT); } protected static void staticServerEquals(Cfg.StaticServer value, String hostname, int leaderPort, int electionPort) { assertEquals(hostname, value.getHostname()); assertEquals(leaderPort, value.getLeaderPort()); assertEquals(electionPort, value.getElectionPort()); } @Test public void testDynamicServer() { // examples from Apache website String address = "125.23.63.23"; int leaderPort = 1234; int electionPort = 1235; int clientPort = 1236; String input = Cfg.DynamicServer.toString(address, leaderPort, electionPort, clientPort); Cfg.DynamicServer value = Cfg.DynamicServer.valueOf(input); dynamicServerEquals(value, address, leaderPort, electionPort, Cfg.DynamicServer.DEFAULT_ROLE, Cfg.DynamicServer.DEFAULT_CLIENT_ADDRESS, clientPort); for (Role role: Role.values()) { input = Cfg.DynamicServer.toString(address, leaderPort, electionPort, role, clientPort); value = Cfg.DynamicServer.valueOf(input); dynamicServerEquals(value, address, leaderPort, electionPort, role, Cfg.DynamicServer.DEFAULT_CLIENT_ADDRESS, clientPort); } String clientAddress = "125.23.63.24"; input = Cfg.DynamicServer.toString(address, leaderPort, electionPort, clientAddress, clientPort); value = Cfg.DynamicServer.valueOf(input); dynamicServerEquals(value, address, leaderPort, electionPort, Cfg.DynamicServer.DEFAULT_ROLE, clientAddress, clientPort); Role role = Role.PARTICIPANT; input = Cfg.DynamicServer.toString(address, leaderPort, electionPort, role, clientAddress, clientPort); value = Cfg.DynamicServer.valueOf(input); dynamicServerEquals(value, address, leaderPort, electionPort, role, clientAddress, clientPort); } protected static void dynamicServerEquals(Cfg.DynamicServer value, String address, int leaderPort, int electionPort, Role role, String clientAddress, int clientPort) { assertEquals(address, value.getAddress()); assertEquals(leaderPort, value.getLeaderPort()); assertEquals(electionPort, value.getElectionPort()); assertEquals(role, value.getRole()); assertEquals(clientAddress, value.getClientAddress()); assertEquals(clientPort, value.getClientPort()); } }