Browse Source

TestParser and TestParserFactory can now fiddle a network name into the 005s

ServerManager unit tests now use TestParser to prevent rapid connection/disconnection to illegal addresses
Added unit test for ServerManager.getServersByNetwork

git-svn-id: http://svn.dmdirc.com/trunk@4307 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Chris Smith 16 years ago
parent
commit
ba1bc66ddd

+ 48
- 8
test/com/dmdirc/ServerManagerTest.java View File

@@ -23,9 +23,12 @@
23 23
 package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.config.IdentityManager;
26
+import com.dmdirc.harness.parser.TestParserFactory;
26 27
 import com.dmdirc.ui.dummy.DummyController;
27
-
28 28
 import com.dmdirc.ui.dummy.DummyQueryWindow;
29
+
30
+import java.util.ArrayList;
31
+
29 32
 import org.junit.Before;
30 33
 import org.junit.Test;
31 34
 import static org.junit.Assert.*;
@@ -51,7 +54,8 @@ public class ServerManagerTest extends junit.framework.TestCase {
51 54
     @Test
52 55
     public void testRegisterServer() {
53 56
         final Server server = new Server("255.255.255.255", 6667, "", false,
54
-                IdentityManager.getProfiles().get(0));
57
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
58
+                new TestParserFactory());
55 59
         
56 60
         final ServerManager instance = ServerManager.getServerManager();
57 61
         
@@ -63,7 +67,8 @@ public class ServerManagerTest extends junit.framework.TestCase {
63 67
     @Test
64 68
     public void testUnregisterServer() {
65 69
         final Server server = new Server("255.255.255.255", 6667, "", false,
66
-                IdentityManager.getProfiles().get(0));
70
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
71
+                new TestParserFactory());
67 72
         
68 73
         server.close();
69 74
         
@@ -79,7 +84,8 @@ public class ServerManagerTest extends junit.framework.TestCase {
79 84
         assertEquals(instance.getServers().size(), instance.numServers());
80 85
         
81 86
         final Server server = new Server("255.255.255.255", 6667, "", false,
82
-                IdentityManager.getProfiles().get(0));
87
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
88
+                new TestParserFactory());
83 89
         
84 90
         assertEquals(instance.getServers().size(), instance.numServers());
85 91
         
@@ -91,9 +97,11 @@ public class ServerManagerTest extends junit.framework.TestCase {
91 97
     @Test
92 98
     public void testGetServerFromFrame() {
93 99
         final Server serverA = new Server("255.255.255.255", 6667, "", false,
94
-                IdentityManager.getProfiles().get(0));
100
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
101
+                new TestParserFactory());
95 102
         final Server serverB = new Server("255.255.255.254", 6667, "", false,
96
-                IdentityManager.getProfiles().get(0));
103
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
104
+                new TestParserFactory());
97 105
         
98 106
         final ServerManager sm = ServerManager.getServerManager();
99 107
         
@@ -108,9 +116,11 @@ public class ServerManagerTest extends junit.framework.TestCase {
108 116
     @Test
109 117
     public void testGetServerByAddress() {
110 118
         final Server serverA = new Server("255.255.255.255", 6667, "", false,
111
-                IdentityManager.getProfiles().get(0));
119
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
120
+                new TestParserFactory());
112 121
         final Server serverB = new Server("255.255.255.254", 6667, "", false,
113
-                IdentityManager.getProfiles().get(0));
122
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
123
+                new TestParserFactory());
114 124
         
115 125
         final ServerManager sm = ServerManager.getServerManager();
116 126
         
@@ -122,4 +132,34 @@ public class ServerManagerTest extends junit.framework.TestCase {
122 132
         serverB.close();
123 133
     }    
124 134
     
135
+    @Test
136
+    public void testGetServerByNetwork() throws InterruptedException {
137
+        final Server serverA = new Server("255.255.255.255", 6667, "", false,
138
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
139
+                new TestParserFactory("Net1"));
140
+        final Server serverB = new Server("255.255.255.254", 6667, "", false,
141
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
142
+                new TestParserFactory("Net2"));
143
+        final Server serverC = new Server("255.255.255.254", 6667, "", false,
144
+                IdentityManager.getProfiles().get(0), new ArrayList<String>(),
145
+                new TestParserFactory("Net2"));
146
+        
147
+        Thread.sleep(1000); // Time for parsers to connect
148
+        
149
+        final ServerManager sm = ServerManager.getServerManager();
150
+        
151
+        assertEquals(1, sm.getServersByNetwork("Net1").size());
152
+        assertEquals(serverA, sm.getServersByNetwork("Net1").get(0));
153
+        
154
+        assertEquals(2, sm.getServersByNetwork("Net2").size());
155
+        assertEquals(serverB, sm.getServersByNetwork("Net2").get(0));
156
+        assertEquals(serverC, sm.getServersByNetwork("Net2").get(1));
157
+        
158
+        assertEquals(0, sm.getServersByAddress("Net3").size());
159
+        
160
+        serverA.close();
161
+        serverB.close();
162
+        serverC.close();
163
+    }
164
+    
125 165
 }

+ 3
- 0
test/com/dmdirc/harness/parser/TestParser.java View File

@@ -30,6 +30,8 @@ import java.util.Timer;
30 30
 public class TestParser extends IRCParser {
31 31
 
32 32
     public final List<String> sentLines = new ArrayList<String>();
33
+    
34
+    public String network = null;
33 35
 
34 36
     public TestParser() {
35 37
         super();
@@ -62,6 +64,7 @@ public class TestParser extends IRCParser {
62 64
             ":server 003 nick :This server was created Sun Jan 6 2008 at 17:34:54 CET",
63 65
             ":server 004 nick server.net foo dioswkgxRXInP bRIeiklmnopstvrDcCNuMT bklov",
64 66
             ":server 005 nick WHOX WALLCHOPS WALLVOICES USERIP PREFIX=(ov)@+ " +
67
+                    (network == null ? "" : "NETWORK=" + network + " ") +
65 68
                     ":are supported by this server",
66 69
             ":server 005 nick MAXNICKLEN=15 TOPICLEN=250 AWAYLEN=160 MODES=6 " +
67 70
                     "CHANMODES=bIeR,k,l,imnpstrDducCNMT :are supported by this server",

+ 17
- 1
test/com/dmdirc/harness/parser/TestParserFactory.java View File

@@ -29,9 +29,25 @@ import com.dmdirc.parser.ServerInfo;
29 29
 
30 30
 public class TestParserFactory extends ParserFactory {
31 31
 
32
+    protected String network;
33
+
34
+    public TestParserFactory() {
35
+        this(null);
36
+    }
37
+
38
+    public TestParserFactory(String network) {
39
+        this.network = network;
40
+    }
41
+    
32 42
     @Override
33 43
     public IRCParser getParser(MyInfo myInfo, ServerInfo serverInfo) {
34
-        return new TestParser(myInfo, serverInfo);
44
+        final TestParser parser = new TestParser(myInfo, serverInfo);
45
+        
46
+        if (this.network != null) {
47
+            parser.network = network;
48
+        }
49
+        
50
+        return parser;
35 51
     }
36 52
 
37 53
 }

Loading…
Cancel
Save