Browse Source

Added unit test for parser quit processing

git-svn-id: http://svn.dmdirc.com/trunk@3830 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Chris Smith 16 years ago
parent
commit
7dff3b5492
1 changed files with 113 additions and 0 deletions
  1. 113
    0
      test/com/dmdirc/parser/ProcessQuitTest.java

+ 113
- 0
test/com/dmdirc/parser/ProcessQuitTest.java View File

@@ -0,0 +1,113 @@
1
+/*
2
+ * Copyright (c) 2006-2008 Chris Smith, Shane Mc Cormack, Gregory Holmes
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.parser;
24
+
25
+import com.dmdirc.parser.callbacks.CallbackNotFoundException;
26
+
27
+import com.dmdirc.parser.callbacks.interfaces.IChannelQuit;
28
+import com.dmdirc.parser.callbacks.interfaces.IQuit;
29
+import org.junit.Test;
30
+import static org.junit.Assert.*;
31
+
32
+public class ProcessQuitTest extends junit.framework.TestCase {
33
+    
34
+    @Test
35
+    public void testChannelQuit() throws CallbackNotFoundException {
36
+        final TestParser parser = new TestParser();
37
+
38
+        parser.injectConnectionStrings();
39
+
40
+        parser.injectLine(":nick JOIN #DMDirc_testing");
41
+        parser.injectLine(":server 353 nick = #DMDirc_testing :@nick +luser");
42
+        parser.injectLine(":server 366 nick #DMDirc_testing :End of /NAMES list.");
43
+        parser.injectLine(":nick JOIN #DMDirc_testing2");
44
+        parser.injectLine(":server 353 nick = #DMDirc_testing2 :@nick +luser2");
45
+        parser.injectLine(":server 366 nick #DMDirc_testing2 :End of /NAMES list.");        
46
+        
47
+        final ICQTest test = new ICQTest();
48
+        parser.getCallbackManager().addCallback("OnChannelQuit", test);
49
+        
50
+        parser.injectLine(":luser!foo@barsville QUIT :Bye bye, cruel world");
51
+        
52
+        assertNotNull(test.channel);
53
+        assertNotNull(test.cclient);
54
+        assertNotNull(test.reason);
55
+        
56
+        assertEquals(1, test.count);
57
+        assertEquals("#DMDirc_testing", test.channel.getName());
58
+        assertEquals("luser", test.cclient.getClient().getNickname());
59
+        assertEquals("Bye bye, cruel world", test.reason);
60
+    }
61
+    
62
+    @Test
63
+    public void testGlobalQuit() throws CallbackNotFoundException {
64
+        final TestParser parser = new TestParser();
65
+
66
+        parser.injectConnectionStrings();
67
+
68
+        parser.injectLine(":nick JOIN #DMDirc_testing");
69
+        parser.injectLine(":server 353 nick = #DMDirc_testing :@nick +luser");
70
+        parser.injectLine(":server 366 nick #DMDirc_testing :End of /NAMES list.");
71
+        parser.injectLine(":nick JOIN #DMDirc_testing2");
72
+        parser.injectLine(":server 353 nick = #DMDirc_testing2 :@nick +luser2");
73
+        parser.injectLine(":server 366 nick #DMDirc_testing2 :End of /NAMES list.");
74
+        
75
+        final ICQTest test = new ICQTest();
76
+        parser.getCallbackManager().addCallback("OnQuit", test);
77
+        
78
+        parser.injectLine(":luser!foo@barsville QUIT :Bye bye, cruel world");
79
+        
80
+        assertNotNull(test.client);
81
+        assertNotNull(test.reason);
82
+        
83
+        assertEquals(1, test.count);
84
+        assertEquals("luser", test.client.getNickname());
85
+        assertEquals("Bye bye, cruel world", test.reason);
86
+    }    
87
+    
88
+    private class ICQTest implements IChannelQuit, IQuit {
89
+        
90
+        public ChannelInfo channel;
91
+        public ChannelClientInfo cclient;
92
+        public ClientInfo client;
93
+        public String reason;
94
+        public int count = 0;
95
+
96
+        public void onChannelQuit(IRCParser tParser, ChannelInfo cChannel,
97
+                                  ChannelClientInfo cChannelClient,
98
+                                  String sReason) {
99
+            this.channel = cChannel;
100
+            this.cclient = cChannelClient;
101
+            this.reason = sReason;
102
+            this.count++;
103
+        }
104
+
105
+        public void onQuit(IRCParser tParser, ClientInfo cClient, String sReason) {
106
+            this.client = cClient;
107
+            this.reason = sReason;
108
+            this.count++;
109
+        }
110
+        
111
+    }
112
+
113
+}

Loading…
Cancel
Save