DataServiceDelegate extends DataServiceFactory { @Override public void save( DataServiceMeta dataService ) throws MetaStoreException { Spoon spoon = getSpoon(); super.save( dataService ); spoon.refreshTree( DataServiceFolderProvider.STRING_DATA_SERVICES ); spoon.refreshGraph(); } DataServiceDelegate( DataServiceContext context );  DataServiceDelegate( DataServiceContext context, Spoon spoon );  DataServiceDelegate( DataServiceContext context, Supplier<Spoon> spoonSupplier ); static DataServiceDelegate withDefaultSpoonInstance( DataServiceContext context ); void createNewDataService( String stepName ); void editDataService( DataServiceMeta dataService ); void suggestEdit( DataServiceMeta dataServiceMeta, String title, String text ); SynchronizationListener createSyncService(); void showError( String title, String text ); boolean showPrompt( String title, String text ); @Override void save( DataServiceMeta dataService ); void removeDataService( DataServiceMeta dataService, boolean prompt ); @Override void removeDataService( DataServiceMeta dataService ); void showTestDataServiceDialog( DataServiceMeta dataService ); void showTestDataServiceDialog( DataServiceMeta dataService, Shell shell ); @Override Repository getRepository(); void showDriverDetailsDialog(); void showDriverDetailsDialog( Shell shell ); DataServiceRemapConfirmationDialog.Action showRemapConfirmationDialog( DataServiceMeta dataService,
      List<String> remainingStepNames ); DataServiceRemapStepChooserDialog.Action showRemapStepChooserDialog( DataServiceMeta dataService,
      List<String> remainingStepNames, TransMeta trans ); void showRemapNoStepsDialog( Shell shell ); Spoon getSpoon(); Shell getShell(); Display getDisplay(); void syncExec( Runnable runnable );  }
@Test public void testSave() throws Exception { assertThat( delegate.getDataServiceNames( transMeta ), is( empty() ) ); delegate.save( dataService ); assertThat( delegate.getDataServiceNames( transMeta ), contains( DATA_SERVICE_NAME ) ); }