### Question:
RetryInterceptor implements Interceptor.Connect, Interceptor.Fetch { @Override public long interceptFetch(DownloadChain chain) throws IOException { try { return chain.processFetch(); } catch (IOException e) { chain.getCache().catchException(e); throw e; } }  @NonNull @Override DownloadConnection.Connected interceptConnect(DownloadChain chain); @Override long interceptFetch(DownloadChain chain);  }### Answer:
@Test public void interceptFetch_failedRelease() throws IOException { final MultiPointOutputStream outputStream = mock(MultiPointOutputStream.class); when(chain.getOutputStream()).thenReturn(outputStream); doThrow(IOException.class).when(chain).processFetch(); thrown.expect(IOException.class); interceptor.interceptFetch(chain); verify(cache).catchException(any(IOException.class)); verify(outputStream).catchBlockConnectException(anyInt()); }