blob: 0cadd3d6350fdfce3de44675a27263a728fe9de9 [file] [log] [blame]
// Copyright (C) 2023 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.googlesource.gerrit.plugins.spannerrefdb;
import com.google.cloud.spanner.DatabaseClient;
import java.util.concurrent.ScheduledThreadPoolExecutor;
public abstract class SpannerTestSystem {
public static SpannerTestSystem create() throws Exception {
SpannerTestSystem testSystem;
if (System.getenv("GOOGLE_APPLICATION_CREDENTIALS") == null) {
testSystem = new EmulatedSpannerRefDb();
} else {
testSystem = RealSpannerRefDb.create();
}
testSystem.reset();
return testSystem;
}
protected SpannerTestSystem() {}
abstract void reset() throws Exception;
abstract SpannerRefDatabase database();
abstract DatabaseClient dbClient();
abstract ScheduledThreadPoolExecutor heartbeatExecutor();
abstract void cleanup();
}