package com.linkedin.thirdeye.hadoop.push;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.google.common.collect.Lists;
public class SegmentPushControllerAPIsTest {
private String[] controllerHosts = null;
private String controllerPort = "0";
private String testTable1 = "testTable";
private String testTable2 = "test_table";
SegmentPushControllerAPIs segmentPushControllerAPIs;
@BeforeClass
public void setup() {
segmentPushControllerAPIs = new SegmentPushControllerAPIs(controllerHosts, controllerPort);
}
@Test
public void testOverlapPattern() throws Exception {
String segmentName = testTable1 + "_DAILY_2016-04-28-000000_2016-04-29-000000";
String overlapPattern = segmentPushControllerAPIs.getOverlapPattern(segmentName, testTable1);
Assert.assertEquals(overlapPattern, testTable1 + "_HOURLY_2016-04-28", "Incorrect overlap pattern for segment " + segmentName);
segmentName = testTable2 + "_DAILY_2016-04-28-000000_2016-04-29-000000";
overlapPattern = segmentPushControllerAPIs.getOverlapPattern(segmentName, testTable2);
Assert.assertEquals(overlapPattern, testTable2 + "_HOURLY_2016-04-28", "Incorrect overlap pattern for segment " + segmentName);
}
@Test
public void testGetOverlappingSegments() throws Exception {
List<String> allSegments = Lists.newArrayList(
"test_HOURLY_2016-04-28-000000_2016-04-28-010000",
"test_HOURLY_2016-04-28-230000_2016-04-29-000000",
"test_DAILY_2016-04-28-000000_2016-04-29-000000");
String pattern = "test_HOURLY_2016-04-28";
List<String> overlappingSegments = segmentPushControllerAPIs.getOverlappingSegments(allSegments, pattern);
allSegments.remove(2);
Assert.assertEquals(overlappingSegments, allSegments, "Incorrect overlapping segments returned");
}
}