DataServiceDelegate extends DataServiceFactory { public void showRemapNoStepsDialog( Shell shell ) { try { getUiFactory().getRemapNoStepsDialog( shell ).open(); } catch ( KettleException e ) { getLogChannel().logError( "Unable to create no steps for remap dialog", e ); } } 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 testShowRemapNoStepsDialog() throws KettleException { DataServiceRemapNoStepsDialog dialog = mock( DataServiceRemapNoStepsDialog.class ); when( uiFactory.getRemapNoStepsDialog( any( Shell.class ) ) ).thenReturn( dialog ); delegate.showRemapNoStepsDialog( null ); verify( dialog ).open(); KettleException e = new KettleException(); doThrow( e ).when( dialog ).open(); delegate.showRemapNoStepsDialog( null ); verify( logChannel ).logError( anyString(), same( e ) ); }