/** * Constructs a filter from a specification. */ public ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification spec) { if (spec == null) return; for (PrototypeMeasurementFilterSpecification.TagFilterSpecification tag : spec.getTags()) { this.tags.add(new TagFilterPattern(tag)); } }
/** * Constructs a filter from a specification. */ public ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification spec) { if (spec == null) return; for (PrototypeMeasurementFilterSpecification.TagFilterSpecification tag : spec.getTags()) { this.tags.add(new TagFilterPattern(tag)); } }
@Test public void testPatternFromSpec() { List<PrototypeMeasurementFilter.TagFilterPattern> tagPatterns = Arrays.asList( new PrototypeMeasurementFilter.TagFilterPattern(Pattern.compile("tagA"), Pattern.compile("X")), new PrototypeMeasurementFilter.TagFilterPattern(Pattern.compile("tagB"), Pattern.compile("Y"))); PrototypeMeasurementFilter.MeterFilterPattern meterPattern = new PrototypeMeasurementFilter.MeterFilterPattern("meterA", meterSpecA); Assertions.assertEquals(meterPattern.getValues().size(), 1); Assertions.assertEquals(meterPattern.getValues().get(0).getTags(), tagPatterns); }
@Test public void keepTagNotOk() { PrototypeMeasurementFilter.TagFilterPattern pattern = new PrototypeMeasurementFilter.TagFilterPattern( Pattern.compile(".+_name_.+"), Pattern.compile(".+_value_.+")); Tag tagOnlyNameOk = new BasicTag("some_name_value", "some_string"); Tag tagOnlyValueOk = new BasicTag("some_value", "some_value_string"); Tag tagNeitherOk = new BasicTag("some_value", "some_string"); Assertions.assertFalse(pattern.test(tagOnlyNameOk)); Assertions.assertFalse(pattern.test(tagOnlyValueOk)); Assertions.assertFalse(pattern.test(tagNeitherOk)); }
@Test public void keepTagOk() { PrototypeMeasurementFilter.TagFilterPattern pattern = new PrototypeMeasurementFilter.TagFilterPattern( Pattern.compile(".+_name_.+"), Pattern.compile(".+_value_.+")); Tag tagA = new BasicTag("some_name_value", "some_value_string"); Assertions.assertTrue(pattern.test(tagA)); }
@Test public void keepAnyTag() { PrototypeMeasurementFilter.TagFilterPattern pattern = new PrototypeMeasurementFilter.TagFilterPattern( new PrototypeMeasurementFilterSpecification.TagFilterSpecification("", "")); Tag tagA = new BasicTag("some_name_value", "some_value_string"); Assertions.assertTrue(pattern.test(tagA)); }