Junit test case for JSch class

0

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");
    }

};
java
spring
junit
constructor
jsch

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0