+package net.pterodactylus.xdcc.ui.stdin;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.emptyList;
+import static net.pterodactylus.xdcc.data.Network.builder;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.io.StringWriter;
+
+import net.pterodactylus.xdcc.core.Core;
+import net.pterodactylus.xdcc.data.ConnectedNetwork;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * TODO
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class StatsCommandTest {
+
+ private final Core core = mock(Core.class);
+ private final StatsCommand command =
+ new StatsCommand(core);
+
+ @Before
+ public void setupCore() {
+ ConnectedNetwork network1 = new ConnectedNetwork(
+ builder("TestNet").build(),
+ "irc.test.net",
+ 6667,
+ "Nickname1",
+ asList("#channel1", "#channel2"),
+ asList("#forced"),
+ 17,
+ 445
+ );
+ ConnectedNetwork network2 = new ConnectedNetwork(
+ builder("DummyNet").build(),
+ "irc.dummy.net",
+ 6789,
+ "Nickname2",
+ asList("#dummy1", "#dummy2"),
+ asList("#foo", "#bar"),
+ 65,
+ 234
+ );
+ when(core.connectedNetworks()).thenReturn(asList(network1, network2));
+ }
+
+ @Test
+ public void extendedStatsDumpContainsTheCorrectData() throws IOException {
+ StringWriter writer = new StringWriter();
+ command.execute(null, emptyList(), writer);
+ String result = writer.toString();
+ assertThat(result, is(
+ "Connected to TestNet via irc.test.net:6667.\n" +
+ " Joined #channel1, #channel2, force-joined #forced.\n" +
+ " 17 bots serving 445 packs.\n" +
+ "Connected to DummyNet via irc.dummy.net:6789.\n" +
+ " Joined #dummy1, #dummy2, force-joined #foo, #bar.\n" +
+ " 65 bots serving 234 packs.\n" +
+ "Total: 82 bots, 679 packs.\n"
+ ));
+ }
+
+}