package com.linkedin.thirdeye.anomaly.override; import com.linkedin.thirdeye.datalayer.dto.OverrideConfigDTO; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.testng.Assert; import org.testng.annotations.Test; public class TestOverrideConfigHelper { @Test public void TestTargetEntityLevel() { OverrideConfigDTO overrideConfigDTO = new OverrideConfigDTO(); Map<String, List<String>> overrideTarget = new HashMap<>(); overrideTarget.put(OverrideConfigHelper.TARGET_COLLECTION, Arrays.asList("collection1")); overrideTarget.put(OverrideConfigHelper.TARGET_METRIC, Arrays.asList("metric1", "metric2")); overrideTarget.put(OverrideConfigHelper.EXCLUDED_METRIC, Arrays.asList("metric3")); overrideConfigDTO.setTargetLevel(overrideTarget); // Test "Only include any entity whose level has collection1, metric 1, metric 2, but not // metric3" Map<String, String> entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric1", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric3", 1); Assert.assertFalse(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection11", "metric2", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection11", "metric11", 1); Assert.assertFalse(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); // Test "Only include any entity whose level has collection1, metric 1, metric 2" overrideTarget = new HashMap<>(); overrideTarget.put(OverrideConfigHelper.TARGET_COLLECTION, Arrays.asList("collection1")); overrideTarget.put(OverrideConfigHelper.TARGET_METRIC, Arrays.asList("metric1", "metric2")); overrideConfigDTO.setTargetLevel(overrideTarget); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric1", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric3", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection11", "metric2", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection11", "metric11", 1); Assert.assertFalse(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); // Test "Include everything but collection3" overrideTarget = new HashMap<>(); overrideTarget.put(OverrideConfigHelper.EXCLUDED_COLLECTION, Arrays.asList("collection3")); overrideConfigDTO.setTargetLevel(overrideTarget); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric1", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection1", "metric3", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection11", "metric2", 1); Assert.assertTrue(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); entityTargetLevel = OverrideConfigHelper.getEntityTargetLevel("collection3", "metric2", 1); Assert.assertFalse(OverrideConfigHelper.isEnabled(entityTargetLevel, overrideConfigDTO)); } }