@Override
  protected SchemaTransform from(BigQueryExportReadSchemaTransformConfiguration configuration) {
    return new BigQueryExportSchemaTransform(configuration);
  }
@Test
  public void testInvalidConfiguration() {
    BigQueryExportReadSchemaTransformProvider provider =
        new BigQueryExportReadSchemaTransformProvider();
    for (Pair<
            BigQueryExportReadSchemaTransformConfiguration.Builder,
            ? extends Class<? extends RuntimeException>>
        caze :
            Arrays.asList(
                Pair.of(
                    BigQueryExportReadSchemaTransformConfiguration.builder(),
                    IllegalArgumentException.class),
                Pair.of(
                    BigQueryExportReadSchemaTransformConfiguration.builder()
                        .setQuery(QUERY)
                        .setTableSpec(TABLE_SPEC),
                    IllegalStateException.class),
                Pair.of(
                    BigQueryExportReadSchemaTransformConfiguration.builder()
                        .setQueryLocation(LOCATION),
                    IllegalArgumentException.class),
                Pair.of(
                    BigQueryExportReadSchemaTransformConfiguration.builder()
                        .setUseStandardSql(true),
                    IllegalArgumentException.class))) {
      BigQueryExportSchemaTransform schemaTransform =
          (BigQueryExportSchemaTransform) provider.from(caze.getLeft().build());
      schemaTransform.setTestBigQueryServices(fakeBigQueryServices);
      PCollectionRowTuple empty = PCollectionRowTuple.empty(p);
      assertThrows(caze.getRight(), () -> empty.apply(schemaTransform));
    }
  }