diff options
Diffstat (limited to 'gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java')
-rw-r--r-- | gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java deleted file mode 100644 index a8f77671aa..0000000000 --- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright (C) 2013 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.acceptance; - -import static com.google.common.base.Preconditions.checkNotNull; -import static java.nio.charset.StandardCharsets.US_ASCII; - -import com.google.gerrit.common.Nullable; -import com.google.gerrit.common.errors.NoSuchGroupException; -import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.server.ReviewDb; -import com.google.gerrit.server.Sequences; -import com.google.gerrit.server.account.AccountsUpdate; -import com.google.gerrit.server.account.GroupCache; -import com.google.gerrit.server.account.VersionedAuthorizedKeys; -import com.google.gerrit.server.account.externalids.ExternalId; -import com.google.gerrit.server.account.externalids.ExternalIdsUpdate; -import com.google.gerrit.server.group.GroupsUpdate; -import com.google.gerrit.server.group.InternalGroup; -import com.google.gerrit.server.group.ServerInitiated; -import com.google.gerrit.server.ssh.SshKeyCache; -import com.google.gwtorm.server.SchemaFactory; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import com.jcraft.jsch.JSch; -import com.jcraft.jsch.JSchException; -import com.jcraft.jsch.KeyPair; -import java.io.ByteArrayOutputStream; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -@Singleton -public class AccountCreator { - private final Map<String, TestAccount> accounts; - - private final SchemaFactory<ReviewDb> reviewDbProvider; - private final Sequences sequences; - private final AccountsUpdate.Server accountsUpdate; - private final VersionedAuthorizedKeys.Accessor authorizedKeys; - private final GroupCache groupCache; - private final Provider<GroupsUpdate> groupsUpdateProvider; - private final SshKeyCache sshKeyCache; - private final ExternalIdsUpdate.Server externalIdsUpdate; - private final boolean sshEnabled; - - @Inject - AccountCreator( - SchemaFactory<ReviewDb> schema, - Sequences sequences, - AccountsUpdate.Server accountsUpdate, - VersionedAuthorizedKeys.Accessor authorizedKeys, - GroupCache groupCache, - @ServerInitiated Provider<GroupsUpdate> groupsUpdateProvider, - SshKeyCache sshKeyCache, - ExternalIdsUpdate.Server externalIdsUpdate, - @SshEnabled boolean sshEnabled) { - accounts = new HashMap<>(); - reviewDbProvider = schema; - this.sequences = sequences; - this.accountsUpdate = accountsUpdate; - this.authorizedKeys = authorizedKeys; - this.groupCache = groupCache; - this.groupsUpdateProvider = groupsUpdateProvider; - this.sshKeyCache = sshKeyCache; - this.externalIdsUpdate = externalIdsUpdate; - this.sshEnabled = sshEnabled; - } - - public synchronized TestAccount create( - @Nullable String username, - @Nullable String email, - @Nullable String fullName, - String... groupNames) - throws Exception { - - TestAccount account = accounts.get(username); - if (account != null) { - return account; - } - try (ReviewDb db = reviewDbProvider.open()) { - Account.Id id = new Account.Id(sequences.nextAccountId()); - - List<ExternalId> extIds = new ArrayList<>(2); - String httpPass = null; - if (username != null) { - httpPass = "http-pass"; - extIds.add(ExternalId.createUsername(username, id, httpPass)); - } - - if (email != null) { - extIds.add(ExternalId.createEmail(id, email)); - } - externalIdsUpdate.create().insert(extIds); - - accountsUpdate - .create() - .insert( - id, - a -> { - a.setFullName(fullName); - a.setPreferredEmail(email); - }); - - if (groupNames != null) { - for (String n : groupNames) { - AccountGroup.NameKey k = new AccountGroup.NameKey(n); - Optional<InternalGroup> group = groupCache.get(k); - if (!group.isPresent()) { - throw new NoSuchGroupException(n); - } - groupsUpdateProvider.get().addGroupMember(db, group.get().getGroupUUID(), id); - } - } - - KeyPair sshKey = null; - if (sshEnabled && username != null) { - sshKey = genSshKey(); - authorizedKeys.addKey(id, publicKey(sshKey, email)); - sshKeyCache.evict(username); - } - - account = new TestAccount(id, username, email, fullName, sshKey, httpPass); - if (username != null) { - accounts.put(username, account); - } - return account; - } - } - - public TestAccount create(@Nullable String username, String group) throws Exception { - return create(username, null, username, group); - } - - public TestAccount create() throws Exception { - return create(null); - } - - public TestAccount create(@Nullable String username) throws Exception { - return create(username, null, username, (String[]) null); - } - - public TestAccount admin() throws Exception { - return create("admin", "admin@example.com", "Administrator", "Administrators"); - } - - public TestAccount admin2() throws Exception { - return create("admin2", "admin2@example.com", "Administrator2", "Administrators"); - } - - public TestAccount user() throws Exception { - return create("user", "user@example.com", "User"); - } - - public TestAccount user2() throws Exception { - return create("user2", "user2@example.com", "User2"); - } - - public TestAccount get(String username) { - return checkNotNull(accounts.get(username), "No TestAccount created for %s", username); - } - - public static KeyPair genSshKey() throws JSchException { - JSch jsch = new JSch(); - return KeyPair.genKeyPair(jsch, KeyPair.RSA); - } - - public static String publicKey(KeyPair sshKey, String comment) - throws UnsupportedEncodingException { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - sshKey.writePublicKey(out, comment); - return out.toString(US_ASCII.name()).trim(); - } -} |