summaryrefslogtreecommitdiffstats
path: root/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java')
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java b/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
new file mode 100644
index 0000000000..020a15834c
--- /dev/null
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
@@ -0,0 +1,72 @@
+// Copyright (C) 2016 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.elasticsearch;
+
+import com.google.gerrit.index.IndexDefinition;
+import com.google.gerrit.server.index.IndexModule.IndexType;
+import com.google.inject.Injector;
+import com.google.inject.Key;
+import com.google.inject.TypeLiteral;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.UUID;
+import org.eclipse.jgit.lib.Config;
+
+public final class ElasticTestUtils {
+ public static class ElasticNodeInfo {
+ public final int port;
+
+ public ElasticNodeInfo(int port) {
+ this.port = port;
+ }
+ }
+
+ public static void configure(Config config, int port, String prefix, ElasticVersion version) {
+ config.setEnum("index", null, "type", IndexType.ELASTICSEARCH);
+ config.setString("elasticsearch", null, "server", "http://localhost:" + port);
+ config.setString("elasticsearch", null, "prefix", prefix);
+ config.setInt("index", null, "maxLimit", 10000);
+ String password = version == ElasticVersion.V5_6 ? "changeme" : null;
+ if (password != null) {
+ config.setString("elasticsearch", null, "password", password);
+ }
+ }
+
+ public static void configure(Config config, int port, String prefix) {
+ configure(config, port, prefix, null);
+ }
+
+ public static void createAllIndexes(Injector injector) throws IOException {
+ Collection<IndexDefinition<?, ?, ?>> indexDefs =
+ injector.getInstance(Key.get(new TypeLiteral<Collection<IndexDefinition<?, ?, ?>>>() {}));
+ for (IndexDefinition<?, ?, ?> indexDef : indexDefs) {
+ indexDef.getIndexCollection().getSearchIndex().deleteAll();
+ }
+ }
+
+ public static Config getConfig(ElasticVersion version) {
+ ElasticNodeInfo elasticNodeInfo;
+ ElasticContainer container = ElasticContainer.createAndStart(version);
+ elasticNodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
+ String indicesPrefix = UUID.randomUUID().toString();
+ Config cfg = new Config();
+ configure(cfg, elasticNodeInfo.port, indicesPrefix, version);
+ return cfg;
+ }
+
+ private ElasticTestUtils() {
+ // hide default constructor
+ }
+}