package org.rakam.analysis;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.rakam.analysis.metadata.QueryMetadataStore;
import org.rakam.plugin.ContinuousQuery;
import org.rakam.plugin.MaterializedView;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public abstract class TestQueryMetastore
{
private static final String PROJECT_NAME = TestQueryMetastore.class.getName().replace(".", "_").toLowerCase();
public abstract QueryMetadataStore getQuerymetastore();
@Test
public void testMaterializedViewCreateGetList()
throws Exception
{
MaterializedView materializedView = new MaterializedView("test", "test",
"select 1", null, false, false, ImmutableMap.of());
getQuerymetastore().createMaterializedView(PROJECT_NAME, materializedView);
assertEquals(getQuerymetastore().getMaterializedView(PROJECT_NAME, "test"),
materializedView);
assertEquals(getQuerymetastore().getMaterializedViews(PROJECT_NAME),
ImmutableList.of(materializedView));
}
@Test
public void testContinuousQueryCreateGetList()
throws Exception
{
ContinuousQuery continuousQuery = new ContinuousQuery("test", "test",
"select 1", ImmutableList.of(), ImmutableMap.of());
getQuerymetastore().createContinuousQuery(PROJECT_NAME, continuousQuery);
assertEquals(getQuerymetastore().getContinuousQuery(PROJECT_NAME, "test"),
continuousQuery);
assertEquals(getQuerymetastore().getContinuousQueries(PROJECT_NAME),
ImmutableList.of(continuousQuery));
}
}