public static QueryExecutor onSqlServer() { return testContext().getDependency(QueryExecutor.class, "sqlserver"); }
@AfterTestWithContext public void afterTest() { assertThat(testContextIfSet().isPresent()).isTrue(); }
@Test(groups = CREATE_DROP_VIEW) public void createViewWithAggregate() { executeWith(createViewAs("SELECT n_regionkey, count(*) countries FROM nation GROUP BY n_regionkey ORDER BY n_regionkey"), view -> { assertThat(query(format("SELECT * FROM %s", view.getName()))) .hasRowsCount(5); }); }
public static QueryExecutor connectToPresto(String prestoConfig) { return testContext().getDependency(QueryExecutor.class, prestoConfig); }
@BeforeTestWithContext public void beforeTest() { assertThat(testContextIfSet().isPresent()).isTrue(); }
@Test(groups = CREATE_DROP_VIEW) public void createSimpleView() { executeWith(createViewAs("SELECT * FROM nation"), view -> { assertThat(query(format("SELECT * FROM %s", view.getName()))) .hasRowsCount(25); }); }
public static QueryExecutor onHive() { return testContext().getDependency(QueryExecutor.class, "hive"); }
@Test(groups = CREATE_DROP_VIEW) public void querySimpleViewQualified() { executeWith(createViewAs("SELECT * FROM nation"), view -> { assertThat(query(format("SELECT %s.n_regionkey FROM %s", view.getName(), view.getName()))) .hasRowsCount(25); }); }
public static QueryExecutor onMySql() { return testContext().getDependency(QueryExecutor.class, "mysql"); }
@Test(groups = {CREATE_DROP_VIEW, SMOKE}) public void createOrReplaceSimpleView() { executeWith(createViewAs("SELECT * FROM nation"), view -> { assertThat(query(format("CREATE OR REPLACE VIEW %s AS SELECT * FROM nation", view.getName()))) .hasRowsCount(1); assertThat(query(format("SELECT * FROM %s", view.getName()))) .hasRowsCount(25); }); }
public static QueryExecutor onPresto() { return testContext().getDependency(QueryExecutor.class, "presto"); }
@Test(groups = CREATE_DROP_VIEW) public void createSimpleViewTwiceShouldFail() { executeWith(createViewAs("SELECT * FROM nation"), view -> { assertThat(() -> query(format("CREATE VIEW %s AS SELECT * FROM nation", view.getName()))) .failsWithMessage("View already exists"); assertThat(query(format("SELECT * FROM %s", view.getName()))) .hasRowsCount(25); }); }
private static void executeHiveQuery(String query) { testContext().getDependency(QueryExecutor.class, "hive").executeQuery(query); } }
@Test(groups = {AUTHORIZATION, PROFILE_SPECIFIC_TESTS}) public void testViewOwnerPrivileges() { onHive().executeQuery("set role admin;"); executeWith(createViewAs(viewName, format("SELECT * FROM %s", tableName), aliceExecutor), view -> { assertThat(onHive().executeQuery(format("SHOW GRANT USER alice ON %s", viewName)) .project(7, 8)) // Project only two relevant columns of SHOW GRANT: Privilege and Grant Option .containsOnly(ownerGrants()); }); }
private static TableInstance mutableTableInstanceOf(TableHandle tableHandle) { return testContext().getDependency(MutableTablesState.class).get(tableHandle); }
@Test(groups = {CREATE_DROP_VIEW, SMOKE}) public void dropViewTest() { executeWith(createViewAs("SELECT * FROM nation"), view -> { assertThat(query(format("SELECT * FROM %s", view.getName()))) .hasRowsCount(25); assertThat(query(format("DROP VIEW %s", view.getName()))) .hasRowsCount(1); assertThat(() -> query(format("SELECT * FROM %s", view.getName()))) .failsWithMessage("does not exist"); }); } }
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); }