DriverDetailsDialog { Document initXul( Composite parent, AbstractXulLoader xulLoader, XulRunner xulRunner ) throws KettleException { try { xulLoader.setOuterContext( parent ); xulLoader.registerClassLoader( getClass().getClassLoader() ); XulDomContainer container = xulLoader.loadXul( XUL_DIALOG_PATH, resourceBundle ); container.addEventHandler( controller ); xulRunner.addContainer( container ); xulRunner.initialize(); return container.getDocumentRoot(); } catch ( XulException xulException ) { throw new KettleException( "Failed to initialize DriverDetailsDialog.", xulException ); } } DriverDetailsDialog( Shell parent );  static final String XUL_DIALOG_ID; }
@Test public void testInitXul() throws Exception { DriverDetailsDialog dialog = mock( DriverDetailsDialog.class ); Shell parentShell = mock( Shell.class ); AbstractXulLoader xulLoader = mock( AbstractXulLoader.class ); XulRunner xulRunner = mock( XulRunner.class ); Document document = mock( Document.class ); XulDomContainer container = mock( XulDomContainer.class ); doReturn( container ).when( xulLoader ).loadXul( anyString(), any( ResourceBundle.class ) ); doReturn( document ).when( container ).getDocumentRoot(); doCallRealMethod().when( dialog ).initXul( parentShell, xulLoader, xulRunner ); assertThat( document, is( sameInstance( dialog.initXul( parentShell, xulLoader, xulRunner ) ) ) ); verify( xulLoader ).setOuterContext( parentShell ); verify( xulLoader ).registerClassLoader( dialog.getClass().getClassLoader() ); verify( xulLoader ).loadXul( anyString(), any( ResourceBundle.class ) ); verify( container ).addEventHandler( any( DriverDetailsDialogController.class ) ); verify( container ).getDocumentRoot( ); verify( xulRunner ).addContainer( container ); verify( xulRunner ).initialize(); }
@Test( expected = KettleException.class ) public void testInitXulThrowsKettleExceptionOnError() throws KettleException { DriverDetailsDialog dialog = mock( DriverDetailsDialog.class ); AbstractXulLoader xulLoader = mock( AbstractXulLoader.class ); doCallRealMethod().when( dialog ).initXul( null, xulLoader, null ); doThrow( XulException.class ).when( xulLoader ).setOuterContext( null ); dialog.initXul( null, xulLoader, null ); }