private UserDto insertActiveUser() { return insertUser(true); }
@Test public void scrollByUuids_scrolls_by_pages_of_1000_uuids() { List<String> uuids = new ArrayList<>(); for (int i = 0; i < DatabaseUtils.PARTITION_SIZE_FOR_ORACLE + 10; i++) { uuids.add(insertUser(true).getUuid()); } List<UserDto> result = new ArrayList<>(); underTest.scrollByUuids(db.getSession(), uuids, result::add); assertThat(result) .extracting(UserDto::getUuid) .containsExactlyInAnyOrder(uuids.toArray(new String[0])); }
@Test public void scrollByLUuids() { UserDto u1 = insertUser(true); UserDto u2 = insertUser(false); UserDto u3 = insertUser(false); List<UserDto> result = new ArrayList<>(); underTest.scrollByUuids(db.getSession(), asList(u2.getUuid(), u3.getUuid(), "does not exist"), result::add); assertThat(result).extracting(UserDto::getUuid, UserDto::getName) .containsExactlyInAnyOrder(tuple(u2.getUuid(), u2.getName()), tuple(u3.getUuid(), u3.getName())); }
@Test public void scrollAll() { UserDto u1 = insertUser(true); UserDto u2 = insertUser(false); List<UserDto> result = new ArrayList<>(); underTest.scrollAll(db.getSession(), result::add); assertThat(result).extracting(UserDto::getLogin, UserDto::getName) .containsExactlyInAnyOrder(tuple(u1.getLogin(), u1.getName()), tuple(u2.getLogin(), u2.getName())); }
@Test public void setRoot_has_no_effect_on_root_flag_of_inactive_user() { String nonRootInactiveUser = insertUser(false).getLogin(); commit(() -> underTest.setRoot(session, nonRootInactiveUser, true)); assertThat(underTest.selectByLogin(session, nonRootInactiveUser).isRoot()).isFalse(); // create inactive root user UserDto rootUser = insertActiveUser(); commit(() -> underTest.setRoot(session, rootUser.getLogin(), true)); rootUser.setActive(false); commit(() -> underTest.update(session, rootUser)); UserDto inactiveRootUser = underTest.selectByLogin(session, rootUser.getLogin()); assertThat(inactiveRootUser.isRoot()).isTrue(); assertThat(inactiveRootUser.isActive()).isFalse(); commit(() -> underTest.setRoot(session, inactiveRootUser.getLogin(), false)); assertThat(underTest.selectByLogin(session, inactiveRootUser.getLogin()).isRoot()).isTrue(); }
@Test public void selectUsers_returns_both_only_root_or_only_non_root_depending_on_mustBeRoot_and_mustNotBeRoot_calls_on_query() { UserDto user1 = insertUser(true); UserDto root1 = insertRootUser(newUserDto()); UserDto user2 = insertUser(true); UserDto root2 = insertRootUser(newUserDto()); assertThat(underTest.selectUsers(session, UserQuery.builder().build())) .extracting(UserDto::getLogin) .containsOnly(user1.getLogin(), user2.getLogin(), root1.getLogin(), root2.getLogin()); assertThat(underTest.selectUsers(session, UserQuery.builder().mustBeRoot().build())) .extracting(UserDto::getLogin) .containsOnly(root1.getLogin(), root2.getLogin()); assertThat(underTest.selectUsers(session, UserQuery.builder().mustNotBeRoot().build())) .extracting(UserDto::getLogin) .containsOnly(user1.getLogin(), user2.getLogin()); }