public static QueryExecutor onSqlServer() { return testContext().getDependency(QueryExecutor.class, "sqlserver"); }
default TestContext createChildContext(State... states) { return createChildContext(asList(states)); }
@Inject public JdbcQueryExecutor(JdbcConnectivityParamsState jdbcParamsState, JdbcConnectionsPool jdbcConnectionsPool, TestContext testContext) { this.jdbcParamsState = requireNonNull(jdbcParamsState, "jdbcParamsState is null"); this.jdbcConnectionsPool = requireNonNull(jdbcConnectionsPool, "jdbcConnectionsPool is null"); this.jdbcUrl = jdbcParamsState.url; testContext.registerCloseCallback(context -> this.close()); }
private Optional<String> getCurrentTestLogFileName() { Optional<TestContext> testContext = testContextIfSet(); try { String testName = "SUITE"; if (testContext.isPresent()) { Optional<TestMetadata> testMetadata = testContext.get().getOptionalDependency(TestMetadata.class); if (testMetadata.isPresent()) { testName = testMetadata.get().testName; } } return Optional.of(logsDirectory + "/" + testName); } catch (ConfigurationException e) { System.err.append("Could not load TestMetadata from guice context"); return Optional.empty(); } }
private void doCleanup(TestContextStack<GuiceTestContext> testContextStack, List<Class<? extends RequirementFulfiller>> fulfillerClasses, TestStatus testStatus) { // one base test context plus one test context for each fulfiller checkState(testContextStack.size() == fulfillerClasses.size() + 1); for (Class<? extends RequirementFulfiller> fulfillerClass : reverse(fulfillerClasses)) { LOGGER.debug("Cleaning for fulfiller {}", fulfillerClass); TestContext testContext = testContextStack.pop(); testContext.close(); runWithTestContext(testContext, () -> testContextStack.peek().getDependency(fulfillerClass).cleanup(testStatus)); } if (testContextStack.size() == 1) { // we are going to close last context, so we need to close TableManager's first testContextStack.peek().getOptionalDependency(TableManagerDispatcher.class) .ifPresent(dispatcher -> dispatcher.getAllTableManagers().forEach(TableManager::close)); } // remove close init test context too testContextStack.peek().close(); }
public static void runWithChildTestContext(Runnable runnable) { runWithTestContext(testContext().createChildContext(), runnable); }
public static QueryExecutor connectToPresto(String prestoConfig) { return testContext().getDependency(QueryExecutor.class, prestoConfig); }
public static IndexedRunnable withChildTestContext(IndexedRunnable runnable) { return (int threadIndex) -> { pushTestContext(testContext().createChildContext()); try { runnable.run(threadIndex); } finally { popTestContext(); } }; }
public static QueryExecutor onHive() { return testContext().getDependency(QueryExecutor.class, "hive"); }
public static QueryExecutor onMySql() { return testContext().getDependency(QueryExecutor.class, "mysql"); }
public static QueryExecutor onPresto() { return testContext().getDependency(QueryExecutor.class, "presto"); }
private static void executeHiveQuery(String query) { testContext().getDependency(QueryExecutor.class, "hive").executeQuery(query); } }
private static TableInstance mutableTableInstanceOf(TableHandle tableHandle) { return testContext().getDependency(MutableTablesState.class).get(tableHandle); }
private static TableInstance mutableTableInstanceOf(TableHandle tableHandle) { return testContext().getDependency(MutableTablesState.class).get(tableHandle); }
public static ImmutableTablesState immutableTablesState() { return testContext().getDependency(ImmutableTablesState.class); }
static QueryExecutor defaultQueryExecutor() { return testContext().getDependency(QueryExecutor.class, DEFAULT_DB_NAME); }
public static MutableTablesState mutableTablesState() { return testContext().getDependency(MutableTablesState.class); }
static TableManagerDispatcher getTableManagerDispatcher() { return testContext().getDependency(TableManagerDispatcher.class); } }
private QueryExecutor getQueryExecutor(SqlQueryDescriptor sqlQueryDescriptor) { String database = sqlQueryDescriptor.getDatabaseName(); try { return testContext().getDependency(QueryExecutor.class, database); } catch (RuntimeException e) { throw new RuntimeException("Cannot get query executor for database '" + database + "'", e); } } }
@Test(groups = "query") @Requires(MultipleTablesTestRequirements.class) public void selectAllFromMultipleTables() { MutableTablesState mutableTablesState = testContext().getDependency(MutableTablesState.class); TableInstance tableInstance = mutableTablesState.get("table"); assertThat(query("select * from " + tableInstance.getNameInDatabase())).hasAnyRows(); }