@Test
  /** for {@link SingleThumbnailAdapter#get()} */
  public void should_return_proper_operation_result() {

    // Given
    mockStatic(JerseyRequest.class);
    when(buildRequest(
            eq(sessionStorageMock),
            eq(InputStream.class),
            eq(new String[] {"/thumbnails", "/public/Samples/Reports/07g.RevenueDetailReport"}),
            any(DefaultErrorHandler.class)))
        .thenReturn(jerseyRequestMock);
    when(jerseyRequestMock.setAccept("image/jpeg")).thenReturn(jerseyRequestMock);
    when(jerseyRequestMock.get()).thenReturn(operationResultMock);
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
    thumbnailAdapter.report("/public/Samples/Reports/07g.RevenueDetailReport");

    // When
    OperationResult<InputStream> retrieved = thumbnailAdapter.get();

    // Then
    assertNotNull(retrieved);
    assertSame(retrieved, operationResultMock);
    verify(jerseyRequestMock).setAccept(eq("image/jpeg"));
    verify(jerseyRequestMock).get();
    verifyStatic(times(1));
    buildRequest(
        eq(sessionStorageMock),
        eq(InputStream.class),
        eq(new String[] {"/thumbnails", "/public/Samples/Reports/07g.RevenueDetailReport"}),
        any(DefaultErrorHandler.class));
  }
 @Test
 /** for {@link SingleThumbnailAdapter#SingleThumbnailAdapter(SessionStorage)} */
 public void should_pass_session_storage_to_parent_adapter() {
   // When
   SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
   SessionStorage retrieved = thumbnailAdapter.getSessionStorage();
   // Then
   assertSame(retrieved, sessionStorageMock);
 }
  @Test(expectedExceptions = MandatoryParameterNotFoundException.class)
  /** for {@link SingleThumbnailAdapter#report(String)} */
  public void should_throw_exception_when_report_uri_is_empty() {
    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);

    // When
    thumbnailAdapter.report("").get();

    // Then
  }
  @Test
  /** for {@link SingleThumbnailAdapter#report(String)} */
  public void should_not_set_null_report_uri() {
    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);

    // When
    SingleThumbnailAdapter retrieved = thumbnailAdapter.report(null);

    // Then
    String reportName = (String) Whitebox.getInternalState(retrieved, "reportName");
    assertNull(reportName);
  }
  @Test
  /** for {@link SingleThumbnailAdapter#report(String)} */
  public void should_set_report_uri() {
    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);

    // When
    SingleThumbnailAdapter retrieved =
        thumbnailAdapter.report("/public/Samples/Reports/07g.RevenueDetailReport");

    // Then
    String reportName = (String) Whitebox.getInternalState(retrieved, "reportName");
    assertEquals(reportName, "/public/Samples/Reports/07g.RevenueDetailReport");
  }
  @Test(expectedExceptions = MandatoryParameterNotFoundException.class)
  /** for {@link SingleThumbnailAdapter#get()} */
  public void should_throw_exception() {

    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
    thumbnailAdapter.report(null);

    // When
    OperationResult<InputStream> retrieved = thumbnailAdapter.get();

    // Then
    // An exception should be thrown

  }
  @Test
  /** for {@link SingleThumbnailAdapter#defaultAllowed(Boolean)} */
  public void should_set_thumbnails_parameter() {

    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);

    // When
    SingleThumbnailAdapter retrieved = thumbnailAdapter.defaultAllowed(true);

    // Then
    Boolean param = (Boolean) Whitebox.getInternalState(retrieved, "defaultAllowed");
    assertSame(retrieved, thumbnailAdapter);
    assertEquals(param, Boolean.TRUE);
  }
  @Test
  /** for {@link SingleThumbnailAdapter#report(String)} */
  public void should_set_report_uri_with_default_allowed() {
    // Given
    SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);

    // When
    SingleThumbnailAdapter retrieved =
        thumbnailAdapter
            .defaultAllowed(true)
            .report("/public/Samples/Reports/07g.RevenueDetailReport");

    // Then
    Boolean param = (Boolean) Whitebox.getInternalState(retrieved, "defaultAllowed");
    assertSame(retrieved, thumbnailAdapter);
    assertEquals(param, Boolean.TRUE);
  }