🚧 Parse token from DCC SEND
[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 import java.time.Duration;
14
15 import net.pterodactylus.xdcc.core.Core;
16 import net.pterodactylus.xdcc.data.ConnectedNetwork;
17
18 import org.junit.Before;
19 import org.junit.Test;
20
21 /**
22  * TODO
23  *
24  * @author <a href="mailto:bombe@pterodactylus.net">David â€˜Bombe’ Roden</a>
25  */
26 public class StatsCommandTest {
27
28         private final Core core = mock(Core.class);
29         private final StatsCommand command =
30                         new StatsCommand(core);
31
32         @Before
33         public void setupCore() {
34                 ConnectedNetwork network1 = new ConnectedNetwork(
35                                 builder("TestNet").build(),
36                                 "irc.test.net",
37                                 6667,
38                                 Duration.ofMinutes(1),
39                                 "Nickname1",
40                                 asList("#channel1", "#channel2"),
41                                 emptyList(),
42                                 17,
43                                 445
44                 );
45                 ConnectedNetwork network2 = new ConnectedNetwork(
46                                 builder("DummyNet").build(),
47                                 "irc.dummy.net",
48                                 6789,
49                                 Duration.ofMinutes(1),
50                                 "Nickname2",
51                                 asList("#dummy1", "#dummy2"),
52                                 asList("#foo", "#bar"),
53                                 65,
54                                 234
55                 );
56                 ConnectedNetwork network3 = new ConnectedNetwork(
57                                 builder("FooNet").build(),
58                                 "irc.foo.net",
59                                 7000,
60                                 Duration.ofMinutes(1),
61                                 "Nickname3",
62                                 emptyList(),
63                                 emptyList(),
64                                 118,
65                                 1234
66                 );
67                 ConnectedNetwork network4 = new ConnectedNetwork(
68                                 builder("BarNet").build(),
69                                 "irc.bar.net",
70                                 7001,
71                                 Duration.ofMinutes(1),
72                                 "Nickname4",
73                                 emptyList(),
74                                 asList("#foo", "#bar"),
75                                 4,
76                                 21
77                 );
78                 when(core.connectedNetworks()).thenReturn(asList(network1, network2, network3, network4));
79         }
80
81         @Test
82         public void extendedStatsDumpContainsTheCorrectData() throws IOException {
83                 StringWriter writer = new StringWriter();
84                 command.execute(null, emptyList(), writer);
85                 String result = writer.toString();
86                 assertThat(result, is(
87                                 "Connected to TestNet via irc.test.net:6667.\n" +
88                                 "  Joined #channel1, #channel2.\n" +
89                                 "  17 bots serving 445 packs.\n" +
90                                 "Connected to DummyNet via irc.dummy.net:6789.\n" +
91                                 "  Joined #dummy1, #dummy2, force-joined #foo, #bar.\n" +
92                                 "  65 bots serving 234 packs.\n" +
93                                 "Connected to FooNet via irc.foo.net:7000.\n" +
94                                 "  118 bots serving 1234 packs.\n" +
95                                 "Connected to BarNet via irc.bar.net:7001.\n" +
96                                 "  Force-joined #foo, #bar.\n" +
97                                 "  4 bots serving 21 packs.\n" +
98                                 "Total: 204 bots, 1934 packs.\n"
99                 ));
100         }
101
102 }