1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.example.haiku;
20
21 import org.apache.mina.core.service.IoHandler;
22 import org.apache.mina.core.session.IoSession;
23 import org.jmock.Mock;
24 import org.jmock.MockObjectTestCase;
25
26
27
28
29 public class HaikuValidatorIoHandlerTest extends MockObjectTestCase {
30 private IoHandler handler;
31
32 @Override
33 protected void setUp() throws Exception {
34 super.setUp();
35
36 handler = new HaikuValidatorIoHandler();
37 }
38
39 public void testValidHaiku() throws Exception {
40 Mock session = mock(IoSession.class);
41 session.expects(once()).method("write").with(eq("HAIKU!"));
42 IoSession sessionProxy = (IoSession) session.proxy();
43
44 handler.messageReceived(sessionProxy, new Haiku(
45 "Oh, I drank too much.", "Why, oh why did I sign up",
46 "For an eight thirty?"));
47 }
48
49 public void testInvalidHaiku() throws Exception {
50 Mock session = mock(IoSession.class);
51 session.expects(once()).method("write").with(
52 eq("NOT A HAIKU: phrase 1, 'foo' had 1 syllables, not 5"));
53 IoSession sessionProxy = (IoSession) session.proxy();
54
55 handler.messageReceived(sessionProxy,
56 new Haiku("foo", "a haiku", "poo"));
57 }
58 }