Browse Source

Add a test for ChannelWhoManager.

pull/364/head
Greg Holmes 9 years ago
parent
commit
5b6fd58538

+ 6
- 2
channelwho/src/com/dmdirc/addons/channelwho/ChannelWhoManager.java View File

28
 import com.dmdirc.interfaces.Connection;
28
 import com.dmdirc.interfaces.Connection;
29
 import com.dmdirc.interfaces.ConnectionManager;
29
 import com.dmdirc.interfaces.ConnectionManager;
30
 
30
 
31
+import com.google.common.annotations.VisibleForTesting;
32
+
31
 import java.util.HashMap;
33
 import java.util.HashMap;
32
 import java.util.Map;
34
 import java.util.Map;
33
 
35
 
77
         }
79
         }
78
     }
80
     }
79
 
81
 
82
+    @VisibleForTesting
80
     @Handler
83
     @Handler
81
-    private void handleServerConnectingEvent(final ServerConnectingEvent event) {
84
+    void handleServerConnectingEvent(final ServerConnectingEvent event) {
82
         addConnectionHandler(event.getConnection());
85
         addConnectionHandler(event.getConnection());
83
     }
86
     }
84
 
87
 
88
+    @VisibleForTesting
85
     @Handler
89
     @Handler
86
-    private void handleServerDisconnectedEvent(final ServerDisconnectedEvent event) {
90
+    void handleServerDisconnectedEvent(final ServerDisconnectedEvent event) {
87
         removeConnectionHandler(event.getConnection());
91
         removeConnectionHandler(event.getConnection());
88
     }
92
     }
89
 
93
 

+ 37
- 1
channelwho/test/com/dmdirc/addons/channelwho/ChannelWhoManagerTest.java View File

23
 package com.dmdirc.addons.channelwho;
23
 package com.dmdirc.addons.channelwho;
24
 
24
 
25
 import com.dmdirc.DMDircMBassador;
25
 import com.dmdirc.DMDircMBassador;
26
+import com.dmdirc.events.ServerConnectingEvent;
27
+import com.dmdirc.events.ServerDisconnectedEvent;
28
+import com.dmdirc.interfaces.Connection;
26
 import com.dmdirc.interfaces.ConnectionManager;
29
 import com.dmdirc.interfaces.ConnectionManager;
27
 
30
 
31
+import com.google.common.collect.Lists;
32
+
28
 import org.junit.Before;
33
 import org.junit.Before;
29
 import org.junit.Test;
34
 import org.junit.Test;
30
 import org.junit.runner.RunWith;
35
 import org.junit.runner.RunWith;
31
 import org.mockito.Mock;
36
 import org.mockito.Mock;
32
 import org.mockito.runners.MockitoJUnitRunner;
37
 import org.mockito.runners.MockitoJUnitRunner;
33
 
38
 
39
+import static org.mockito.Mockito.never;
40
+import static org.mockito.Mockito.verify;
41
+import static org.mockito.Mockito.when;
42
+
34
 @RunWith(MockitoJUnitRunner.class)
43
 @RunWith(MockitoJUnitRunner.class)
35
 public class ChannelWhoManagerTest {
44
 public class ChannelWhoManagerTest {
36
 
45
 
37
     @Mock private ConnectionHandlerFactory connectionHandlerFactory;
46
     @Mock private ConnectionHandlerFactory connectionHandlerFactory;
47
+    @Mock private ConnectionHandler connectionHandler;
38
     @Mock private ConnectionManager connectionManager;
48
     @Mock private ConnectionManager connectionManager;
49
+    @Mock private Connection connection;
50
+    @Mock private Connection connection2;
39
     @Mock private DMDircMBassador eventBus;
51
     @Mock private DMDircMBassador eventBus;
40
 
52
 
41
     private ChannelWhoManager instance;
53
     private ChannelWhoManager instance;
42
 
54
 
43
     @Before
55
     @Before
44
     public void setUp() throws Exception {
56
     public void setUp() throws Exception {
57
+        when(connectionManager.getConnections()).thenReturn(Lists.newArrayList(connection));
58
+        when(connectionHandlerFactory.get(connection)).thenReturn(connectionHandler);
45
         instance = new ChannelWhoManager(connectionHandlerFactory, connectionManager, eventBus);
59
         instance = new ChannelWhoManager(connectionHandlerFactory, connectionManager, eventBus);
60
+        instance.load();
46
     }
61
     }
47
 
62
 
48
     @Test
63
     @Test
49
     public void testLoad() throws Exception {
64
     public void testLoad() throws Exception {
50
-
65
+        verify(eventBus).subscribe(instance);
66
+        verify(connectionHandlerFactory).get(connection);
51
     }
67
     }
52
 
68
 
53
     @Test
69
     @Test
54
     public void testUnload() throws Exception {
70
     public void testUnload() throws Exception {
71
+        instance.unload();
72
+        verify(eventBus).unsubscribe(instance);
73
+        verify(connectionHandler).unload();
74
+    }
55
 
75
 
76
+    @Test
77
+    public void testServerConnectionEvent() throws Exception {
78
+        instance.handleServerConnectingEvent(new ServerConnectingEvent(connection2));
79
+        verify(connectionHandlerFactory).get(connection);
80
+    }
81
+
82
+    @Test
83
+    public void testServerDisconnectionEvent_Existing() throws Exception {
84
+        instance.handleServerDisconnectedEvent(new ServerDisconnectedEvent(connection));
85
+        verify(connectionHandler).unload();
86
+    }
87
+
88
+    @Test
89
+    public void testServerDisconnectionEvent_Unknown() throws Exception {
90
+        instance.handleServerDisconnectedEvent(new ServerDisconnectedEvent(connection2));
91
+        verify(connectionHandler, never()).unload();
56
     }
92
     }
57
 }
93
 }

Loading…
Cancel
Save