01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.responders.run;
04:
05: import junit.framework.TestCase;
06: import java.util.*;
07: import java.net.Socket;
08: import fitnesse.testutil.*;
09:
10: public class SocketDealerTest extends TestCase {
11: private SocketDealer dealer;
12:
13: private SimpleSocketSeeker seeker;
14:
15: private int ticket;
16:
17: private SimpleDoner doner;
18:
19: public void setUp() throws Exception {
20: dealer = new SocketDealer();
21: }
22:
23: public void tearDown() throws Exception {
24: }
25:
26: public static class SimpleDoner implements SocketDoner {
27: public MockSocket socket = new MockSocket("");
28:
29: boolean finished = false;
30:
31: public Socket donateSocket() {
32: return socket;
33: }
34:
35: public void finishedWithSocket() {
36: finished = true;
37: }
38: }
39:
40: public void testAddSeeker() throws Exception {
41: SocketSeeker seeker = new SimpleSocketSeeker();
42: dealer.seekingSocket(seeker);
43:
44: Collection waiting = dealer.getWaitingList();
45: assertEquals(1, waiting.size());
46: assertTrue(waiting.contains(seeker));
47: }
48:
49: public void testUniqueTicketNumber() throws Exception {
50: int ticketNumber1 = dealer
51: .seekingSocket(new SimpleSocketSeeker());
52: int ticketNumber2 = dealer
53: .seekingSocket(new SimpleSocketSeeker());
54: assertTrue(ticketNumber1 != ticketNumber2);
55: }
56:
57: public void testDealSocketTo() throws Exception {
58: doSimpleDealing();
59: assertSame(doner.socket, seeker.socket);
60: }
61:
62: private void doSimpleDealing() throws Exception {
63: seeker = new SimpleSocketSeeker();
64: ticket = dealer.seekingSocket(seeker);
65: doner = new SimpleDoner();
66: dealer.dealSocketTo(ticket, doner);
67: }
68:
69: public void testDealSocketToMultipleSeekers() throws Exception {
70: SimpleSocketSeeker seeker1 = new SimpleSocketSeeker();
71: SimpleSocketSeeker seeker2 = new SimpleSocketSeeker();
72: int ticket1 = dealer.seekingSocket(seeker1);
73: int ticket2 = dealer.seekingSocket(seeker2);
74: SimpleDoner doner1 = new SimpleDoner();
75: SimpleDoner doner2 = new SimpleDoner();
76: dealer.dealSocketTo(ticket1, doner1);
77: dealer.dealSocketTo(ticket2, doner2);
78:
79: assertSame(doner1.socket, seeker1.socket);
80: assertSame(doner2.socket, seeker2.socket);
81: }
82:
83: public void testSeekerRemovedAfterDeltTo() throws Exception {
84: doSimpleDealing();
85: Collection waiting = dealer.getWaitingList();
86: assertEquals(0, waiting.size());
87: }
88:
89: public void testSeekerIsWaiting() throws Exception {
90: assertFalse(dealer.isWaiting(23));
91: int ticket = dealer.seekingSocket(new SimpleSocketSeeker());
92: assertTrue(dealer.isWaiting(ticket));
93: }
94: }
|