@Test public void testInviteThenLeave() throws IOException, InterruptedException { ChatServer server = new ChatServer(4445); PipedOutputStream pipe = new PipedOutputStream(); PipedInputStream in = new PipedInputStream(pipe); ByteArrayOutputStream out = new ByteArrayOutputStream(); PipedOutputStream pipe2 = new PipedOutputStream(); PipedInputStream in2 = new PipedInputStream(pipe2); ByteArrayOutputStream out2 = new ByteArrayOutputStream(); PipedOutputStream pipe3 = new PipedOutputStream(); PipedInputStream in3 = new PipedInputStream(pipe3); ByteArrayOutputStream out3 = new ByteArrayOutputStream(); Thread t = new Thread(new User(server, in, out, true, false)); Thread t2 = new Thread(new User(server, in2, out2, true, false)); Thread t3 = new Thread(new User(server, in3, out3, true, false)); t.start(); t2.start(); t3.start(); send(pipe, t, "login cliu 123\n"); send(pipe, t, "create\n"); send(pipe2, t2, "login user2 456\n"); send(pipe, t, "invite user2 0\n"); send(pipe3, t3, "register bleh pass\n"); send(pipe3, t3, "login bleh pass\n"); send(pipe2, t2, "accept 0\n"); send(pipe, t, "invite bleh 0\n"); send(pipe, t, "leave 0\n"); send(pipe3, t3, "accept 0\n"); server.kill(); assertEquals(true, out2.toString().contains("leave cliu 0")); assertEquals(false, out.toString().contains("leave cliu 0")); assertEquals(true, out3.toString().contains("enter bleh 0")); assertEquals(false, out3.toString().contains("leave cliu 0")); }
@Test public void testSinglePersonLeaveRoomDies() throws IOException, InterruptedException { PrintWriter clear = new PrintWriter(new FileOutputStream(new File("src/server/userfile"))); clear.close(); ChatServer server = new ChatServer(4445); PipedOutputStream pipe = new PipedOutputStream(); PipedInputStream in = new PipedInputStream(pipe); ByteArrayOutputStream out = new ByteArrayOutputStream(); Thread t = new Thread(new User(server, in, out, true, false)); t.start(); send(pipe, t, "register cliu 123\n"); send(pipe, t, "login cliu 123\n"); send(pipe, t, "create\n"); send(pipe, t, "leave 0\n"); send(pipe, t, "create\n"); server.kill(); String user1expected = "connection successful\nregisterSuccess cliu\nwelcome cliu\nroomcreated 0\nroomcreated 1\n"; assertEquals(user1expected, out.toString()); }