package com.linkedin.thirdeye.datalayer.bao; import com.linkedin.thirdeye.anomaly.override.OverrideConfigHelper; import com.linkedin.thirdeye.datalayer.dto.OverrideConfigDTO; import com.linkedin.thirdeye.detector.metric.transfer.ScalingFactor; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.joda.time.DateTime; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestOverrideConfigManager extends AbstractManagerTestBase { private Long overrideConfigId1 = null; private DateTime now = new DateTime(); @BeforeClass void beforeClass() { super.init(); } @AfterClass(alwaysRun = true) void afterClass() { super.cleanup(); } @Test public void testCreate() { OverrideConfigDTO overrideConfigDTO1 = getTestOverrideConfigForTimeSeries(now); overrideConfigId1 = overrideConfigDAO.save(overrideConfigDTO1); Assert.assertNotNull(overrideConfigId1); Assert.assertNotNull(overrideConfigDAO.findById(overrideConfigId1)); } @Test(dependsOnMethods = {"testCreate"}) public void testFind() { List<OverrideConfigDTO> overrideConfigDTOs = overrideConfigDAO.findAll(); Assert.assertEquals(overrideConfigDTOs.size(), 1); overrideConfigDTOs = overrideConfigDAO .findAllConflictByTargetType(OverrideConfigHelper.ENTITY_TIME_SERIES, now.minusHours(5).getMillis(), now.minusHours(2).getMillis()); Assert.assertEquals(overrideConfigDTOs.size(), 1); overrideConfigDTOs = overrideConfigDAO .findAllConflictByTargetType(OverrideConfigHelper.ENTITY_ALERT_FILTER, now.minusHours(5).getMillis(), now.minusHours(2).getMillis()); Assert.assertEquals(overrideConfigDTOs.size(), 0); overrideConfigDTOs = overrideConfigDAO .findAllConflictByTargetType(OverrideConfigHelper.ENTITY_TIME_SERIES, now.minusDays(100).getMillis(), now.minusDays(50).getMillis()); Assert.assertEquals(overrideConfigDTOs.size(), 0); } @Test(dependsOnMethods = {"testFind"}) public void testUpdate() { // Test update of override property OverrideConfigDTO overrideConfigDTO = overrideConfigDAO.findById(overrideConfigId1); Assert.assertNotNull(overrideConfigDTO); Assert.assertNotNull(overrideConfigDTO.getOverrideProperties()); Assert.assertNotNull(overrideConfigDTO.getOverrideProperties().get(ScalingFactor.SCALING_FACTOR)); Assert.assertEquals(overrideConfigDTO.getOverrideProperties().get(ScalingFactor.SCALING_FACTOR), "1.2"); Map<String, String> newOverrideProperties = new HashMap<>(); newOverrideProperties.put(ScalingFactor.SCALING_FACTOR, "0.8"); overrideConfigDTO.setOverrideProperties(newOverrideProperties); overrideConfigDAO.update(overrideConfigDTO); overrideConfigDTO = overrideConfigDAO.findById(overrideConfigId1); Assert.assertNotNull(overrideConfigDTO); Assert.assertNotNull(overrideConfigDTO.getOverrideProperties()); Assert.assertNotNull(overrideConfigDTO.getOverrideProperties().get(ScalingFactor.SCALING_FACTOR)); Assert.assertEquals(overrideConfigDTO.getOverrideProperties().get(ScalingFactor.SCALING_FACTOR), "0.8"); // Test update of target level overrideConfigDTO = overrideConfigDAO.findById(overrideConfigId1); Assert.assertNotNull(overrideConfigDTO); Assert.assertNotNull(overrideConfigDTO.getTargetLevel()); List<String> targetLevel = overrideConfigDTO.getTargetLevel().get(OverrideConfigHelper .TARGET_COLLECTION); Assert.assertNotNull(targetLevel); Assert.assertEquals(targetLevel, Arrays.asList("collection1", "collection2")); List<String> newTargetLevel = Arrays.asList("collection1", "collection4"); overrideConfigDTO.getTargetLevel().put(OverrideConfigHelper.TARGET_COLLECTION, newTargetLevel); overrideConfigDAO.update(overrideConfigDTO); overrideConfigDTO = overrideConfigDAO.findById(overrideConfigId1); Assert.assertNotNull(overrideConfigDTO); Assert.assertNotNull(overrideConfigDTO.getTargetLevel()); targetLevel = overrideConfigDTO.getTargetLevel().get(OverrideConfigHelper.TARGET_COLLECTION); Assert.assertNotNull(targetLevel); Assert.assertEquals(targetLevel, Arrays.asList("collection1", "collection4")); } @Test(dependsOnMethods = { "testUpdate" }) public void testDelete() { overrideConfigDAO.deleteById(overrideConfigId1); OverrideConfigDTO overrideConfigDTO = overrideConfigDAO.findById(overrideConfigId1); Assert.assertNull(overrideConfigDTO); } }