package com.linkedin.thirdeye.datalayer.bao; import java.util.List; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.linkedin.thirdeye.datalayer.dto.MetricConfigDTO; public class TestMetricConfigManager extends AbstractManagerTestBase { private Long metricConfigId1; private Long metricConfigId2; private Long derivedMetricConfigId; private static String dataset1 = "my dataset1"; private static String dataset2 = "my dataset2"; private static String metric1 = "metric1"; private static String metric2 = "metric2"; private static String derivedMetric1 = "metric3"; @BeforeClass void beforeClass() { super.init(); } @AfterClass(alwaysRun = true) void afterClass() { super.cleanup(); } @Test public void testCreate() { MetricConfigDTO metricConfig1 = getTestMetricConfig(dataset1, metric1, null); metricConfig1.setActive(false); metricConfigId1 = metricConfigDAO.save(metricConfig1); Assert.assertNotNull(metricConfigId1); metricConfigId2 = metricConfigDAO.save(getTestMetricConfig(dataset2, metric2, null)); Assert.assertNotNull(metricConfigId2); MetricConfigDTO metricConfig3 = getTestMetricConfig(dataset1, derivedMetric1, null); metricConfig3.setDerived(true); metricConfig3.setDerivedMetricExpression("id"+metricConfigId1+"/id"+metricConfigId2); derivedMetricConfigId = metricConfigDAO.save(metricConfig3); Assert.assertNotNull(derivedMetricConfigId); } @Test(dependsOnMethods = {"testCreate"}) public void testFind() { List<MetricConfigDTO> metricConfigs = metricConfigDAO.findAll(); Assert.assertEquals(metricConfigs.size(), 3); metricConfigs = metricConfigDAO.findByDataset(dataset1); Assert.assertEquals(metricConfigs.size(), 2); metricConfigs = metricConfigDAO.findActiveByDataset(dataset1); Assert.assertEquals(metricConfigs.size(), 1); MetricConfigDTO metricConfig = metricConfigDAO.findByMetricAndDataset(metric1, dataset1); Assert.assertEquals(metricConfig.getId(), metricConfigId1); } @Test(dependsOnMethods = { "testFind" }) public void testFindLike() { List<MetricConfigDTO> metricConfigs = metricConfigDAO.findWhereNameLikeAndActive("%m%"); Assert.assertEquals(metricConfigs.size(), 2); metricConfigs = metricConfigDAO.findWhereNameLikeAndActive("%2%"); Assert.assertEquals(metricConfigs.size(), 1); metricConfigs = metricConfigDAO.findWhereNameLikeAndActive("%1%"); Assert.assertEquals(metricConfigs.size(), 0); metricConfigs = metricConfigDAO.findWhereNameLikeAndActive("%p%"); Assert.assertEquals(metricConfigs.size(), 0); } @Test(dependsOnMethods = { "testFindLike" }) public void testUpdate() { MetricConfigDTO metricConfig = metricConfigDAO.findById(metricConfigId1); Assert.assertNotNull(metricConfig); Assert.assertFalse(metricConfig.isInverseMetric()); metricConfig.setInverseMetric(true); metricConfigDAO.update(metricConfig); metricConfig = metricConfigDAO.findById(metricConfigId1); Assert.assertNotNull(metricConfig); Assert.assertTrue(metricConfig.isInverseMetric()); } @Test(dependsOnMethods = { "testUpdate" }) public void testDelete() { metricConfigDAO.deleteById(metricConfigId2); MetricConfigDTO metricConfig = metricConfigDAO.findById(metricConfigId2); Assert.assertNull(metricConfig); } }