as I am new to Spring-boot Java I have created class to connect remote system using SSH(JSch) but I am not able to create test class for this I did test case but not able to create constructor please some one help to create test case for below class.
1) Whether we need create test case for service or service implementation class
2) How to call constructor in test I tried for below class always showing error not sure what wrong I am doing.
Main class
@Service
public class 'ShManagerServiceImpl' implements ShManagerService
{
private static final org.slf4j.Logger LOGGER =
LoggerFactory.getLogger(ShManagerServiceImpl.class);
private JSch jschSSHChannel;
private String strUserName;
private String strConnectionIP;
private int intConnectionPort;
private String strPassword;
private Session sesConnection;
private int intTimeOut;
@Override
public JSch createSshChannel(String userName, String password,
String connectionIP, String knownHostsFileName) {
doCommonConstructorActions(userName, password, connectionIP, knownHostsFileName);
intConnectionPort = 22;
intTimeOut = 60000;
return this.jschSSHChannel;
}
@Override
public JSch createSshChannel(String userName, String password,
String connectionIP, String knownHostsFileName, int connectionPort) {
doCommonConstructorActions(userName, password, connectionIP,
knownHostsFileName);
intConnectionPort = connectionPort;
intTimeOut = 60000;
return jschSSHChannel;
}
@Override
public JSch createSshChannel(String userName, String password, String connectionIP,
String knownHostsFileName, int connectionPort, int timeOutMilliseconds)
{
doCommonConstructorActions(userName, password, connectionIP,
knownHostsFileName);
intConnectionPort = connectionPort;
intTimeOut = timeOutMilliseconds;
return jschSSHChannel;
}
private void doCommonConstructorActions(String userName,
String password, String connectionIP, String knownHostsFileName) {
jschSSHChannel = new JSch();
try
{
jschSSHChannel.setKnownHosts(knownHostsFileName);
}
catch(JSchException jschX)
{
logError(jschX.getMessage());
}
strUserName = userName;
strPassword = password;
strConnectionIP = connectionIP;
}
public String connect()
{
String errorMessage = null;
try
{
sesConnection = jschSSHChannel.getSession(strUserName,
strConnectionIP, intConnectionPort);
sesConnection.setPassword(strPassword);
// UNCOMMENT THIS FOR TESTING PURPOSES, BUT DO NOT USE IN PRODUCTION
// sesConnection.setConfig("StrictHostKeyChecking", "no");
sesConnection.connect(intTimeOut);
}
catch(JSchException jschX)
{
errorMessage = jschX.getMessage();
}
return errorMessage;
}
public String sendCommand(String command)
{
StringBuilder outputBuffer = new StringBuilder();
try
{
Channel channel = sesConnection.openChannel("exec");
((ChannelExec)channel).setCommand(command);
InputStream commandOutput = channel.getInputStream();
channel.connect();
int readByte = commandOutput.read();
while(readByte != 0xffffffff)
{
outputBuffer.append((char)readByte);
readByte = commandOutput.read();
}
channel.disconnect();
}
catch(IOException ioX)
{
LOGGER.warn(ioX.getMessage());
return null;
}
catch(JSchException jschX)
{
LOGGER.warn(jschX.getMessage());
return null;
}
return outputBuffer.toString();
}
public void close() {
sesConnection.disconnect();
}
private String logError(String errorMessage)
{
if(errorMessage != null)
{
LOGGER.error("{0}:{1} - {2}",
new Object[]{strConnectionIP, intConnectionPort, errorMessage});
}
return errorMessage;
}
}
Below is test class
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.jcraft.jsch.JSch;
public class ShManagerServiceImplTest1 {
@Autowired
ShManagerService shManagerService;
@Test
public JSch testCreateSshChannelStringStringStringString() {
{
System.out.println("sendCommand");
String command = "ls FILE_NAME";
String userName = "USER";
String password = "PASSWORD";
String connectionIP = "HOST";
JSch jschSSHChannel = new JSch.createSshChannel(userName, password, connectionIP, "");
String errorMessage = jschSSHChannel.connect();
if(errorMessage != null)
{
System.out.println(errorMessage);
fail();
}
String expResult = "FILE_NAME\n";
// call sendCommand for each command and the output
//(without prompts) is returned
String result = instance.sendCommand(command);
// close only after all commands are sent
instance.close();
assertEquals(expResult, result);
}
}
@Test
public void testCreateSshChannelStringStringStringStringInt() {
fail("Not yet implemented");
}
@Test
public void testCreateSshChannelStringStringStringStringIntInt() {
fail("Not yet implemented");
}
@Test
public void testConnect() {
fail("Not yet implemented");
}
@Test
public void testSendCommand() {
fail("Not yet implemented");
}
@Test
public void testClose() {
fail("Not yet implemented");
}
};
User contributions licensed under CC BY-SA 3.0