blob: b1866582ad2eb715ac0a447c909979f0bb3aee6e [file] [log] [blame]
// Copyright (C) 2019 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.healthcheck;
import static com.google.common.truth.Truth.assertThat;
import com.google.gerrit.metrics.Counter0;
import com.google.gerrit.metrics.Description;
import com.google.gerrit.metrics.DisabledMetricMaker;
import com.google.gerrit.metrics.Timer0;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
public class HealthCheckMetricsTest {
@Test
public void shouldReturnACounterWithCorrectValues() {
String testMetricName = "testMetric";
TestMetrics testMetrics = new TestMetrics();
HealthCheckMetrics healthCheckMetrics = new HealthCheckMetrics(testMetrics, testMetricName);
healthCheckMetrics.getFailureCounterMetric();
assertThat(testMetrics.metricName).isEqualTo(testMetricName + "/failure");
assertThat(testMetrics.metricDescription.toString())
.isEqualTo(
new Description(String.format("%s healthcheck failures count", testMetricName))
.setCumulative()
.setRate()
.setUnit("failures")
.toString());
}
@Test
public void shouldReturnATimerWithCorrectValues() {
String testMetricName = "testMetric";
TestMetrics testMetrics = new TestMetrics();
HealthCheckMetrics healthCheckMetrics = new HealthCheckMetrics(testMetrics, testMetricName);
healthCheckMetrics.getLatencyMetric();
assertThat(testMetrics.metricName).isEqualTo(testMetricName + "/latest_latency");
assertThat(testMetrics.metricDescription.toString())
.isEqualTo(
new Description(String.format("%s health check latency execution (ms)", testMetricName))
.setCumulative()
.setUnit(Description.Units.MILLISECONDS)
.toString());
}
private static class TestMetrics extends DisabledMetricMaker {
String metricName;
Description metricDescription;
@Override
public Counter0 newCounter(String name, Description desc) {
metricName = name;
metricDescription = desc;
return new Counter0() {
@Override
public void incrementBy(long value) {}
@Override
public void remove() {}
};
}
@Override
public Timer0 newTimer(String name, Description desc) {
metricName = name;
metricDescription = desc;
return new Timer0(name) {
@Override
protected void doRecord(long value, TimeUnit unit) {}
@Override
public void remove() {}
};
}
}
}