diff options
author | Alexander Kurtakov | 2018-11-07 08:03:39 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2018-11-07 08:03:39 +0000 |
commit | 4e1aa9047e467ca9f6da4149f95325158cbaa915 (patch) | |
tree | c55c82abbbafa9296c3bf2a1003f40f83204b82e | |
parent | 474e1b4f19c962025a45e436c31680bdadc1c9a0 (diff) | |
download | rt.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>
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 03c0c378d..923b0c5d3 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 4e55e56e8..c72c30f1b 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 0e0cec710..9534b0383 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(); + } } } |