package ru.yandex.market.graphouse;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Dmitry Andreev <a href="mailto:AndreevDm@yandex-team.ru"></a>
* @date 06/02/2017
*/
public class MetricValidatorTest {
public static final MetricValidator VALIDATOR = new MetricValidator("[-_0-9a-zA-Z\\\\.]*$", 5, 500, 2, 20);
@Test
public void testValidate() throws Exception {
valid("five_min.", true);
invalid("gdsgsgs", true);
valid("one_min.fdsfdsfs.fdsfsfsd", true);
invalid("five_min.", false);
invalid("-嘊-嘊嘍-嘍-aaa_.._tt_personal-billing-report_xml.0_995", true);
invalid("market.mbo-front-iva.timings-dynamic.3febfdd52d4fea02xxx'x22<>_.._tt_personal-billing-report_xml_.0_995", true);
invalid("market.mbo-front-iva.timings-dynamic.tt_personal-billing-report_xml_3febfdd52d4fea02xxx'x22<>_...0_99", true);
invalid("one_min.fdsfdsfs..fdsfsfsd", true);
invalid("one_min.fdsfdsfs.fdsfsfsd.", false);
valid("one_min.fdsfdsfs.fdsfsfsd.", true);
invalid(".one_min.fdsfdsfs.fdsfsfsd", true);
invalid("one_min..x", true);
invalid("one_min.x.x.d.d.d.d.d.d.x.x.x.x.d.x.d.d.x.d.d.d.d.d.d.x.x.x.x.d.x.d.d", true);
invalid("nameadsfdsfdsfdsfsd", true);
invalid("a.b", true);
}
private void valid(String metric, boolean allowDirs) {
Assert.assertTrue("Must be valid: " + metric, VALIDATOR.validate(metric, allowDirs));
}
private void invalid(String metric, boolean allowDirs) {
Assert.assertFalse("Must be invalid: " + metric, VALIDATOR.validate(metric, allowDirs));
}
}