/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.embedded.ssh.internal; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; import java.io.IOException; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; import de.rcenvironment.core.configuration.ConfigurationSegment; import de.rcenvironment.core.configuration.ConfigurationService; import de.rcenvironment.core.configuration.testutils.ConfigurationSegmentUtils; import de.rcenvironment.core.utils.common.TempFileServiceAccess; /** * {@link SshAccountConfigurationServiceImpl} unit tests. * * @author Robert Mischke */ public class SshAccountConfigurationServiceImplTest { private ConfigurationSegment configurationSegment; /** * Subclasses the tested service to inject custom configuration loading. * * @author Robert Mischke */ private class AdaptedSshAccountConfigurationServiceImpl extends SshAccountConfigurationServiceImpl { AdaptedSshAccountConfigurationServiceImpl() { ConfigurationService confServiceMock = EasyMock.createMock(ConfigurationService.class); EasyMock.expect(confServiceMock.isUsingIntendedProfileDirectory()).andReturn(Boolean.TRUE); // the configuration fallback in case of invalid configuration data is not part of this test so far EasyMock.expect(confServiceMock.isUsingDefaultConfigurationValues()).andReturn(Boolean.FALSE); EasyMock.replay(confServiceMock); bindConfigurationService(confServiceMock); } @Override protected ConfigurationSegment loadSshConfigurationSegment() { return configurationSegment; } } /** * Common setup. */ @Before public void setUp() { TempFileServiceAccess.setupUnitTestEnvironment(); } /** * Tests initial state checks with an empty configuration file. */ @Test public void testEmptyConfig() { setConfigurationSegment("empty"); AdaptedSshAccountConfigurationServiceImpl testServive = new AdaptedSshAccountConfigurationServiceImpl(); String error = testServive.verifyExpectedStateForConfigurationEditing(); assertNull(error, error); } private void setConfigurationSegment(String configFileName) { try { configurationSegment = ConfigurationSegmentUtils.readTestConfigurationFromStream(getClass().getResourceAsStream( "/configuration/" + configFileName + ".json")); } catch (IOException e) { fail("Failed to load test config: " + e); } } }