/** * Constructs from a specification. * * The nameRegex specifies the name of the Spectator meter itself. */ public MeterFilterPattern( String nameRegex, PrototypeMeasurementFilterSpecification.MeterFilterSpecification spec) { namePattern = Pattern.compile(nameRegex); if (spec == null) return; if (spec.getValues().isEmpty()) { values.add(new ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification.ALL)); } for (PrototypeMeasurementFilterSpecification.ValueFilterSpecification value : spec.getValues()) { values.add(new ValueFilterPattern(value)); } }
/** * Constructs from a specification. * * The nameRegex specifies the name of the Spectator meter itself. */ public MeterFilterPattern( String nameRegex, PrototypeMeasurementFilterSpecification.MeterFilterSpecification spec) { namePattern = Pattern.compile(nameRegex); if (spec == null) return; if (spec.getValues().isEmpty()) { values.add(new ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification.ALL)); } for (PrototypeMeasurementFilterSpecification.ValueFilterSpecification value : spec.getValues()) { values.add(new ValueFilterPattern(value)); } }
@Test public void extraValueTagsOk() { PrototypeMeasurementFilter.ValueFilterPattern pattern = new PrototypeMeasurementFilter.ValueFilterPattern(valueSpecAxBy); List<Tag> tagsAxBy = Arrays.asList(new BasicTag("tagX", "X"), new BasicTag("tagA", "X"), new BasicTag("tagC", "C"), new BasicTag("tagB", "Y")); List<Tag> tagsByAx = Arrays.asList(tagsAxBy.get(3), tagsAxBy.get(2), tagsAxBy.get(1), tagsAxBy.get(0)); Assertions.assertTrue(pattern.test(tagsAxBy)); Assertions.assertTrue(pattern.test(tagsByAx)); }
@Test public void valueTagsMissing() { PrototypeMeasurementFilter.ValueFilterPattern pattern = new PrototypeMeasurementFilter.ValueFilterPattern(valueSpecAxBy); List<Tag> tagsAx = Collections.singletonList(new BasicTag("tagA", "X")); List<Tag> tagsAxZy = Arrays.asList(new BasicTag("tagA", "X"), new BasicTag("tagZ","Y")); List<Tag> tagsAyBy = Arrays.asList(new BasicTag("tagA", "Y"), new BasicTag("tagB", "Y")); Assertions.assertFalse(pattern.test(tagsAx)); Assertions.assertFalse(pattern.test(tagsAxZy)); Assertions.assertFalse(pattern.test(tagsAyBy)); }
@Test public void valueTagsOk() { PrototypeMeasurementFilter.ValueFilterPattern pattern = new PrototypeMeasurementFilter.ValueFilterPattern(valueSpecAxBy); List<Tag> tagsAxBy = Arrays.asList(new BasicTag("tagA", "X"), new BasicTag("tagB", "Y")); List<Tag> tagsByAx = Arrays.asList(tagsAxBy.get(1), tagsAxBy.get(0)); Assertions.assertTrue(pattern.test(tagsAxBy)); Assertions.assertTrue(pattern.test(tagsByAx)); }