@BeforeSuite
@Override
public void setup() throws Exception {
testingEnvironment = new TestingEnvironment();
PrestoConfig prestoConfig = testingEnvironment.getPrestoConfig();
InMemoryQueryMetadataStore inMemoryQueryMetadataStore = new InMemoryQueryMetadataStore();
JDBCPoolDataSource prestoMetastore = testingEnvironment.getPrestoMetastore();
EventBus eventBus = new EventBus();
metastore = new PrestoRakamRaptorMetastore(prestoMetastore, eventBus, new ProjectConfig(), prestoConfig);
metastore.setup();
PrestoQueryExecutor prestoQueryExecutor = new PrestoQueryExecutor(new ProjectConfig(), prestoConfig, null, metastore);
PrestoMaterializedViewService materializedViewService = new PrestoMaterializedViewService(
new PrestoConfig(),
prestoQueryExecutor, metastore, inMemoryQueryMetadataStore, Clock.systemUTC());
QueryExecutorService queryExecutorService = new QueryExecutorService(prestoQueryExecutor, metastore,
materializedViewService, '"');
FastGenericFunnelQueryExecutor fastGenericFunnelQueryExecutor = new FastGenericFunnelQueryExecutor(queryExecutorService, new ProjectConfig(), metastore);
PrestoApproxFunnelQueryExecutor prestoApproxFunnelQueryExecutor = new PrestoApproxFunnelQueryExecutor(new ProjectConfig(), queryExecutorService, metastore);
funnelQueryExecutor = new PrestoFunnelQueryExecutor(new ProjectConfig(), new PrestoConfig(),
fastGenericFunnelQueryExecutor, prestoApproxFunnelQueryExecutor, metastore, prestoQueryExecutor,
new UserPluginConfig());
testingPrestoEventStore = new TestingPrestoEventStore(prestoQueryExecutor, prestoConfig);
super.setup();
}