package vnet.sms.common.shell.clamshellsshsrv.internal;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.apache.sshd.SshServer;
import org.junit.Test;
import vnet.sms.common.shell.clamshellspring.internal.EmbeddedClamshellLauncherFactory;
public class SshServerFactoryBeanTest {
@Test(expected = IllegalStateException.class)
public final void assertThatGetObjectRecognizesThatAfterPropertiesSetHasNotBeenCalled()
throws Exception {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.getObject();
}
@Test
public final void assertThatGetObjectReturnsNonNullSshServerIfAfterPropertiesSetHasBeenCalled()
throws Exception {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest
.setClamshellLauncherFactory(new EmbeddedClamshellLauncherFactory());
objectUnderTest.setAutostart(true);
objectUnderTest.afterPropertiesSet();
final SshServer sshServer = objectUnderTest.getObject();
assertNotNull(
"getObject() returned null although afterPropertiesSet() has been called",
sshServer);
}
@Test
public final void assertThatGetObjectTypeReturnsSubclassOfSshServer() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
final Class<?> objectType = objectUnderTest.getObjectType();
assertTrue("getObjectType() should have returned a subtype of "
+ SshServer.class.getName(),
SshServer.class.isAssignableFrom(objectType));
}
@Test
public final void assertThatIsSingletonReturnsTrue() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
assertTrue("isSingleton() should always return true",
objectUnderTest.isSingleton());
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetHostRejectsNullHost() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setHost(null);
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetHostRejectsEmptyHost() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setHost("");
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetHostKeyPathRejectsNullHostKeyPath() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setHostKeyPath(null);
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetHostKeyPathRejectsEmptyHostKeyPath() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setHostKeyPath("");
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetClamshellLauncherFactoryRejectsNullFactory() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setClamshellLauncherFactory(null);
}
@Test(expected = IllegalArgumentException.class)
public final void assertThatSetScheduledExecutorServiceRejectsNullScheduledExecutorService() {
final SshServerFactoryBean objectUnderTest = new SshServerFactoryBean();
objectUnderTest.setScheduledExecutorService(null);
}
}