@Test
  public void test_getUserByName_nullNotFound_anonymous() {
    when(mockUserAccessor.getUser(null)).thenReturn(null);

    User result = classUnderTest.getUserByName(null);

    assertThat(result.getFullName(), is(new AnonymousUser().getFullName()));
  }
  @Test
  public void test_getRemoteUser_success() {
    when(mockUserManager.getRemoteUsername()).thenReturn("someUser");
    when(mockUserAccessor.getUser("someUser")).thenReturn(new DefaultUser("someUser"));

    final User remoteUser = classUnderTest.getRemoteUser();

    assertThat(remoteUser.getName(), is("someUser"));
  }
  @Test
  public void test_getUsersForGroupOrUser_oneUserDoesNotExist_success() {
    when(mockUserAccessor.getGroup(SOME_USER1.getName())).thenReturn(null);
    when(mockUserAccessor.getUser(SOME_USER1.getName())).thenReturn(null);

    final List<User> result = classUnderTest.getActiveUsersForGroupOrUser(SOME_USER1.getName());

    assertThat(result, hasSize(0));
  }
  @Test
  public void test_getUsersForGroupOrUser_oneUserExistsAndIsNotDeactivated_success() {
    when(mockUserAccessor.getGroup(SOME_USER1.getName())).thenReturn(null);
    when(mockUserAccessor.getUser(SOME_USER1.getName())).thenReturn(SOME_USER1);
    when(mockUserAccessor.isDeactivated(SOME_USER1)).thenReturn(false);

    final List<User> result = classUnderTest.getActiveUsersForGroupOrUser(SOME_USER1.getName());

    assertThat(result, containsInAnyOrder(SOME_USER1));
  }
  @Test
  public void test_canCreatePage_success() {
    final Page contentEntityObject = new Page();

    when(mockUserManager.getRemoteUsername()).thenReturn(SOME_USER1.getName());
    when(mockUserAccessor.getUser(SOME_USER1.getName())).thenReturn(SOME_USER1);
    when(mockPermissionManager.hasPermission(SOME_USER1, Permission.EDIT, contentEntityObject))
        .thenReturn(true);

    final boolean result = classUnderTest.canCreatePage(contentEntityObject);
    assertThat(result, is(true));
  }
  @Test
  public void test_canAttachFile_success() {
    ContentEntityObject contentEntityObject = new Page();

    when(mockUserManager.getRemoteUsername()).thenReturn(SOME_USER1.getName());
    when(mockUserAccessor.getUser(SOME_USER1.getName())).thenReturn(SOME_USER1);
    when(mockPermissionManager.hasCreatePermission(
            SOME_USER1, contentEntityObject, Attachment.class))
        .thenReturn(true);

    boolean result = classUnderTest.canAttachFile(contentEntityObject);

    assertThat(result, is(true));
  }
  @Test
  public void test_getUsersForGroupOrUser_oneGroupReturnsTwoUsers_success() {
    final DefaultGroup group1 = new DefaultGroup("group1");

    when(mockUserAccessor.getGroup(group1.getName())).thenReturn(group1);
    when(mockUserAccessor.getMemberNamesAsList(group1))
        .thenReturn(newArrayList(SOME_USER1.getName(), SOME_USER2.getName()));
    when(mockUserAccessor.getUser(SOME_USER1.getName())).thenReturn(SOME_USER1);
    when(mockUserAccessor.getUser(SOME_USER2.getName())).thenReturn(SOME_USER2);

    final List<User> result = classUnderTest.getActiveUsersForGroupOrUser(group1.getName());

    assertThat(result, containsInAnyOrder(SOME_USER1, SOME_USER2));
  }