コード例 #1
0
  @Test
  public void everyThingClosesWithFirstTrackerFail() throws IOException {
    when(address.size()).thenReturn(2);
    when(mockTrackerFactory.getTracker())
        .thenAnswer(
            new Answer<Tracker>() {
              boolean first = true;

              @Override
              public Tracker answer(InvocationOnMock invocation) throws Throwable {
                if (first) {
                  first = false;
                  throw new CommunicationException("Errror on communication");
                }
                return mockTracker;
              }
            });

    stream.write(1);
    stream.close();

    verify(mockOutputStream).flush();
    verify(mockOutputStream).close();
    verify(mockHttpConnection).disconnect();
    verify(mockTracker).createClose(KEY, DOMAIN, mockDestination, 1);
    verify(mockTracker).close();
    verify(mockWriteLock).unlock();
  }
コード例 #2
0
 @Test
 public void countOnWrite() throws IOException {
   byte[] b = new byte[] {1, 2, 3, 4, 5};
   stream.write(b);
   stream.flush();
   stream.close();
   verify(mockTracker).createClose(KEY, DOMAIN, mockDestination, 5);
 }
コード例 #3
0
  @Test
  public void everyThingCloses() throws IOException {
    stream.write(1);
    stream.close();

    verify(mockOutputStream).flush();
    verify(mockOutputStream).close();
    verify(mockHttpConnection).disconnect();
    verify(mockTracker).createClose(KEY, DOMAIN, mockDestination, 1);
    verify(mockTracker).close();
    verify(mockWriteLock).unlock();
  }
コード例 #4
0
  @Test
  public void everyThingClosesEvenOnFail() throws IOException {
    doThrow(new RuntimeException()).when(mockOutputStream).flush();
    doThrow(new RuntimeException()).when(mockOutputStream).close();
    when(mockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_INTERNAL_ERROR);
    doThrow(new RuntimeException()).when(mockInputStream).close();
    doThrow(new RuntimeException()).when(mockHttpConnection).disconnect();
    doThrow(new RuntimeException()).when(mockTracker).createClose(KEY, DOMAIN, mockDestination, 1);

    try {
      stream.write(1);
      stream.close();
    } catch (Exception e) {
    }

    verify(mockOutputStream).flush();
    verify(mockOutputStream).close();
    verify(mockHttpConnection).disconnect();
    verify(mockTracker).createClose(KEY, DOMAIN, mockDestination, -1);
    verify(mockTracker).close();
    verify(mockWriteLock).unlock();
  }
コード例 #5
0
 @Test
 public void flushDelegates() throws IOException {
   stream.flush();
   verify(mockOutputStream).flush();
 }
コード例 #6
0
 @Test
 public void writeByteArrayWithOffsetDelegates() throws IOException {
   byte[] b = new byte[4];
   stream.write(b, 2, 4);
   verify(mockOutputStream).write(b, 2, 4);
 }
コード例 #7
0
 @Test
 public void writeIntDelegates() throws IOException {
   stream.write(1);
   verify(mockOutputStream).write(1);
 }