import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.rakam.analysis.RealtimeService;
import org.rakam.plugin.ContinuousQuery;
import org.rakam.analysis.ContinuousQueryService;
import org.rakam.report.realtime.RealTimeConfig;
import org.rakam.report.realtime.AggregationType;
import org.rakam.analysis.realtime.RealTimeHttpService;
import org.rakam.report.realtime.RealTimeReport;
import org.rakam.report.QueryExecutor;
import org.testng.annotations.Test;
import java.util.List;
import java.util.Map;
import static com.google.common.collect.ImmutableSet.of;
import static org.rakam.report.realtime.AggregationType.COUNT;
import static org.testng.Assert.assertEquals;
public abstract class TestRealtimeModule {
@Test
public void testCreate() throws Exception {
RealtimeService service = getRealtimeService();
RealTimeReport report = new RealTimeReport("test", of(new RealTimeReport.Measure("test", COUNT)), "test", of("testcollection"), null, null);
service.create("test", report);
List<ContinuousQuery> list = service.list("test");
assertEquals(1, list.size());
assertEquals("test", list.get(0).tableName);
assertEquals(ImmutableList.of(), list.get(0).partitionKeys);
Map<String, Object> options = list.get(0).options;
assertEquals(true, options.get("realtime"));
assertEquals(COUNT, AggregationType.valueOf(options.get("aggregation").toString()));
}
@Test
public void testGet() throws Exception {
RealtimeService service = getRealtimeService();
RealTimeReport report = new RealTimeReport("test", of(new RealTimeReport.Measure("test", COUNT)), "test", of("testcollection"), null, null);
service.create("test", report);
RealtimeService.RealTimeQueryResult result = service.query("test", "test", null, new RealTimeReport.Measure("test", COUNT), ImmutableList.of(), true, null, null).join();
}
@Test
public void testDelete() throws Exception {
RealtimeService service = getRealtimeService();
RealTimeReport report = new RealTimeReport("test", of(new RealTimeReport.Measure("test", COUNT)), "test", of("testcollection"), null, null);
service.create("test", report);
service.delete("test", "test");
List<ContinuousQuery> list = service.list("test");
assertEquals(0, list.size());
}
public abstract RealtimeService getRealtimeService();
}