/******************************************************************************* * Copyright (c) 2010-2015 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.core.gerrit; import static org.easymock.EasyMock.*; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.eclipse.skalli.services.configuration.ConfigurationService; import org.eclipse.skalli.services.gerrit.GerritServerConfig; import org.eclipse.skalli.services.gerrit.GerritServersConfig; import org.junit.Test; @SuppressWarnings("nls") public class GerritComponentTest { private static final String ID = "someId"; private static final String HOST = "some.host"; private static final String PORT = "12345"; private static final String USER = "some:user"; private static final String PRIVATEKEY = "my/key/file"; private static final String PASSPHRASE = "$ecret"; private static final String ON_BEHALF_OF = "tiffy"; private GerritComponent getServiceImpl(ConfigurationService configService) { GerritComponent serviceImpl = new GerritComponent(); serviceImpl.bindConfigurationService(configService); return serviceImpl; } @Test public void testGetClient() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, PRIVATEKEY, PASSPHRASE); assertNotNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientUserIdNull() throws Exception { assertNull(getServiceImpl(null).getClient(ID, null)); } @Test public void testGetClientConfigurationServiceNull() throws Exception { assertNull(getServiceImpl(null).getClient(ID, ON_BEHALF_OF)); } @Test public void testGetClientHostNull() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, null, PORT, USER, PRIVATEKEY, PASSPHRASE); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientHostEmpty() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, "", PORT, USER, PRIVATEKEY, PASSPHRASE); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientPortNull() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, null, USER, PRIVATEKEY, PASSPHRASE); assertNotNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); // client with default port 29418! verify(mockedConfigService); } @Test public void testGetClientPortEmpty() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, "", USER, PRIVATEKEY, PASSPHRASE); assertNotNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); // client with default port 29418! verify(mockedConfigService); } @Test public void testGetClientPortNotNumeric() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, "port", USER, PRIVATEKEY, PASSPHRASE); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); // no fallback if port is invalid! verify(mockedConfigService); } @Test public void testGetClientKeyNull() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, null, PASSPHRASE); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientKeyEmpty() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, "", PASSPHRASE); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientPassphraseNull() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, PRIVATEKEY, null); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientPassphraseEmpty() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, PRIVATEKEY, ""); assertNull(getServiceImpl(mockedConfigService).getClient(ID, ON_BEHALF_OF)); verify(mockedConfigService); } @Test public void testGetClientUnknownId() throws Exception { ConfigurationService mockedConfigService = configAndReplay(ID, HOST, PORT, USER, PRIVATEKEY, ""); assertNull(getServiceImpl(mockedConfigService).getClient("foo", ON_BEHALF_OF)); verify(mockedConfigService); } private ConfigurationService configAndReplay(String id, String host, String port, String user, String privateKey, String passphrase) { GerritServerConfig gerritConfig = new GerritServerConfig(); gerritConfig.setId(id); gerritConfig.setHost(host); gerritConfig.setPort(port); gerritConfig.setUser(user); gerritConfig.setPrivateKey(privateKey); gerritConfig.setPassphrase(passphrase); GerritServersConfig serversConfig = new GerritServersConfig(); serversConfig.addServer(gerritConfig); ConfigurationService mockedConfigService = createMock(ConfigurationService.class); expect(mockedConfigService.readConfiguration(GerritServersConfig.class)).andReturn(serversConfig); replay(mockedConfigService); return mockedConfigService; } }