|
1 | 1 | package root.common.server.implement; |
2 | 2 |
|
3 | 3 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 4 | +import static org.junit.jupiter.api.Assertions.assertFalse; |
4 | 5 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
5 | 6 | import static org.junit.jupiter.api.Assertions.assertNull; |
6 | 7 | import static org.junit.jupiter.api.Assertions.assertThrows; |
7 | 8 | import static org.junit.jupiter.api.Assertions.assertTrue; |
8 | | -import static org.junit.jupiter.api.Assertions.fail; |
| 9 | + |
| 10 | +import java.io.BufferedReader; |
| 11 | +import java.io.IOException; |
| 12 | +import java.io.InputStream; |
| 13 | +import java.io.InputStreamReader; |
9 | 14 |
|
10 | 15 | import org.junit.jupiter.api.BeforeAll; |
11 | 16 | import org.junit.jupiter.api.Test; |
12 | 17 |
|
| 18 | +import com.jcraft.jsch.Channel; |
13 | 19 | import com.jcraft.jsch.JSchException; |
14 | 20 | import com.jcraft.jsch.Session; |
15 | 21 |
|
@@ -45,37 +51,110 @@ public void testInit_Fail_InvalidConnInfo() { |
45 | 51 | } |
46 | 52 |
|
47 | 53 | @Test |
48 | | - public void testConnect_ConnectionSuccess() { |
| 54 | + public void testConnect_Success() throws JSchException { |
49 | 55 | jsch.init(); |
50 | 56 | Session session = jsch.getSession(); |
51 | | - try { |
52 | | - session = jsch.connect(session); |
53 | | - } catch (JSchException e) { |
54 | | - fail(); |
55 | | - } |
| 57 | + session = jsch.connect(session); |
56 | 58 | assertTrue(session.isConnected()); |
57 | 59 | } |
58 | 60 |
|
59 | 61 | @Test |
60 | | - public void testConnect_ConnectionFail_SessionIsNull() { |
61 | | - JschServer jsch = new JschServer(new JschConnectionInfo()); |
| 62 | + public void testConnect_Success_AlreadyConnection() throws JSchException { |
| 63 | + jsch.init(); |
| 64 | + Session session = jsch.getSession(); |
| 65 | + jsch.connect(session); |
| 66 | + jsch.connect(session); |
| 67 | + |
| 68 | + assertTrue(session.isConnected()); |
| 69 | + } |
| 70 | + |
| 71 | + @Test |
| 72 | + public void testConnect_Fail_SessionIsNull() { |
| 73 | + NullPointerException thrown = assertThrows(NullPointerException.class, () -> jsch.connect(null)); |
| 74 | + assertEquals("Session is null", thrown.getMessage()); |
| 75 | + } |
| 76 | + |
| 77 | + @Test |
| 78 | + public void testDisConnect_DisConnectionSuccess() throws JSchException { |
| 79 | + jsch.init(); |
| 80 | + Session session = jsch.getSession(); |
| 81 | + |
| 82 | + session = jsch.connect(session); |
| 83 | + assertTrue(session.isConnected()); |
| 84 | + |
| 85 | + jsch.disConnect(session); |
| 86 | + assertFalse(session.isConnected()); |
| 87 | + } |
| 88 | + |
| 89 | + @Test |
| 90 | + public void testDisConnect_DisConnectionFail_SessionIsNull() { |
| 91 | + NullPointerException thrown = assertThrows(NullPointerException.class, () -> jsch.disConnect(null)); |
| 92 | + assertEquals("Session is null", thrown.getMessage()); |
| 93 | + } |
| 94 | + |
| 95 | + @Test |
| 96 | + public void testOpenExecChannel_Success() throws JSchException { |
62 | 97 | jsch.init(); |
63 | 98 | Session session = jsch.getSession(); |
64 | | - NullPointerException thrown = assertThrows(NullPointerException.class, () -> jsch.connect(session)); |
| 99 | + jsch.connect(session); |
| 100 | + |
| 101 | + Channel channel = jsch.openExecChannel(session, "echo 1"); |
| 102 | + assertNotNull(channel); |
| 103 | + } |
| 104 | + |
| 105 | + @Test |
| 106 | + public void testOpenExecChannel_Fail_SessionIsNull() { |
| 107 | + NullPointerException thrown = assertThrows(NullPointerException.class, |
| 108 | + () -> jsch.openExecChannel(null, "echo 1")); |
65 | 109 | assertEquals("Session is null", thrown.getMessage()); |
66 | 110 | } |
67 | 111 |
|
68 | 112 | @Test |
69 | | - public void testConnect_ConnectionFail_JSchException() { |
| 113 | + public void testConnectChannel_Success() throws JSchException, IOException { |
70 | 114 | jsch.init(); |
71 | 115 | Session session = jsch.getSession(); |
72 | | - try { |
73 | | - jsch.connect(session); |
74 | | - } catch (JSchException e) { |
75 | | - fail(); |
| 116 | + jsch.connect(session); |
| 117 | + |
| 118 | + Channel channel = jsch.openExecChannel(session, "echo 1"); |
| 119 | + InputStream in = jsch.connectChannel(channel); |
| 120 | + |
| 121 | + assertNotNull(in); |
| 122 | + try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) { |
| 123 | + String echoLine = br.readLine(); |
| 124 | + assertEquals(echoLine, "1"); |
76 | 125 | } |
| 126 | + } |
| 127 | + |
| 128 | + @Test |
| 129 | + public void testDisConnectChannel_Success() throws JSchException { |
| 130 | + jsch.init(); |
| 131 | + Session session = jsch.getSession(); |
| 132 | + jsch.connect(session); |
| 133 | + |
| 134 | + Channel channel = jsch.openExecChannel(session, "echo 1"); |
| 135 | + jsch.connectChannel(channel); |
| 136 | + assertTrue(channel.isConnected()); |
77 | 137 |
|
78 | | - JSchException thrown = assertThrows(JSchException.class, () -> jsch.connect(session)); |
79 | | - assertEquals("session is already connected", thrown.getMessage()); |
| 138 | + jsch.disConnectChannel(channel); |
| 139 | + assertFalse(channel.isConnected()); |
| 140 | + } |
| 141 | + |
| 142 | + @Test |
| 143 | + public void testGetServerName() { |
| 144 | + String serverName = jsch.getServerName(); |
| 145 | + assertEquals(serverName, "DKY SERVER"); |
| 146 | + } |
| 147 | + |
| 148 | + @Test |
| 149 | + public void testValidateConn_Valid() { |
| 150 | + jsch.init(); |
| 151 | + assertTrue(JschServer.validateConn(jsch.getSession())); |
| 152 | + } |
| 153 | + |
| 154 | + @Test |
| 155 | + public void testValidateConn_InValid() { |
| 156 | + JschServer jsch = new JschServer(new JschConnectionInfo()); |
| 157 | + jsch.init(); |
| 158 | + assertFalse(JschServer.validateConn(jsch.getSession())); |
80 | 159 | } |
81 | 160 | } |
0 commit comments