package org.rakam.analysis; import com.google.common.eventbus.EventBus; import org.rakam.TestingEnvironment; import org.rakam.analysis.datasource.CustomDataSourceService; import org.rakam.analysis.metadata.Metastore; import org.rakam.collection.FieldDependencyBuilder; import org.rakam.config.ProjectConfig; import org.rakam.plugin.EventStore; import org.rakam.postgresql.analysis.PostgresqlEventStore; import org.rakam.postgresql.analysis.PostgresqlFunnelQueryExecutor; import org.rakam.postgresql.analysis.PostgresqlMetastore; import org.rakam.postgresql.report.PostgresqlQueryExecutor; import org.testng.annotations.BeforeSuite; public class TestPostgresqlFunnelQueryExecutor extends TestFunnelQueryExecutor { private TestingEnvironment testingPostgresqlServer; private PostgresqlMetastore metastore; private PostgresqlEventStore eventStore; private PostgresqlFunnelQueryExecutor funnelQueryExecutor; @BeforeSuite @Override public void setup() throws Exception { testingPostgresqlServer = new TestingEnvironment(); JDBCPoolDataSource dataSource = JDBCPoolDataSource.getOrCreateDataSource(testingPostgresqlServer.getPostgresqlConfig()); FieldDependencyBuilder.FieldDependency build = new FieldDependencyBuilder().build(); metastore = new PostgresqlMetastore(dataSource, new EventBus()); PostgresqlQueryExecutor queryExecutor = new PostgresqlQueryExecutor(new ProjectConfig(), dataSource, metastore, new CustomDataSourceService(dataSource), false); eventStore = new PostgresqlEventStore(dataSource, build); funnelQueryExecutor = new PostgresqlFunnelQueryExecutor(new ProjectConfig(), metastore, queryExecutor); funnelQueryExecutor.setup(); super.setup(); } @Override public EventStore getEventStore() { return eventStore; } @Override public Metastore getMetastore() { return metastore; } @Override public FunnelQueryExecutor getFunnelQueryExecutor() { return funnelQueryExecutor; } }