123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- /*
- * Copyright (c) 2006-2015 DMDirc Developers
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
- package com.dmdirc.ui.core.feedback;
-
- import com.dmdirc.ServerState;
- import com.dmdirc.interfaces.Connection;
- import com.dmdirc.interfaces.ConnectionManager;
- import com.dmdirc.config.provider.AggregateConfigProvider;
- import com.dmdirc.parser.interfaces.Parser;
- import com.dmdirc.util.ClientInfo;
-
- import com.google.common.collect.Lists;
-
- import java.nio.file.Path;
- import java.util.Optional;
-
- import org.junit.Before;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.mockito.Mock;
- import org.mockito.runners.MockitoJUnitRunner;
-
- import static junit.framework.TestCase.assertEquals;
- import static org.mockito.Mockito.when;
-
- @RunWith(MockitoJUnitRunner.class)
- public class FeedbackHelperTest {
-
- private static final String VERSION = "0.1";
- private static final String PATH = "/path/to/config";
- private static final String JAVA = "javaInfo";
- private static final String OS = "osInfo";
- private static final String SERVER_NAME = "serverName";
- private static final String NETWORK_NAME = "networkName";
- private static final String SERVER_SOFTWARE = "serverSoftware";
- private static final String SERVER_SOFTWARE_TYPE = "serverSoftwareType";
- private static final String BOOLEAN_MODES = "booleanModes";
- private static final String LIST_MODES = "listChannelModes";
- private static final String PARAM_MODES = "paramModes";
- private static final String DOUBLE_PARAM_MODES = "doubleParamModes";
-
- @Mock private Path path;
- @Mock private ClientInfo clientInfo;
- @Mock private Connection connection;
- @Mock private Parser parser;
- @Mock private AggregateConfigProvider config;
- @Mock private ConnectionManager connectionManager;
-
- private FeedbackHelper instance;
-
- @Before
- public void setUp() throws Exception {
- when(config.getOption("version", "version")).thenReturn(VERSION);
- when(clientInfo.getVersionInformation()).thenReturn(VERSION);
- when(path.toString()).thenReturn(PATH);
- when(clientInfo.getJavaInformation()).thenReturn(JAVA);
- when(clientInfo.getOperatingSystemInformation()).thenReturn(OS);
- when(connectionManager.getConnections()).thenReturn(Lists.newArrayList(connection));
- when(connection.getParser()).thenReturn(Optional.of(parser));
- when(parser.getServerName()).thenReturn(SERVER_NAME);
- when(connection.getState()).thenReturn(ServerState.CONNECTED);
- when(connection.getNetwork()).thenReturn(NETWORK_NAME);
- when(parser.getServerSoftware()).thenReturn(SERVER_SOFTWARE);
- when(parser.getServerSoftwareType()).thenReturn(SERVER_SOFTWARE_TYPE);
- when(parser.getBooleanChannelModes()).thenReturn(BOOLEAN_MODES);
- when(parser.getListChannelModes()).thenReturn(LIST_MODES);
- when(parser.getParameterChannelModes()).thenReturn(PARAM_MODES);
- when(parser.getDoubleParameterChannelModes()).thenReturn(DOUBLE_PARAM_MODES);
-
- instance = new FeedbackHelper(path, clientInfo, connectionManager, config);
- }
-
- private String getServerInfoOutput() {
- return "Actual name: " + SERVER_NAME + '\n'
- + "Network: " + NETWORK_NAME + '\n'
- + "IRCd: " + SERVER_SOFTWARE + " - " + SERVER_SOFTWARE_TYPE + '\n'
- + "Modes: " + BOOLEAN_MODES + ' ' + LIST_MODES + ' ' + PARAM_MODES + ' '
- + DOUBLE_PARAM_MODES;
- }
-
- private String getDMDircInfoOutput() {
- return "DMDirc version: " + VERSION + '\n'
- + "Profile directory: " + PATH + '\n'
- + "Java version: " + JAVA + '\n'
- + "OS Version: " + OS;
- }
-
- @Test
- public void testGetDMDircInfo() {
- assertEquals(getDMDircInfoOutput(), instance.getDMDircInfo());
- }
-
- @Test
- public void testGetServerInfo_Single() {
- assertEquals(getServerInfoOutput() + '\n', instance.getServerInfo());
- }
-
- @Test
- public void testGetServerInfo_Multiple() {
- when(connectionManager.getConnections()).thenReturn(
- Lists.newArrayList(connection, connection));
- assertEquals(getServerInfoOutput() + '\n' + getServerInfoOutput() + '\n',
- instance.getServerInfo());
- }
-
- @Test
- public void testGetServerInfoConnection() {
- assertEquals(getServerInfoOutput(), instance.getServerInfo(connection));
- }
-
- @Test
- public void testGetServerInfoConnection_Disconnected() {
- when(connection.getState()).thenReturn(ServerState.DISCONNECTED);
- assertEquals("", instance.getServerInfo(connection));
- }
-
- @Test
- public void testGetVersion() {
- assertEquals(VERSION, instance.getVersion());
- }
- }
|