Program: 5713
Project: 5713
Buggy source:
@Test public void testStringCaseTransform() throws Exception {
  String inputName="String_Node_Str";
  String outputName="String_Node_Str";
  ETLStage source=new ETLStage("String_Node_Str",MockSource.getPlugin(inputName));
  ETLStage sink=new ETLStage("String_Node_Str",MockSink.getPlugin(outputName));
  Map<String,String> transformProperties=new HashMap<>();
  transformProperties.put("String_Node_Str","String_Node_Str");
  transformProperties.put("String_Node_Str","String_Node_Str");
  ETLStage transform=new ETLStage("String_Node_Str",new ETLPlugin(StringCaseTransform.NAME,Transform.PLUGIN_TYPE,transformProperties,null));
  ETLBatchConfig pipelineConfig=ETLBatchConfig.builder("String_Node_Str").addStage(source).addStage(sink).addStage(transform).addConnection(source.getName(),transform.getName()).addConnection(transform.getName(),sink.getName()).build();
  Id.Application pipelineId=Id.Application.from(Id.Namespace.DEFAULT,"String_Node_Str");
  ApplicationManager appManager=deployApplication(pipelineId,new AppRequest<>(APP_ARTIFACT,pipelineConfig));
  Schema schema=Schema.recordOf("String_Node_Str",Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)));
  DataSetManager<Table> inputManager=getDataset(inputName);
  List<StructuredRecord> inputRecords=new ArrayList<>();
  inputRecords.add(StructuredRecord.builder(schema).set("String_Node_Str","String_Node_Str").set("String_Node_Str","String_Node_Str").build());
  MockSource.writeInput(inputManager,inputRecords);
  WorkflowManager workflowManager=appManager.getWorkflowManager(SmartWorkflow.NAME);
  workflowManager.start();
  workflowManager.waitForFinish(4,TimeUnit.MINUTES);
  DataSetManager<Table> outputManager=getDataset(outputName);
  List<StructuredRecord> outputRecords=MockSink.readOutput(outputManager);
  List<StructuredRecord> expected=new ArrayList<>();
  expected.add(StructuredRecord.builder(schema).set("String_Node_Str","String_Node_Str").set("String_Node_Str","String_Node_Str").build());
  Assert.assertEquals(expected,outputRecords);
}

Fixed version (ground truth):
@Test public void testStringCaseTransform() throws Exception {
  String inputName="String_Node_Str";
  String outputName="String_Node_Str";
  ETLStage source=new ETLStage("String_Node_Str",MockSource.getPlugin(inputName));
  ETLStage sink=new ETLStage("String_Node_Str",MockSink.getPlugin(outputName));
  Map<String,String> transformProperties=new HashMap<>();
  transformProperties.put("String_Node_Str","String_Node_Str");
  transformProperties.put("String_Node_Str","String_Node_Str");
  ETLStage transform=new ETLStage("String_Node_Str",new ETLPlugin(StringCaseTransform.NAME,Transform.PLUGIN_TYPE,transformProperties,null));
  ETLBatchConfig pipelineConfig=ETLBatchConfig.builder("String_Node_Str").addStage(source).addStage(sink).addStage(transform).addConnection(source.getName(),transform.getName()).addConnection(transform.getName(),sink.getName()).build();
  ApplicationId pipelineId=NamespaceId.DEFAULT.app("String_Node_Str");
  ApplicationManager appManager=deployApplication(pipelineId,new AppRequest<>(APP_ARTIFACT,pipelineConfig));
  Schema schema=Schema.recordOf("String_Node_Str",Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)));
  DataSetManager<Table> inputManager=getDataset(inputName);
  List<StructuredRecord> inputRecords=new ArrayList<>();
  inputRecords.add(StructuredRecord.builder(schema).set("String_Node_Str","String_Node_Str").set("String_Node_Str","String_Node_Str").build());
  MockSource.writeInput(inputManager,inputRecords);
  WorkflowManager workflowManager=appManager.getWorkflowManager(SmartWorkflow.NAME);
  workflowManager.start();
  workflowManager.waitForFinish(4,TimeUnit.MINUTES);
  DataSetManager<Table> outputManager=getDataset(outputName);
  List<StructuredRecord> outputRecords=MockSink.readOutput(outputManager);
  List<StructuredRecord> expected=new ArrayList<>();
  expected.add(StructuredRecord.builder(schema).set("String_Node_Str","String_Node_Str").set("String_Node_Str","String_Node_Str").build());
  Assert.assertEquals(expected,outputRecords);
}