@Test
  public void uploadAvatarForChromeAndFFShouldReturnPreviewInResponce()
      throws ImageProcessException {
    MockHttpServletResponse response = new MockHttpServletResponse();

    avatarController.uploadAvatar(validAvatar, response);

    verify(imageControllerUtils).prepareResponse(eq(validAvatar), eq(response), any(HashMap.class));
  }
  @Test
  @SuppressWarnings("unchecked")
  public void uploadAvatarForOperaAndIEShouldReturnPreviewInResponce()
      throws IOException, ImageProcessException {
    MultipartFile file = new MockMultipartFile("qqfile", validAvatar);

    ResponseEntity<String> actualResponseEntity = avatarController.uploadAvatar(file);

    verify(imageControllerUtils)
        .prepareResponse(eq(file), any(HttpHeaders.class), any(HashMap.class));
  }
  @SuppressWarnings("unchecked")
  public void getDefaultAvatarShouldReturnDefaultAvatarInBase64String()
      throws IOException, ImageProcessException {
    String expectedJSON = "{\"team\": \"larks\"}";
    when(imageControllerUtils.getDefaultImage()).thenReturn(validAvatar);
    when(imageControllerUtils.convertImageToIcoInString64(validAvatar))
        .thenReturn(IMAGE_BYTE_ARRAY_IN_BASE_64_STRING);
    when(imageControllerUtils.getResponceJSONString(Matchers.anyMap())).thenReturn(expectedJSON);

    String actualJSON = avatarController.getDefaultAvatar();

    assertEquals(actualJSON, expectedJSON);
  }
  @Test
  public void renderAvatarShouldNotReturnNotModifiedAvatarInResponse()
      throws IOException, NotFoundException {
    JCUser user = getUser();
    user.setAvatar(validAvatar);
    user.setAvatarLastModificationTime(new DateTime(0));
    when(userService.get(anyLong())).thenReturn(user);
    MockHttpServletResponse response = new MockHttpServletResponse();
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.addHeader(avatarController.IF_MODIFIED_SINCE_HEADER, new Date(1000));

    avatarController.renderAvatar(request, response, 0L);

    assertEquals(response.getStatus(), HttpServletResponse.SC_NOT_MODIFIED);
    assertNotSame(response.getContentAsByteArray(), validAvatar);
    assertEquals(response.getHeader("Pragma"), "public");
    List<String> cacheControlHeaders = response.getHeaders("Cache-Control");
    assertTrue(cacheControlHeaders.contains("public"));
    assertTrue(cacheControlHeaders.contains("must-revalidate"));
    assertTrue(cacheControlHeaders.contains("max-age=0"));
    assertNotNull(response.getHeader("Expires")); // System.currentTimeMillis() is used
    assertNotNull(response.getHeader("Last-Modified")); // depends on current timezone
  }