package com.linkedin.thirdeye.anomaly.alert.grouping.filter; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.testng.Assert; import org.testng.annotations.Test; public class SizeSeverityAlertGroupFilterTest { @Test public void testCreate() { // Create size severity filter Map<String, String> sizeSeverityFilterParams = new HashMap<>(); sizeSeverityFilterParams.put(AlertGroupFilterFactory.GROUP_FILTER_TYPE_KEY, "sIze_SevEriTy"); sizeSeverityFilterParams.put(SizeSeverityAlertGroupFilter.THRESHOLD_KEY, "10"); String overrideThresholdJson = "{\"dimensionName1,dimensionName11\":3,\"dimensionName2\":4}"; sizeSeverityFilterParams.put(SizeSeverityAlertGroupFilter.OVERRIDE_THRESHOLD_KEY, overrideThresholdJson); // Initialize filter from factory AlertGroupFilter filter = AlertGroupFilterFactory.fromSpec(sizeSeverityFilterParams); Assert.assertTrue(filter.getClass() == SizeSeverityAlertGroupFilter.class); SizeSeverityAlertGroupFilter sizeSeverityFilter = (SizeSeverityAlertGroupFilter) filter; // Construct golden override threshold Map<Set<String>, Integer> overrideThreshold = new HashMap<>(); Set<String> groupName1 = new HashSet<>(); groupName1.add("dimensionName1"); groupName1.add("dimensionName11"); overrideThreshold.put(groupName1, 3); Set<String> groupName2 = new HashSet<>(); groupName2.add("dimensionName2"); overrideThreshold.put(groupName2, 4); // Compare results Assert.assertEquals(sizeSeverityFilter.getOverrideThreshold(), overrideThreshold); Assert.assertEquals(sizeSeverityFilter.getThreshold(), 10); } }