1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.wallace.mina;
20
21 import org.apache.mina.common.IdleStatus;
22 import org.apache.mina.protocol.ProtocolSession;
23 import org.easymock.MockControl;
24
25 import junit.framework.TestCase;
26
27 /***
28 *
29 *
30 * @author rnewson
31 */
32 public final class IMAP4ProtocolHandlerTest extends TestCase {
33
34 private IMAP4ProtocolHandler imap4ProtocolHandler;
35
36 protected void setUp() {
37 imap4ProtocolHandler = new IMAP4ProtocolHandler(null);
38 }
39
40 public void testMessageReceivedRequiresClientMessage() {
41 try {
42 imap4ProtocolHandler.messageReceived(null, new Object());
43 } catch (AssertionError e) {
44 return;
45 }
46 fail("Expected assertion failure.");
47 }
48
49 public void testIdleStatusCannotBeNull() {
50 try {
51 imap4ProtocolHandler.sessionIdle(null, null);
52 } catch (AssertionError e) {
53 return;
54 }
55 fail("Expected assertion failure.");
56 }
57
58 public void testIdleSessionCausesSessionClose() {
59 final MockControl control = MockControl.createStrictControl(ProtocolSession.class);
60 final ProtocolSession protocolSession = (ProtocolSession) control.getMock();
61 control.expectAndReturn(protocolSession.getRemoteAddress(), null);
62 protocolSession.close();
63 control.replay();
64
65 imap4ProtocolHandler.sessionIdle(protocolSession, IdleStatus.BOTH_IDLE);
66 control.verify();
67 }
68
69 public void testUncaughtExceptionCausesSessionClose() {
70 final MockControl control = MockControl.createStrictControl(ProtocolSession.class);
71 final ProtocolSession protocolSession = (ProtocolSession) control.getMock();
72 control.expectAndReturn(protocolSession.getRemoteAddress(), null);
73 protocolSession.close();
74 control.replay();
75
76 imap4ProtocolHandler.exceptionCaught(protocolSession, new Throwable("Unexpected exception."));
77 control.verify();
78 }
79
80
81 }