TestAccountCreation: Support specifying secondary emails
Signed-off-by: Edwin Kempin <ekempin@google.com> Change-Id: I67c8bee7110ed6512615f78c5ba17c234a066c25
This commit is contained in:
@@ -83,6 +83,11 @@ public class AccountOperationsImpl implements AccountOperations {
|
||||
accountCreation.username().ifPresent(u -> setUsername(builder, accountId, u, httpPassword));
|
||||
accountCreation.status().ifPresent(builder::setStatus);
|
||||
accountCreation.active().ifPresent(builder::setActive);
|
||||
accountCreation
|
||||
.secondaryEmails()
|
||||
.forEach(
|
||||
secondaryEmail ->
|
||||
builder.addExternalId(ExternalId.createEmail(accountId, secondaryEmail)));
|
||||
}
|
||||
|
||||
private static InternalAccountUpdate.Builder setPreferredEmail(
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
|
||||
package com.google.gerrit.acceptance.testsuite.account;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.gerrit.acceptance.testsuite.ThrowingFunction;
|
||||
import com.google.gerrit.entities.Account;
|
||||
import java.util.Optional;
|
||||
@@ -33,6 +36,8 @@ public abstract class TestAccountCreation {
|
||||
|
||||
public abstract Optional<Boolean> active();
|
||||
|
||||
public abstract ImmutableSet<String> secondaryEmails();
|
||||
|
||||
abstract ThrowingFunction<TestAccountCreation, Account.Id> accountCreator();
|
||||
|
||||
public static Builder builder(ThrowingFunction<TestAccountCreation, Account.Id> accountCreator) {
|
||||
@@ -83,14 +88,29 @@ public abstract class TestAccountCreation {
|
||||
return active(false);
|
||||
}
|
||||
|
||||
public abstract Builder secondaryEmails(ImmutableSet<String> secondaryEmails);
|
||||
|
||||
abstract ImmutableSet.Builder<String> secondaryEmailsBuilder();
|
||||
|
||||
public Builder addSecondaryEmail(String secondaryEmail) {
|
||||
secondaryEmailsBuilder().add(secondaryEmail);
|
||||
return this;
|
||||
}
|
||||
|
||||
abstract Builder accountCreator(
|
||||
ThrowingFunction<TestAccountCreation, Account.Id> accountCreator);
|
||||
|
||||
abstract TestAccountCreation autoBuild();
|
||||
|
||||
public Account.Id create() {
|
||||
TestAccountCreation accountUpdate = autoBuild();
|
||||
return accountUpdate.accountCreator().applyAndThrowSilently(accountUpdate);
|
||||
TestAccountCreation accountCreation = autoBuild();
|
||||
if (accountCreation.preferredEmail().isPresent()) {
|
||||
checkState(
|
||||
!accountCreation.secondaryEmails().contains(accountCreation.preferredEmail().get()),
|
||||
"preferred email %s cannot be secondary email at the same time",
|
||||
accountCreation.preferredEmail().get());
|
||||
}
|
||||
return accountCreation.accountCreator().applyAndThrowSilently(accountCreation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user