1 package net.pterodactylus.xdcc.ui.stdin;
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;
11 import java.io.IOException;
12 import java.io.StringWriter;
13 import java.time.Duration;
15 import net.pterodactylus.xdcc.core.Core;
16 import net.pterodactylus.xdcc.data.ConnectedNetwork;
18 import org.junit.Before;
19 import org.junit.Test;
24 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
26 public class StatsCommandTest {
28 private final Core core = mock(Core.class);
29 private final StatsCommand command =
30 new StatsCommand(core);
33 public void setupCore() {
34 ConnectedNetwork network1 = new ConnectedNetwork(
35 builder("TestNet").build(),
38 Duration.ofMinutes(1),
40 asList("#channel1", "#channel2"),
45 ConnectedNetwork network2 = new ConnectedNetwork(
46 builder("DummyNet").build(),
49 Duration.ofMinutes(1),
51 asList("#dummy1", "#dummy2"),
52 asList("#foo", "#bar"),
56 ConnectedNetwork network3 = new ConnectedNetwork(
57 builder("FooNet").build(),
60 Duration.ofMinutes(1),
67 ConnectedNetwork network4 = new ConnectedNetwork(
68 builder("BarNet").build(),
71 Duration.ofMinutes(1),
74 asList("#foo", "#bar"),
78 when(core.connectedNetworks()).thenReturn(asList(network1, network2, network3, network4));
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"