Fix output of stats command for missing joined or forced channels.
[xudocci.git] / src / test / java / net / pterodactylus / xdcc / ui / stdin / StatsCommandTest.java
1 package net.pterodactylus.xdcc.ui.stdin;
2
3 import static java.util.Arrays.asList;
4 import static java.util.Collections.emptyList;
5 import static net.pterodactylus.xdcc.data.Network.builder;
6 import static org.hamcrest.MatcherAssert.assertThat;
7 import static org.hamcrest.Matchers.is;
8 import static org.mockito.Mockito.mock;
9 import static org.mockito.Mockito.when;
10
11 import java.io.IOException;
12 import java.io.StringWriter;
13
14 import net.pterodactylus.xdcc.core.Core;
15 import net.pterodactylus.xdcc.data.ConnectedNetwork;
16
17 import org.junit.Before;
18 import org.junit.Test;
19
20 /**
21  * TODO
22  *
23  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
24  */
25 public class StatsCommandTest {
26
27         private final Core core = mock(Core.class);
28         private final StatsCommand command =
29                         new StatsCommand(core);
30
31         @Before
32         public void setupCore() {
33                 ConnectedNetwork network1 = new ConnectedNetwork(
34                                 builder("TestNet").build(),
35                                 "irc.test.net",
36                                 6667,
37                                 "Nickname1",
38                                 asList("#channel1", "#channel2"),
39                                 emptyList(),
40                                 17,
41                                 445
42                 );
43                 ConnectedNetwork network2 = new ConnectedNetwork(
44                                 builder("DummyNet").build(),
45                                 "irc.dummy.net",
46                                 6789,
47                                 "Nickname2",
48                                 asList("#dummy1", "#dummy2"),
49                                 asList("#foo", "#bar"),
50                                 65,
51                                 234
52                 );
53                 ConnectedNetwork network3 = new ConnectedNetwork(
54                                 builder("FooNet").build(),
55                                 "irc.foo.net",
56                                 7000,
57                                 "Nickname3",
58                                 emptyList(),
59                                 emptyList(),
60                                 118,
61                                 1234
62                 );
63                 ConnectedNetwork network4 = new ConnectedNetwork(
64                                 builder("BarNet").build(),
65                                 "irc.bar.net",
66                                 7001,
67                                 "Nickname4",
68                                 emptyList(),
69                                 asList("#foo", "#bar"),
70                                 4,
71                                 21
72                 );
73                 when(core.connectedNetworks()).thenReturn(asList(network1, network2, network3, network4));
74         }
75
76         @Test
77         public void extendedStatsDumpContainsTheCorrectData() throws IOException {
78                 StringWriter writer = new StringWriter();
79                 command.execute(null, emptyList(), writer);
80                 String result = writer.toString();
81                 assertThat(result, is(
82                                 "Connected to TestNet via irc.test.net:6667.\n" +
83                                 "  Joined #channel1, #channel2.\n" +
84                                 "  17 bots serving 445 packs.\n" +
85                                 "Connected to DummyNet via irc.dummy.net:6789.\n" +
86                                 "  Joined #dummy1, #dummy2, force-joined #foo, #bar.\n" +
87                                 "  65 bots serving 234 packs.\n" +
88                                 "Connected to FooNet via irc.foo.net:7000.\n" +
89                                 "  118 bots serving 1234 packs.\n" +
90                                 "Connected to BarNet via irc.bar.net:7001.\n" +
91                                 "  Force-joined #foo, #bar.\n" +
92                                 "  4 bots serving 21 packs.\n" +
93                                 "Total: 204 bots, 1934 packs.\n"
94                 ));
95         }
96
97 }