@Override @CheckForNull public String getName() { return userDto == null ? null : userDto.getName(); }
private static String nameOrLogin(UserDto newUser) { String name = newUser.getName(); if (name == null || name.isEmpty()) { return newUser.getLogin(); } return name; }
private static boolean updateName(UpdateUser updateUser, UserDto userDto, List<String> messages) { String name = updateUser.name(); if (updateUser.isNameChanged() && validateNameFormat(name, messages) && !Objects.equals(userDto.getName(), name)) { userDto.setName(name); return true; } return false; }
private Users.User.Builder formatUser(UserDto user) { Users.User.Builder builder = Users.User.newBuilder() .setLogin(user.getLogin()) .setName(nullToEmpty(user.getName())) .setActive(user.isActive()); ofNullable(emptyToNull(user.getEmail())).ifPresent(email -> builder.setAvatar(avatarFactory.create(user))); return builder; }
@Test public void assign() { UserDto user = newUserDto().setLogin("emmerik").setName("Emmerik"); boolean updated = underTest.assign(issue, user, context); assertThat(updated).isTrue(); assertThat(issue.assignee()).isEqualTo(user.getUuid()); assertThat(issue.mustSendNotifications()).isTrue(); FieldDiffs.Diff diff = issue.currentChange().get(ASSIGNEE); assertThat(diff.oldValue()).isEqualTo(UNUSED); assertThat(diff.newValue()).isEqualTo(user.getName()); }
@Test public void change_assignee() { UserDto user = newUserDto().setLogin("emmerik").setName("Emmerik"); issue.setAssigneeUuid("user_uuid"); boolean updated = underTest.assign(issue, user, context); assertThat(updated).isTrue(); assertThat(issue.assignee()).isEqualTo(user.getUuid()); assertThat(issue.mustSendNotifications()).isTrue(); FieldDiffs.Diff diff = issue.currentChange().get(ASSIGNEE); assertThat(diff.oldValue()).isEqualTo(UNUSED); assertThat(diff.newValue()).isEqualTo(user.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 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 notification_sender_should_be_the_author_of_change() { UserDto user = db.users().insertUser(); Notification notification = new IssueChangeNotification() .setChangeAuthor(user) .setProject("Struts", "org.apache:struts", null, null); EmailMessage message = underTest.format(notification); assertThat(message.getFrom()).isEqualTo(user.getName()); }
@Test public void return_user_info() { OrganizationDto organization = db.organizations().insert(); db.users().insertDefaultGroup(organization, "default"); UserDto user = db.users().insertUser(u -> u.setEmail("john@smith.com")); AddMemberWsResponse result = call(organization.getKey(), user.getLogin()); assertThat(result.getUser().getLogin()).isEqualTo(user.getLogin()); assertThat(result.getUser().getName()).isEqualTo(user.getName()); assertThat(result.getUser().getAvatar()).isEqualTo("b0d8c6e5ea589e6fc3d3e08afb1873bb"); assertThat(result.getUser().getGroupCount()).isEqualTo(1); }
@Test public void create_user_generates_unique_login_no_login_provided() { createDefaultGroup(); UserDto user = underTest.createAndCommit(db.getSession(), NewUser.builder() .setName("John Doe") .build(), u -> { }); UserDto dto = dbClient.userDao().selectByLogin(session, user.getLogin()); assertThat(dto.getLogin()).startsWith("john-doe"); assertThat(dto.getName()).isEqualTo("John Doe"); }
public MockUserSession(UserDto userDto) { super(MockUserSession.class); checkArgument(!userDto.getLogin().isEmpty()); this.login = userDto.getLogin(); setUuid(userDto.getUuid()); setUserId(userDto.getId()); setName(userDto.getName()); AbstractUserSession.Identity identity = computeIdentity(userDto); this.identityProvider = identity.getIdentityProvider(); this.externalIdentity = identity.getExternalIdentity(); }
@Test public void create_user_generates_unique_login_when_login_is_empty() { createDefaultGroup(); UserDto user = underTest.createAndCommit(db.getSession(), NewUser.builder() .setLogin("") .setName("John Doe") .build(), u -> { }); UserDto dto = dbClient.userDao().selectByLogin(session, user.getLogin()); assertThat(dto.getLogin()).startsWith("john-doe"); assertThat(dto.getName()).isEqualTo("John Doe"); }
@Test public void does_not_set_notifications_readDate_setting_when_reactivating_user_when_not_on_sonar_cloud() { createDefaultGroup(); UserDto user = db.users().insertDisabledUser(); underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder() .setLogin(user.getLogin()) .setName(user.getName()) .build(), u -> { }); assertThat(dbClient.userPropertiesDao().selectByUser(session, user)).isEmpty(); }
@Override public void init(Context context) { throw new EmailAlreadyExistsRedirectionException(existingUser.getEmail(), existingUser, UserIdentity.builder() .setProviderLogin("john.github") .setLogin("john.github") .setName(existingUser.getName()) .setEmail(existingUser.getEmail()) .build(), this); } }
@Override public void callback(CallbackContext context) { throw new EmailAlreadyExistsRedirectionException(existingUser.getEmail(), existingUser, UserIdentity.builder() .setProviderLogin("john.github") .setLogin("john.github") .setName(existingUser.getName()) .setEmail(existingUser.getEmail()) .build(), this); } }
@Test public void reactivate_not_onboarded_user_if_onboarding_setting_is_set_to_false() { settings.setProperty(ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS.getKey(), false); UserDto user = db.users().insertDisabledUser(u -> u.setOnboarded(false)); createDefaultGroup(); underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder() .setLogin(user.getLogin()) .setName(user.getName()) .build(), u -> { }); assertThat(dbClient.userDao().selectByLogin(session, user.getLogin()).isOnboarded()).isTrue(); }
@Test public void reactivate_onboarded_user_if_onboarding_setting_is_set_to_true() { settings.setProperty(ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS.getKey(), true); UserDto user = db.users().insertDisabledUser(u -> u.setOnboarded(true)); createDefaultGroup(); underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder() .setLogin(user.getLogin()) .setName(user.getName()) .build(), u -> { }); assertThat(dbClient.userDao().selectByLogin(session, user.getLogin()).isOnboarded()).isFalse(); }
@Test public void fail_to_reactivate_user_if_active() { UserDto user = db.users().insertUser(); createDefaultGroup(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage(format("An active user with login '%s' already exists", user.getLogin())); underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder() .setLogin(user.getLogin()) .setName(user.getName()) .build(), u -> { }); }
@Test public void add_user_as_member_of_default_organization_when_reactivating_user_and_organizations_are_disabled() { UserDto user = db.users().insertDisabledUser(); createDefaultGroup(); UserDto dto = underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder().setLogin(user.getLogin()).setName(user.getName()).build(), u -> { }); assertThat(dbClient.organizationMemberDao().select(db.getSession(), defaultOrganizationProvider.get().getUuid(), dto.getId())).isPresent(); }