protected abstract SchemaTransform from(ConfigT configuration);
@Test
  public void testFrom() {
    SchemaTransformProvider provider = new FakeTypedSchemaIOProvider();
    SchemaTransformProvider minimalProvider = new FakeMinimalTypedProvider();

    Row inputConfig =
        Row.withSchema(provider.configurationSchema())
            .withFieldValue("string_field", "field1")
            .withFieldValue("integer_field", Integer.valueOf(13))
            .build();

    Configuration outputConfig = ((FakeSchemaTransform) provider.from(inputConfig)).config;
    Configuration minimalOutputConfig =
        ((FakeSchemaTransform) minimalProvider.from(inputConfig)).config;

    for (Configuration config : Arrays.asList(outputConfig, minimalOutputConfig)) {
      assertEquals("field1", config.getStringField());
      assertEquals(13, config.getIntegerField().intValue());
    }
    assertEquals("Description of fake provider", provider.description());
  }