338fe2792d49ccd2f9c955404aa20c343aef89c0
[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                                 asList("#forced"),
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                 when(core.connectedNetworks()).thenReturn(asList(network1, network2));
54         }
55
56         @Test
57         public void extendedStatsDumpContainsTheCorrectData() throws IOException {
58                 StringWriter writer = new StringWriter();
59                 command.execute(null, emptyList(), writer);
60                 String result = writer.toString();
61                 assertThat(result, is(
62                                 "Connected to TestNet via irc.test.net:6667.\n" +
63                                 "  Joined #channel1, #channel2, force-joined #forced.\n" +
64                                 "  17 bots serving 445 packs.\n" +
65                                 "Connected to DummyNet via irc.dummy.net:6789.\n" +
66                                 "  Joined #dummy1, #dummy2, force-joined #foo, #bar.\n" +
67                                 "  65 bots serving 234 packs.\n" +
68                                 "Total: 82 bots, 679 packs.\n"
69                 ));
70         }
71
72 }