package io.pcp.parfait.dxm;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class MetricNameValidatorTest {
private static final String METRIC_NAME_64_CHARS = "metric.name.that.is.64.characters.long.metric.name.that.is.64.ch";
private static final String METRIC_NAME_63_CHARS = "metric.name.that.is.63.characters.long.metric.name.that.is.63.c";
private static final String INSTANCE_NAME_64_CHARS = "instance.name.of.64.characters.instance.name.of.64.characters.in";
private static final String INSTANCE_NAME_63_CHARS = "instance.name.of.63.characters.instance.name.of.63.characters.i";
private static final int NAME_LIMIT = 63;
private static final int DOMAIN_LIMIT = 63;
private MetricNameValidator validator;
@Before
public void setUp() throws Exception {
validator = new MetricNameValidator(NAME_LIMIT, DOMAIN_LIMIT);
}
@Test(expected = IllegalArgumentException.class)
public void shouldRaiseAnErrorIfTheMetricNameIsLongerThanTheAllowedLength() {
MetricName metricName = mock(MetricName.class);
when(metricName.getMetric()).thenReturn(METRIC_NAME_64_CHARS);
validator.validateNameConstraints(metricName);
}
@Test
public void shouldNotRaiseAnErrorIfTheMetricNameIsUnderTheLimit() {
MetricName metricName = mock(MetricName.class);
when(metricName.getMetric()).thenReturn(METRIC_NAME_63_CHARS);
validator.validateNameConstraints(metricName);
}
@Test(expected = IllegalArgumentException.class)
public void shouldRaiseAnErrorIfTheMetricHasAnInstanceAndItsNameIsLongerThanTheAllowedLength() {
MetricName metricName = mock(MetricName.class);
when(metricName.getMetric()).thenReturn("");
when(metricName.hasInstance()).thenReturn(true);
when(metricName.getInstance()).thenReturn(INSTANCE_NAME_64_CHARS);
validator.validateNameConstraints(metricName);
}
@Test
public void shouldNotRaiseAnErrorIfTheMetricHasAnInstanceAndItsNameIsShorterThanTheAllowedLength() {
MetricName metricName = mock(MetricName.class);
when(metricName.getMetric()).thenReturn("");
when(metricName.hasInstance()).thenReturn(true);
when(metricName.getInstance()).thenReturn(INSTANCE_NAME_63_CHARS);
validator.validateNameConstraints(metricName);
}
}