title: Mockito:How to mock method called inside another method
body: <p>I am new to mockito and I am using mockito to test method which is calling another method and called method returns string.
  I tried but I am unable write test. Please help</p>
  
  <pre><code>public class MyClass {
    protected String processIncominData(String input) {
      String request = ...;
      ...
      String response = forwardRequest(request);
      ...
      return response;
    }
  
    public String forwardRequest(String requestToSocket) {
     String hostname = socketServerName;
      int port = socketServerPort;
      String responseLine=null;
      Socket clientSocket = null;  
      PrintStream outs=null;
  
      BufferedReader is = null;
      BufferedWriter bwriter=null;
  
      try {
          clientSocket = new Socket(hostname, port);
          outs=new PrintStream(clientSocket.getOutputStream());
          is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
          bwriter = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
  
      } catch (UnknownHostException e) {
          LOGGER.error("Don't know about host: " + hostname + e.getMessage());
      } catch (IOException e) {
          LOGGER.error("Couldn't get I/O for the connection to: " + hostname + e.getMessage());
      }
  
      if (clientSocket == null || outs == null || is == null) {
          LOGGER.error("Something is wrong. One variable is null.");
      }
      try {
          while ( true ) {
              StringBuilder sb = new StringBuilder();
              sb.append(requestToSocket);
  
              String  request = sb.toString().trim();
              bwriter.write(request);
              bwriter.write("\r\n");
              bwriter.flush();
              responseLine = is.readLine();
              LOGGER.info("Socket returns : " + responseLine);
              //outs.println(responseLine);
              bwriter.close();
          }
      } catch (UnknownHostException e) {
          LOGGER.error("Trying to connect to unknown host: "+ e.getMessage());
      } catch (IOException e) {
          LOGGER.error("IOException:  "+ e.getMessage());
      }
      finally{
          try {
              outs.close();
              is.close();
              clientSocket.close(); 
          } catch (IOException e) {
              e.printStackTrace();
          }
  
      }
      return responseLine;
    }
  }
  </code></pre>
  
  <p>I want to mock xml response here to test processIncomingData method..This response is coming from socket server and I am sending request by socket client. I think socket will not matter if I can mock xmlResponse from socket. Please give any helpful answer</p>