1 29 30 package echo2example.chatserver.test; 31 32 import echo2example.chatserver.Log; 33 import echo2example.chatserver.Message; 34 import echo2example.chatserver.Server; 35 import junit.framework.TestCase; 36 37 40 public class ServerTest extends TestCase { 41 42 private static final String REMOTE_HOST = "192.168.0.20"; 43 44 public void testAuthenticationAndPosting() { 45 Log.setLogStream(null); 46 Server server = new Server(); 47 String bobAuthToken = server.addUser("Bob.Smith", REMOTE_HOST); 48 assertNotNull(bobAuthToken); 49 String sallyAuthToken = server.addUser("Sally.Jones", REMOTE_HOST); 50 assertNotNull(sallyAuthToken); 51 assertNull(server.addUser("Bob.Smith", REMOTE_HOST)); 52 assertTrue(server.postMessage("Bob.Smith", bobAuthToken, REMOTE_HOST, "Hi, everyone!")); 53 assertFalse(server.postMessage("Bob.Smith", sallyAuthToken, REMOTE_HOST, "Hi, everyone!")); 54 assertFalse(server.postMessage("Bob.Smith", null, REMOTE_HOST, "Hi, everyone!")); 55 assertFalse(server.postMessage("Bob.Smith", bobAuthToken + "x", REMOTE_HOST, "Hi, everyone!")); 56 assertTrue(server.postMessage("Sally.Jones", sallyAuthToken, REMOTE_HOST, "Hi, Bob!")); 57 } 58 59 public void testMessageRetrieval() 60 throws InterruptedException { 61 Server server = new Server(); 62 Message[] messages; 63 long lastRetrievedId; 64 65 messages = server.getRecentMessages(); 67 assertEquals(0, messages.length); 68 69 String bobAuthToken = server.addUser("Bob.Smith", REMOTE_HOST); 70 71 messages = server.getRecentMessages(); 73 assertEquals(1, messages.length); 74 75 for (int i = 0; i < 10; ++i) { 77 server.postMessage("Bob.Smith", bobAuthToken, REMOTE_HOST, Integer.toString(i)); 78 } 79 80 messages = server.getMessages(-1); 82 assertEquals(11, messages.length); 83 assertEquals("0", messages[1].getContent()); 84 assertEquals("1", messages[2].getContent()); 85 assertEquals("9", messages[10].getContent()); 86 87 lastRetrievedId = messages[10].getId(); 88 89 messages = server.getRecentMessages(); 91 assertEquals(11, messages.length); 92 assertEquals("0", messages[1].getContent()); 93 assertEquals("1", messages[2].getContent()); 94 assertEquals("9", messages[10].getContent()); 95 96 for (int i = 10; i < 20; ++i) { 98 server.postMessage("Bob.Smith", bobAuthToken, REMOTE_HOST, Integer.toString(i)); 99 } 100 101 messages = server.getMessages(lastRetrievedId); 103 assertEquals(10, messages.length); 104 assertEquals("10", messages[0].getContent()); 105 assertEquals("11", messages[1].getContent()); 106 assertEquals("19", messages[9].getContent()); 107 108 lastRetrievedId = messages[9].getId(); 109 110 for (int i = 20; i < 1020; ++i) { 112 server.postMessage("Bob.Smith", bobAuthToken, REMOTE_HOST, Integer.toString(i)); 113 } 114 115 messages = server.getMessages(lastRetrievedId); 117 assertEquals(1000, messages.length); 118 assertEquals("20", messages[0].getContent()); 119 assertEquals("21", messages[1].getContent()); 120 assertEquals("520", messages[500].getContent()); 121 assertEquals("1018", messages[998].getContent()); 122 assertEquals("1019", messages[999].getContent()); 123 124 messages = server.getMessages(messages[500].getId()); 126 assertEquals(499, messages.length); 127 assertEquals("521", messages[0].getContent()); 128 assertEquals("1019", messages[498].getContent()); 129 130 messages = server.getRecentMessages(); 132 assertEquals(15, messages.length); 133 assertEquals("1005", messages[0].getContent()); 134 assertEquals("1006", messages[1].getContent()); 135 assertEquals("1019", messages[14].getContent()); 136 137 lastRetrievedId = messages[14].getId(); 138 139 server.postMessage("Bob.Smith", bobAuthToken, REMOTE_HOST, "\u0416\u066f"); 141 messages = server.getMessages(lastRetrievedId); 142 assertEquals("\u0416\u066f", messages[0].getContent()); 143 } 144 } 145 | Popular Tags |