opentelemetry-java/api/src/test/java/io/opentelemetry/metrics/DoubleSumObserverTest.java

80 lines
2.3 KiB
Java

/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.metrics;
import static org.junit.jupiter.api.Assertions.assertThrows;
import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.internal.StringUtils;
import java.util.Arrays;
import org.junit.jupiter.api.Test;
class DoubleSumObserverTest {
private static final String NAME = "name";
private static final String DESCRIPTION = "description";
private static final String UNIT = "1";
private static final Meter meter = OpenTelemetry.getMeter("DoubleSumObserverTest");
@Test
void preventNull_Name() {
assertThrows(NullPointerException.class, () -> meter.doubleSumObserverBuilder(null), "name");
}
@Test
void preventEmpty_Name() {
assertThrows(
IllegalArgumentException.class,
() -> meter.doubleSumObserverBuilder("").build(),
DefaultMeter.ERROR_MESSAGE_INVALID_NAME);
}
@Test
void preventNonPrintableName() {
assertThrows(
IllegalArgumentException.class, () -> meter.doubleSumObserverBuilder("\2").build());
}
@Test
void preventTooLongName() {
char[] chars = new char[StringUtils.METRIC_NAME_MAX_LENGTH + 1];
Arrays.fill(chars, 'a');
String longName = String.valueOf(chars);
assertThrows(
IllegalArgumentException.class,
() -> meter.doubleSumObserverBuilder(longName).build(),
DefaultMeter.ERROR_MESSAGE_INVALID_NAME);
}
@Test
void preventNull_Description() {
assertThrows(
NullPointerException.class,
() -> meter.doubleSumObserverBuilder("metric").setDescription(null).build(),
"description");
}
@Test
void preventNull_Unit() {
assertThrows(
NullPointerException.class,
() -> meter.doubleSumObserverBuilder("metric").setUnit(null).build(),
"unit");
}
@Test
void preventNull_Callback() {
DoubleSumObserver doubleSumObserver = meter.doubleSumObserverBuilder("metric").build();
assertThrows(NullPointerException.class, () -> doubleSumObserver.setCallback(null), "callback");
}
@Test
void doesNotThrow() {
DoubleSumObserver doubleSumObserver =
meter.doubleSumObserverBuilder(NAME).setDescription(DESCRIPTION).setUnit(UNIT).build();
doubleSumObserver.setCallback(result -> {});
}
}