Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov2018-11-07 08:03:39 +0000
committerAlexander Kurtakov2018-11-07 08:03:39 +0000
commit4e1aa9047e467ca9f6da4149f95325158cbaa915 (patch)
treec55c82abbbafa9296c3bf2a1003f40f83204b82e
parent474e1b4f19c962025a45e436c31680bdadc1c9a0 (diff)
downloadrt.equinox.bundles-4e1aa9047e467ca9f6da4149f95325158cbaa915.tar.gz
rt.equinox.bundles-4e1aa9047e467ca9f6da4149f95325158cbaa915.tar.xz
rt.equinox.bundles-4e1aa9047e467ca9f6da4149f95325158cbaa915.zip
Use try-with-resources in ssh.tests.
Change-Id: I4bcab242e9794d0773def87f00d5621a42c171db Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
-rwxr-xr-xbundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandTests.java171
-rwxr-xr-xbundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandWithConfigAdminTests.java331
-rwxr-xr-xbundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshShellTests.java142
3 files changed, 301 insertions, 343 deletions
diff --git a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandTests.java b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandTests.java
index 03c0c378..923b0c5d 100755
--- a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandTests.java
+++ b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandTests.java
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* Lazar Kirchev, SAP AG - initial API and implementation
*******************************************************************************/
@@ -42,7 +42,6 @@ import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.BundleContext;
-
public class SshCommandTests {
private static final int TEST_CONTENT = 100;
private static final String USER_STORE_FILE_NAME = "org.eclipse.equinox.console.jaas.file";
@@ -69,117 +68,113 @@ public class SshCommandTests {
public void init() throws Exception {
clean();
initStore();
- initJaasConfigFile();
+ initJaasConfigFile();
}
-
+
@SuppressWarnings("unchecked")
@Test
public void testSshCommand() throws Exception {
- CommandSession session = EasyMock.createMock(CommandSession.class);
- EasyMock.makeThreadSafe(session, true);
- EasyMock.expect(session.put((String)EasyMock.anyObject(), EasyMock.anyObject())).andReturn(new Object());
- EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
- session.close();
- EasyMock.expectLastCall();
- EasyMock.replay(session);
-
- CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
- EasyMock.expect(processor.createSession((ConsoleInputStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject())).andReturn(session);
- EasyMock.replay(processor);
-
- BundleContext context = EasyMock.createMock(BundleContext.class);
- EasyMock.makeThreadSafe(context, true);
- EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(FALSE);
- EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
- EasyMock.expect(context.getProperty(SSH_PORT_PROP_NAME)).andReturn(Integer.toString(SSH_PORT));
- EasyMock.expect(context.registerService((String)EasyMock.anyObject(), EasyMock.anyObject(), (Dictionary<String, ?>)EasyMock.anyObject())).andReturn(null);
- EasyMock.replay(context);
-
- Map<String, String> environment = new HashMap<>();
- environment.put(TERM_PROPERTY, XTERM);
- Environment env = EasyMock.createMock(Environment.class);
- EasyMock.expect(env.getEnv()).andReturn(environment);
- EasyMock.replay(env);
-
- SshCommand command = new SshCommand(processor, context);
- command.ssh(new String[] {START_COMMAND});
-
- SshClient client = SshClient.setUpDefaultClient();
- client.start();
- try {
- ConnectFuture connectFuture = client.connect(USERNAME, HOST, SSH_PORT);
- DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
+ try (CommandSession session = EasyMock.createMock(CommandSession.class)) {
+ EasyMock.makeThreadSafe(session, true);
+ EasyMock.expect(session.put((String) EasyMock.anyObject(), EasyMock.anyObject())).andReturn(new Object());
+ EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
+ session.close();
+ EasyMock.expectLastCall();
+ EasyMock.replay(session);
+ CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
+ EasyMock.expect(processor.createSession((ConsoleInputStream) EasyMock.anyObject(),
+ (PrintStream) EasyMock.anyObject(), (PrintStream) EasyMock.anyObject())).andReturn(session);
+ EasyMock.replay(processor);
+ BundleContext context = EasyMock.createMock(BundleContext.class);
+ EasyMock.makeThreadSafe(context, true);
+ EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(FALSE);
+ EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
+ EasyMock.expect(context.getProperty(SSH_PORT_PROP_NAME)).andReturn(Integer.toString(SSH_PORT));
+ EasyMock.expect(context.registerService((String) EasyMock.anyObject(), EasyMock.anyObject(),
+ (Dictionary<String, ?>) EasyMock.anyObject())).andReturn(null);
+ EasyMock.replay(context);
+
+ Map<String, String> environment = new HashMap<>();
+ environment.put(TERM_PROPERTY, XTERM);
+ Environment env = EasyMock.createMock(Environment.class);
+ EasyMock.expect(env.getEnv()).andReturn(environment);
+ EasyMock.replay(env);
+
+ SshCommand command = new SshCommand(processor, context);
+ command.ssh(new String[] { START_COMMAND });
+
+ SshClient client = SshClient.setUpDefaultClient();
+ client.start();
try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException ie) {
- // do nothing
- }
- ClientSession sshSession = defaultConnectFuture.getSession();
-
- sshSession.addPasswordIdentity(PASSWORD);
- ClientChannel channel = sshSession.createChannel("shell");
- channel.setIn(new ByteArrayInputStream((TEST_CONTENT + "\n").getBytes(StandardCharsets.UTF_8)));
- ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
- channel.setOut(byteOut);
- channel.setErr(byteOut);
- channel.open();
- try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException ie) {
- // do nothing
+ ConnectFuture connectFuture = client.connect(USERNAME, HOST, SSH_PORT);
+ DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
+
+ try {
+ Thread.sleep(WAIT_TIME);
+ } catch (InterruptedException ie) {
+ // do nothing
+ }
+ try (ClientSession sshSession = defaultConnectFuture.getSession()) {
+ sshSession.addPasswordIdentity(PASSWORD);
+ ClientChannel channel = sshSession.createChannel("shell");
+ channel.setIn(new ByteArrayInputStream((TEST_CONTENT + "\n").getBytes(StandardCharsets.UTF_8)));
+ ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+ channel.setOut(byteOut);
+ channel.setErr(byteOut);
+ channel.open();
+ try {
+ Thread.sleep(WAIT_TIME);
+ } catch (InterruptedException ie) {
+ // do nothing
+ }
+ byte[] output = byteOut.toByteArray();
+ Assert.assertEquals("Output not as expected", Integer.toString(TEST_CONTENT),
+ new String(output).trim());
+ }
+ } finally {
+ client.stop();
}
- byte[] output = byteOut.toByteArray();
- Assert.assertEquals("Output not as expected",Integer.toString(TEST_CONTENT), new String(output).trim());
- sshSession.close(true);
- } finally {
- client.stop();
- }
- command.ssh(new String[] {STOP_COMMAND});
- return;
+ command.ssh(new String[] { STOP_COMMAND });
+ return;
+ }
}
-
+
@After
public void cleanUp() {
clean();
}
-
+
private void clean() {
System.setProperty(USER_STORE_FILE_NAME, "");
- File file = new File(STORE_FILE_NAME);
- if (file.exists()) {
- file.delete();
- }
-
- System.setProperty(JAAS_CONFIG_PROPERTY_NAME, "");
- File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
- if (jaasConfFile.exists()) {
- jaasConfFile.delete();
- }
+ File file = new File(STORE_FILE_NAME);
+ if (file.exists()) {
+ file.delete();
+ }
+
+ System.setProperty(JAAS_CONFIG_PROPERTY_NAME, "");
+ File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
+ if (jaasConfFile.exists()) {
+ jaasConfFile.delete();
+ }
}
-
+
private void initStore() throws Exception {
System.setProperty(USER_STORE_FILE_NAME, STORE_FILE_NAME);
- SecureUserStore.initStorage();
- SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
+ SecureUserStore.initStorage();
+ SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
}
-
+
private void initJaasConfigFile() throws Exception {
System.setProperty(JAAS_CONFIG_PROPERTY_NAME, JAAS_CONFIG_FILE_NAME);
File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
- if (!jaasConfFile.exists()) {
- PrintWriter out = null;
- try {
- out = new PrintWriter(jaasConfFile);
+ if (!jaasConfFile.exists()) {
+ try (PrintWriter out = new PrintWriter(jaasConfFile);) {
out.println("equinox_console {");
out.println(" org.eclipse.equinox.console.jaas.SecureStorageLoginModule REQUIRED;");
out.println("};");
- } finally {
- if (out != null) {
- out.close();
- }
}
- }
+ }
}
}
diff --git a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandWithConfigAdminTests.java b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandWithConfigAdminTests.java
index 4e55e56e..c72c30f1 100755
--- a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandWithConfigAdminTests.java
+++ b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshCommandWithConfigAdminTests.java
@@ -46,7 +46,6 @@ import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.ManagedService;
-
public class SshCommandWithConfigAdminTests {
private static final int TEST_CONTENT = 100;
private static final String USER_STORE_FILE_NAME = "org.eclipse.equinox.console.jaas.file";
@@ -72,97 +71,93 @@ public class SshCommandWithConfigAdminTests {
public void init() throws Exception {
clean();
initStore();
- initJaasConfigFile();
+ initJaasConfigFile();
}
@SuppressWarnings("unchecked")
@Test
public void testSshCommandWithConfigAdmin() throws Exception {
- CommandSession session = EasyMock.createMock(CommandSession.class);
- EasyMock.makeThreadSafe(session, true);
- EasyMock.expect(session.put((String)EasyMock.anyObject(), EasyMock.anyObject())).andReturn(EasyMock.anyObject()).times(5);
- EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
- session.close();
- EasyMock.expectLastCall();
- EasyMock.replay(session);
-
- CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
- EasyMock.expect(processor.createSession((ConsoleInputStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject())).andReturn(session);
- EasyMock.replay(processor);
-
- final ServiceRegistration<?> registration = EasyMock.createMock(ServiceRegistration.class);
- registration.setProperties((Dictionary<String, ?>)EasyMock.anyObject());
- EasyMock.expectLastCall();
- EasyMock.replay(registration);
-
- BundleContext context = EasyMock.createMock(BundleContext.class);
- EasyMock.makeThreadSafe(context, true);
- EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(TRUE);
- EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
- EasyMock.expect(
- (ServiceRegistration) context.registerService(
- (String)EasyMock.anyObject(),
- (ManagedService)EasyMock.anyObject(),
- (Dictionary<String, ?>)EasyMock.anyObject())
- ).andAnswer((IAnswer<ServiceRegistration<?>>) () -> {
- configurator = (ManagedService) EasyMock.getCurrentArguments()[1];
- return registration;
- });
- EasyMock.expect(
- context.registerService(
- (String)EasyMock.anyObject(),
- (SshCommand)EasyMock.anyObject(),
- (Dictionary<String, ?>)EasyMock.anyObject())).andReturn(null);
- EasyMock.replay(context);
-
- Map<String, String> environment = new HashMap<>();
- environment.put(TERM_PROPERTY, XTERM);
- Environment env = EasyMock.createMock(Environment.class);
- EasyMock.expect(env.getEnv()).andReturn(environment);
- EasyMock.replay(env);
-
- SshCommand command = new SshCommand(processor, context);
- Dictionary<String, Object> props = new Hashtable<>();
- props.put("port", SSH_PORT);
- props.put("host", HOST);
- props.put("enabled", TRUE);
- configurator.updated(props);
-
- SshClient client = SshClient.setUpDefaultClient();
- client.start();
- try {
- ConnectFuture connectFuture = client.connect(USERNAME, HOST, Integer.valueOf(SSH_PORT));
- DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
-
+ try (CommandSession session = EasyMock.createMock(CommandSession.class)) {
+ EasyMock.makeThreadSafe(session, true);
+ EasyMock.expect(session.put((String) EasyMock.anyObject(), EasyMock.anyObject()))
+ .andReturn(EasyMock.anyObject()).times(5);
+ EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
+ session.close();
+ EasyMock.expectLastCall();
+ EasyMock.replay(session);
+
+ CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
+ EasyMock.expect(processor.createSession((ConsoleInputStream) EasyMock.anyObject(),
+ (PrintStream) EasyMock.anyObject(), (PrintStream) EasyMock.anyObject())).andReturn(session);
+ EasyMock.replay(processor);
+
+ final ServiceRegistration<?> registration = EasyMock.createMock(ServiceRegistration.class);
+ registration.setProperties((Dictionary<String, ?>) EasyMock.anyObject());
+ EasyMock.expectLastCall();
+ EasyMock.replay(registration);
+
+ BundleContext context = EasyMock.createMock(BundleContext.class);
+ EasyMock.makeThreadSafe(context, true);
+ EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(TRUE);
+ EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
+ EasyMock.expect((ServiceRegistration) context.registerService((String) EasyMock.anyObject(),
+ (ManagedService) EasyMock.anyObject(), (Dictionary<String, ?>) EasyMock.anyObject()))
+ .andAnswer((IAnswer<ServiceRegistration<?>>) () -> {
+ configurator = (ManagedService) EasyMock.getCurrentArguments()[1];
+ return registration;
+ });
+ EasyMock.expect(context.registerService((String) EasyMock.anyObject(), (SshCommand) EasyMock.anyObject(),
+ (Dictionary<String, ?>) EasyMock.anyObject())).andReturn(null);
+ EasyMock.replay(context);
+ Map<String, String> environment = new HashMap<>();
+ environment.put(TERM_PROPERTY, XTERM);
+ Environment env = EasyMock.createMock(Environment.class);
+ EasyMock.expect(env.getEnv()).andReturn(environment);
+ EasyMock.replay(env);
+
+ SshCommand command = new SshCommand(processor, context);
+ Dictionary<String, Object> props = new Hashtable<>();
+ props.put("port", SSH_PORT);
+ props.put("host", HOST);
+ props.put("enabled", TRUE);
+ configurator.updated(props);
+
+ SshClient client = SshClient.setUpDefaultClient();
+ client.start();
try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException ie) {
- // do nothing
- }
- ClientSession sshSession = defaultConnectFuture.getSession();
+ ConnectFuture connectFuture = client.connect(USERNAME, HOST, Integer.valueOf(SSH_PORT));
+ DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
- sshSession.addPasswordIdentity(PASSWORD);
- ClientChannel channel = sshSession.createChannel("shell");
- channel.setIn(new ByteArrayInputStream((TEST_CONTENT + "\n").getBytes(StandardCharsets.UTF_8)));
- ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
- channel.setOut(byteOut);
- channel.setErr(byteOut);
- channel.open();
- try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException ie) {
- // do nothing
+ try {
+ Thread.sleep(WAIT_TIME);
+ } catch (InterruptedException ie) {
+ // do nothing
+ }
+ try (ClientSession sshSession = defaultConnectFuture.getSession()) {
+
+ sshSession.addPasswordIdentity(PASSWORD);
+ ClientChannel channel = sshSession.createChannel("shell");
+ channel.setIn(new ByteArrayInputStream((TEST_CONTENT + "\n").getBytes(StandardCharsets.UTF_8)));
+ ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+ channel.setOut(byteOut);
+ channel.setErr(byteOut);
+ channel.open();
+ try {
+ Thread.sleep(WAIT_TIME);
+ } catch (InterruptedException ie) {
+ // do nothing
+ }
+ byte[] output = byteOut.toByteArray();
+ Assert.assertEquals("Output not as expected", Integer.toString(TEST_CONTENT),
+ new String(output).trim());
+ }
+ } finally {
+ client.stop();
}
- byte[] output = byteOut.toByteArray();
- Assert.assertEquals("Output not as expected",Integer.toString(TEST_CONTENT), new String(output).trim());
- sshSession.close(true);
- } finally {
- client.stop();
- }
- command.ssh(new String[] {STOP_COMMAND});
- return;
+ command.ssh(new String[] { STOP_COMMAND });
+ }
}
@Test
@@ -177,83 +172,78 @@ public class SshCommandWithConfigAdminTests {
@SuppressWarnings("unchecked")
private void testDisabled(boolean isDefault) throws Exception {
- CommandSession session = EasyMock.createMock(CommandSession.class);
- EasyMock.expect(session.put((String)EasyMock.anyObject(), EasyMock.anyObject())).andReturn(EasyMock.anyObject()).times(4);
- EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
- session.close();
- EasyMock.expectLastCall();
- EasyMock.replay(session);
-
- CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
- EasyMock.expect(processor.createSession((ConsoleInputStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject())).andReturn(session);
- EasyMock.replay(processor);
-
- final ServiceRegistration<?> registration = EasyMock.createMock(ServiceRegistration.class);
- registration.setProperties((Dictionary<String, ?>)EasyMock.anyObject());
- EasyMock.expectLastCall();
- EasyMock.replay(registration);
-
- BundleContext context = EasyMock.createMock(BundleContext.class);
- EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(TRUE);
- EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
- EasyMock.expect(
- (ServiceRegistration) context.registerService(
- (String)EasyMock.anyObject(),
- (ManagedService)EasyMock.anyObject(),
- (Dictionary<String, ?>)EasyMock.anyObject())
- ).andAnswer((IAnswer<ServiceRegistration<?>>) () -> {
- configurator = (ManagedService) EasyMock.getCurrentArguments()[1];
- return registration;
- });
- EasyMock.expect(
- context.registerService(
- (String)EasyMock.anyObject(),
- (SshCommand)EasyMock.anyObject(),
- (Dictionary<String, ?>)EasyMock.anyObject())).andReturn(null);
- EasyMock.replay(context);
-
- Map<String, String> environment = new HashMap<>();
- environment.put(TERM_PROPERTY, XTERM);
- Environment env = EasyMock.createMock(Environment.class);
- EasyMock.expect(env.getEnv()).andReturn(environment);
- EasyMock.replay(env);
-
- SshCommand command = new SshCommand(processor, context);
- Dictionary<String, Object> props = new Hashtable<>();
- props.put("port", SSH_PORT);
- props.put("host", HOST);
- if (isDefault == false) {
- props.put("enabled", FALSE);
- }
- configurator.updated(props);
-
- SshClient client = SshClient.setUpDefaultClient();
- client.start();
- try {
- ConnectFuture connectFuture = client.connect("", HOST, Integer.valueOf(SSH_PORT));
- DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
+ try (CommandSession session = EasyMock.createMock(CommandSession.class)) {
+ EasyMock.expect(session.put((String) EasyMock.anyObject(), EasyMock.anyObject()))
+ .andReturn(EasyMock.anyObject()).times(4);
+ EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
+ session.close();
+ EasyMock.expectLastCall();
+ EasyMock.replay(session);
+ CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
+ EasyMock.expect(processor.createSession((ConsoleInputStream) EasyMock.anyObject(),
+ (PrintStream) EasyMock.anyObject(), (PrintStream) EasyMock.anyObject())).andReturn(session);
+ EasyMock.replay(processor);
+
+ final ServiceRegistration<?> registration = EasyMock.createMock(ServiceRegistration.class);
+ registration.setProperties((Dictionary<String, ?>) EasyMock.anyObject());
+ EasyMock.expectLastCall();
+ EasyMock.replay(registration);
+
+ BundleContext context = EasyMock.createMock(BundleContext.class);
+ EasyMock.expect(context.getProperty(USE_CONFIG_ADMIN_PROP)).andReturn(TRUE);
+ EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE).anyTimes();
+ EasyMock.expect((ServiceRegistration) context.registerService((String) EasyMock.anyObject(),
+ (ManagedService) EasyMock.anyObject(), (Dictionary<String, ?>) EasyMock.anyObject()))
+ .andAnswer((IAnswer<ServiceRegistration<?>>) () -> {
+ configurator = (ManagedService) EasyMock.getCurrentArguments()[1];
+ return registration;
+ });
+ EasyMock.expect(context.registerService((String) EasyMock.anyObject(), (SshCommand) EasyMock.anyObject(),
+ (Dictionary<String, ?>) EasyMock.anyObject())).andReturn(null);
+ EasyMock.replay(context);
+
+ Map<String, String> environment = new HashMap<>();
+ environment.put(TERM_PROPERTY, XTERM);
+ Environment env = EasyMock.createMock(Environment.class);
+ EasyMock.expect(env.getEnv()).andReturn(environment);
+ EasyMock.replay(env);
+
+ SshCommand command = new SshCommand(processor, context);
+ Dictionary<String, Object> props = new Hashtable<>();
+ props.put("port", SSH_PORT);
+ props.put("host", HOST);
+ if (isDefault == false) {
+ props.put("enabled", FALSE);
+ }
+ configurator.updated(props);
+ SshClient client = SshClient.setUpDefaultClient();
+ client.start();
try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException ie) {
- // do nothing
+ ConnectFuture connectFuture = client.connect("", HOST, Integer.valueOf(SSH_PORT));
+ DefaultConnectFuture defaultConnectFuture = (DefaultConnectFuture) connectFuture;
+
+ try {
+ Thread.sleep(WAIT_TIME);
+ } catch (InterruptedException ie) {
+ // do nothing
+ }
+ try {
+ defaultConnectFuture.getSession();
+ Assert.fail("It should not be possible to connect to " + HOST + ":" + SSH_PORT);
+ } catch (RuntimeSshException e) {
+ // this is expected
+ }
+ } finally {
+ client.stop();
}
+
try {
- defaultConnectFuture.getSession();
- Assert.fail("It should not be possible to connect to " + HOST + ":" + SSH_PORT);
- } catch (RuntimeSshException e) {
- //this is expected
+ command.ssh(new String[] { STOP_COMMAND });
+ } catch (IllegalStateException e) {
+ // this is expected
}
- } finally {
- client.stop();
}
-
- try {
- command.ssh(new String[] {STOP_COMMAND});
- } catch (IllegalStateException e) {
- // this is expected
- }
- return;
}
@After
@@ -263,40 +253,35 @@ public class SshCommandWithConfigAdminTests {
private void clean() {
System.setProperty(USER_STORE_FILE_NAME, "");
- File file = new File(STORE_FILE_NAME);
- if (file.exists()) {
- file.delete();
- }
+ File file = new File(STORE_FILE_NAME);
+ if (file.exists()) {
+ file.delete();
+ }
- System.setProperty(JAAS_CONFIG_PROPERTY_NAME, "");
- File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
- if (jaasConfFile.exists()) {
- jaasConfFile.delete();
- }
+ System.setProperty(JAAS_CONFIG_PROPERTY_NAME, "");
+ File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
+ if (jaasConfFile.exists()) {
+ jaasConfFile.delete();
+ }
}
private void initStore() throws Exception {
System.setProperty(USER_STORE_FILE_NAME, STORE_FILE_NAME);
- SecureUserStore.initStorage();
- SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
+ SecureUserStore.initStorage();
+ SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
}
private void initJaasConfigFile() throws Exception {
System.setProperty(JAAS_CONFIG_PROPERTY_NAME, JAAS_CONFIG_FILE_NAME);
File jaasConfFile = new File(JAAS_CONFIG_FILE_NAME);
- if (!jaasConfFile.exists()) {
- PrintWriter out = null;
- try {
- out = new PrintWriter(jaasConfFile);
+ if (!jaasConfFile.exists()) {
+ try (PrintWriter out = new PrintWriter(jaasConfFile);) {
+
out.println("equinox_console {");
out.println(" org.eclipse.equinox.console.jaas.SecureStorageLoginModule REQUIRED;");
out.println("};");
- } finally {
- if (out != null) {
- out.close();
- }
}
- }
+ }
}
}
diff --git a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshShellTests.java b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshShellTests.java
index 0e0cec71..9534b038 100755
--- a/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshShellTests.java
+++ b/bundles/archived/org.eclipse.equinox.console.ssh.tests/src/org/eclipse/equinox/console/ssh/SshShellTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 SAP AG
+ * Copyright (c) 2011, 2018 SAP AG and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* Lazar Kirchev, SAP AG - initial API and implementation
*******************************************************************************/
@@ -38,9 +38,8 @@ import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.BundleContext;
-
public class SshShellTests {
-
+
private static final int TEST_CONTENT = 100;
private static final String USER_STORE_FILE_NAME = "org.eclipse.equinox.console.jaas.file";
private static final String DEFAULT_USER_STORAGE = "osgi.console.ssh.useDefaultSecureStorage";
@@ -56,99 +55,78 @@ public class SshShellTests {
@Before
public void init() throws Exception {
clean();
- initStore();
+ initStore();
}
-
+
@Test
- public void testSshConnection() throws Exception {
- ServerSocket servSocket = null;
- Socket socketClient = null;
- Socket socketServer = null;
- SshShell shell = null;
- OutputStream outClient = null;
- OutputStream outServer = null;
+ public void testSshConnection() throws Exception {
+ SshShell shell = null;
- try {
-
- servSocket = new ServerSocket(0);
- socketClient = new Socket(HOST, servSocket.getLocalPort());
- socketServer = servSocket.accept();
+ try (ServerSocket servSocket = new ServerSocket(0);
+ Socket socketClient = new Socket(HOST, servSocket.getLocalPort());
+ Socket socketServer = servSocket.accept()) {
+ try (CommandSession session = EasyMock.createMock(CommandSession.class)) {
+ EasyMock.makeThreadSafe(session, true);
+ EasyMock.expect(session.put((String) EasyMock.anyObject(), EasyMock.anyObject()))
+ .andReturn(EasyMock.anyObject());
+ EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
+ session.close();
+ EasyMock.expectLastCall();
+ EasyMock.replay(session);
+ CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
+ EasyMock.expect(processor.createSession((ConsoleInputStream) EasyMock.anyObject(),
+ (PrintStream) EasyMock.anyObject(), (PrintStream) EasyMock.anyObject())).andReturn(session);
+ EasyMock.replay(processor);
- CommandSession session = EasyMock.createMock(CommandSession.class);
- EasyMock.makeThreadSafe(session, true);
- EasyMock.expect(session.put((String)EasyMock.anyObject(), EasyMock.anyObject())).andReturn(EasyMock.anyObject());
- EasyMock.expect(session.execute(GOGO_SHELL_COMMAND)).andReturn(null);
- session.close();
- EasyMock.expectLastCall();
- EasyMock.replay(session);
-
- CommandProcessor processor = EasyMock.createMock(CommandProcessor.class);
- EasyMock.expect(processor.createSession((ConsoleInputStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject(), (PrintStream)EasyMock.anyObject())).andReturn(session);
- EasyMock.replay(processor);
-
- BundleContext context = EasyMock.createMock(BundleContext.class);
- EasyMock.makeThreadSafe(context, true);
- EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE);
- EasyMock.replay(context);
-
- Map<String, String> environment = new HashMap<>();
- environment.put(TERM_PROPERTY, XTERM);
- Environment env = EasyMock.createMock(Environment.class);
- EasyMock.expect(env.getEnv()).andReturn(environment);
- EasyMock.replay(env);
-
- List<CommandProcessor> processors = new ArrayList<>();
- processors.add(processor);
- shell = new SshShell(processors, context);
- shell.setInputStream(socketServer.getInputStream());
- shell.setOutputStream(socketServer.getOutputStream());
- shell.start(env);
+ BundleContext context = EasyMock.createMock(BundleContext.class);
+ EasyMock.makeThreadSafe(context, true);
+ EasyMock.expect(context.getProperty(DEFAULT_USER_STORAGE)).andReturn(TRUE);
+ EasyMock.replay(context);
- outClient = socketClient.getOutputStream();
- outClient.write(TEST_CONTENT);
- outClient.write('\n');
- outClient.flush();
- InputStream input = socketClient.getInputStream();
- int in = input.read();
- Assert.assertTrue("Server received [" + in + "] instead of " + TEST_CONTENT + " from the ssh client.", in == TEST_CONTENT);
- } finally {
- if (socketClient != null) {
- socketClient.close();
- }
- if (outClient != null) {
- outClient.close();
- }
- if (outServer != null) {
- outServer.close();
- }
+ Map<String, String> environment = new HashMap<>();
+ environment.put(TERM_PROPERTY, XTERM);
+ Environment env = EasyMock.createMock(Environment.class);
+ EasyMock.expect(env.getEnv()).andReturn(environment);
+ EasyMock.replay(env);
- if (socketServer != null) {
- socketServer.close();
- }
+ List<CommandProcessor> processors = new ArrayList<>();
+ processors.add(processor);
+ shell = new SshShell(processors, context);
+ shell.setInputStream(socketServer.getInputStream());
+ shell.setOutputStream(socketServer.getOutputStream());
+ shell.start(env);
+ }
+
+ try (OutputStream outClient = socketClient.getOutputStream()) {
+ outClient.write(TEST_CONTENT);
+ outClient.write('\n');
+ outClient.flush();
+ try (InputStream input = socketClient.getInputStream()) {
+ int in = input.read();
+ Assert.assertTrue(
+ "Server received [" + in + "] instead of " + TEST_CONTENT + " from the ssh client.",
+ in == TEST_CONTENT);
+ }
+ }
+ }
+ }
- if (servSocket != null) {
- servSocket.close();
- }
-
- }
- }
-
@After
public void cleanUp() {
clean();
}
-
+
private void initStore() throws Exception {
System.setProperty(USER_STORE_FILE_NAME, USER_STORE_NAME);
- SecureUserStore.initStorage();
- SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
+ SecureUserStore.initStorage();
+ SecureUserStore.putUser(USERNAME, DigestUtil.encrypt(PASSWORD), null);
}
-
+
private void clean() {
System.setProperty(USER_STORE_FILE_NAME, "");
- File file = new File(USER_STORE_NAME);
- if(file.exists()) {
- file.delete();
- }
+ File file = new File(USER_STORE_NAME);
+ if (file.exists()) {
+ file.delete();
+ }
}
}

Back to the top