summaryrefslogtreecommitdiffstats
path: root/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/AccountCreator.java
diff options
context:
space:
mode:
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.java191
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();
- }
-}