package com.linkedin.thirdeye.datalayer.bao; import java.util.List; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; 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.DetectionStatusDTO; public class TestDetectionStatusManager extends AbstractManagerTestBase { private Long detectionStatusId1; private Long detectionStatusId2; private static String collection1 = "my dataset1"; private DateTime now = new DateTime(); private DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHH"); @BeforeClass void beforeClass() { super.init(); } @AfterClass(alwaysRun = true) void afterClass() { super.cleanup(); } @Test public void testCreate() { String dateString = dateTimeFormatter.print(now.getMillis()); long dateMillis = dateTimeFormatter.parseMillis(dateString); detectionStatusId1 = detectionStatusDAO.save(getTestDetectionStatus(collection1, dateMillis, dateString, false, 1)); detectionStatusDAO.save(getTestDetectionStatus(collection1, dateMillis, dateString, true, 2)); dateMillis = new DateTime(dateMillis).minusHours(1).getMillis(); dateString = dateTimeFormatter.print(dateMillis); detectionStatusId2 = detectionStatusDAO. save(getTestDetectionStatus(collection1, dateMillis, dateString, true, 1)); detectionStatusDAO.save(getTestDetectionStatus(collection1, dateMillis, dateString, true, 2)); dateMillis = new DateTime(dateMillis).minusHours(1).getMillis(); dateString = dateTimeFormatter.print(dateMillis); detectionStatusDAO.save(getTestDetectionStatus(collection1, dateMillis, dateString, true, 2)); Assert.assertNotNull(detectionStatusId1); Assert.assertNotNull(detectionStatusId2); List<DetectionStatusDTO> detectionStatusDTOs = detectionStatusDAO.findAll(); Assert.assertEquals(detectionStatusDTOs.size(), 5); } @Test(dependsOnMethods = {"testCreate"}) public void testFind() { DetectionStatusDTO detectionStatusDTO = detectionStatusDAO.findLatestEntryForFunctionId(1); String dateString = dateTimeFormatter.print(now.getMillis()); Assert.assertEquals(detectionStatusDTO.getFunctionId(), 1); Assert.assertEquals(detectionStatusDTO.getDateToCheckInSDF(), dateString); Assert.assertEquals(detectionStatusDTO.isDetectionRun(), false); long dateMillis = dateTimeFormatter.parseMillis(dateString); dateMillis = new DateTime(dateMillis).minusHours(1).getMillis(); List<DetectionStatusDTO> detectionStatusDTOs = detectionStatusDAO. findAllInTimeRangeForFunctionAndDetectionRun(dateMillis, now.getMillis(), 2, true); Assert.assertEquals(detectionStatusDTOs.size(), 2); detectionStatusDTOs = detectionStatusDAO. findAllInTimeRangeForFunctionAndDetectionRun(dateMillis, now.getMillis(), 2, false); Assert.assertEquals(detectionStatusDTOs.size(), 0); } }