As i just started Mockito, I have below method that i want to test. In my YouTubeChannelImporter.java file there are both methods : readJsonFromUrl(String url) and readAll(rd)
public JSONObject readJsonFromUrl(String url) throws IOException,
            JSONException {
        InputStream is = new URL(url).openStream();
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader(is,
                    Charset.forName("UTF-8")));
            String jsonText = readAll(rd);
            JSONObject json = new JSONObject(jsonText);
            return json;
        } finally {
            is.close();
        }
    }
I started with some rough idea.Below is the sample test case.
 @Test
    public void readJsonFromUrl() throws IOException, JSONException {
       String urlTest="http://google.com/api";
       YouTubeChannelImporter mockYoutube = mock(YouTubeChannelImporter.class);
       YouTubeChannelImporter tubeChannelImporter =new YouTubeChannelImporter();
     //  URL url=new URL(urlTest);
     //  InputStream inputStream = mock(InputStream.class);
    //   when(url.openStream()).thenReturn(inputStream);
       BufferedReader rd=mock(BufferedReader.class);
       when(mockYoutube.readAll(rd)).thenReturn("{\"kind\":\"you\"}");
       String jsonText="{\"kind\":\"you\"}";
       JSONObject object=new JSONObject(jsonText);
       assertEquals("{\"kind\":\"you\"}",tubeChannelImporter.readJsonFromUrl(urlTest).toString());
    }
My issue is when i will test the function readJsonFromUrl(String url) then readAll(rd) should not execute. Rather mock should be in action here. I am aware this issue is because tubeChannelImporter.readJsonFromUrl(urlTest).toString() . Looking for any other way to achieve my goal. Thanks
 
     
     
    