@Override public void onContentChange() { final int currentSelectedPage = getSelectedPage(); if ( newTemplatePresenter.hasProcessCapability() && !newContainerFormPresenter.isEmpty() ) { if ( pages.size() != 3 ) { pages.clear(); pages.add( NewServerTemplateWizard.this.newTemplatePresenter ); pages.add( NewServerTemplateWizard.this.newContainerFormPresenter ); pages.add( NewServerTemplateWizard.this.processConfigPagePresenter ); view.setPageTitles( getPages() ); checkPagesState(); view.selectPage( currentSelectedPage ); } } else if ( pages.size() != 2 ) { pages.clear(); pages.add( NewServerTemplateWizard.this.newTemplatePresenter ); pages.add( NewServerTemplateWizard.this.newContainerFormPresenter ); view.setPageTitles( getPages() ); checkPagesState(); view.selectPage( currentSelectedPage > 1 ? 1 : currentSelectedPage ); } } };
@Override public boolean error( final Object o, final Throwable throwable ) { notification.fire( new NotificationEvent( newTemplatePresenter.getView().getNewServerTemplateWizardSaveError(), NotificationEvent.NotificationType.ERROR ) ); NewServerTemplateWizard.this.pageSelected( 0 ); NewServerTemplateWizard.this.start(); return false; } } ).saveServerTemplate( newServerTemplate );
@Test public void testComplete() { when( newTemplatePresenter.isProcessCapabilityChecked() ).thenReturn( true ); when( newContainerFormPresenter.isEmpty() ).thenReturn( true ); when( newContainerFormPresenter.isEmpty() ).thenReturn( true ); when( newTemplatePresenter.getTemplateName() ).thenReturn( "template-name" ); final String successMessage = "SUCCESS"; when( newTemplatePresenterView.getNewServerTemplateWizardSaveSuccess() ).thenReturn( successMessage ); newServerTemplateWizard.complete(); verify( notification ).fire( new NotificationEvent( successMessage, NotificationEvent.NotificationType.SUCCESS ) ); verifyClear(); verify( serverTemplateListRefreshEvent ).fire( new ServerTemplateListRefresh( "template-name" ) ); doThrow( new RuntimeException() ).when( specManagementService ).saveServerTemplate( any( ServerTemplate.class ) ); final String errorMessage = "ERROR"; when( newTemplatePresenterView.getNewServerTemplateWizardSaveError() ).thenReturn( errorMessage ); newServerTemplateWizard.complete(); verify( notification ).fire( new NotificationEvent( errorMessage, NotificationEvent.NotificationType.ERROR ) ); verify( newServerTemplateWizard ).pageSelected( 0 ); verify( newServerTemplateWizard ).start(); verify( newContainerFormPresenter ).initialise(); }
@Override public void close() { super.close(); clear(); }
private void verifyClear() { verify( newTemplatePresenter ).clear(); verify( newContainerFormPresenter ).clear(); verify( processConfigPagePresenter ).clear(); assertEquals( 2, newServerTemplateWizard.getPages().size() ); assertTrue( newServerTemplateWizard.getPages().contains( newTemplatePresenter ) ); assertTrue( newServerTemplateWizard.getPages().contains( newContainerFormPresenter ) ); } }
@Override public void complete() { final ServerTemplate newServerTemplate = buildServerTemplate(); specManagementService.call( new RemoteCallback<Void>() { @Override public void callback( final Void o ) { notification.fire( new NotificationEvent( newTemplatePresenter.getView().getNewServerTemplateWizardSaveSuccess(), NotificationEvent.NotificationType.SUCCESS ) ); clear(); NewServerTemplateWizard.super.complete(); serverTemplateListRefreshEvent.fire( new ServerTemplateListRefresh( newServerTemplate.getId() ) ); } }, new ErrorCallback<Object>() { @Override public boolean error( final Object o, final Throwable throwable ) { notification.fire( new NotificationEvent( newTemplatePresenter.getView().getNewServerTemplateWizardSaveError(), NotificationEvent.NotificationType.ERROR ) ); NewServerTemplateWizard.this.pageSelected( 0 ); NewServerTemplateWizard.this.start(); return false; } } ).saveServerTemplate( newServerTemplate ); }
@Test public void testClose() { newServerTemplateWizard.close(); verifyClear(); }
@Test public void testTitle() { final String title = "title"; when( newTemplatePresenterView.getNewServerTemplateWizardTitle() ).thenReturn( title ); assertEquals( title, newServerTemplateWizard.getTitle() ); verify( newTemplatePresenterView ).getNewServerTemplateWizardTitle(); }
@Before public void setup() throws IllegalAccessException, NoSuchFieldException { specManagementServiceCaller = new CallerMock<SpecManagementService>( specManagementService ); when( newTemplatePresenter.getView() ).thenReturn( newTemplatePresenterView ); final Answer addContentChangeHandler = new Answer() { @Override public Object answer( InvocationOnMock invocation ) throws Throwable { final ContentChangeHandler handler = (ContentChangeHandler) invocation.getArguments()[ 0 ]; contentChangeHandlers.add( handler ); return null; } }; doAnswer( addContentChangeHandler ).when( newTemplatePresenter ).addContentChangeHandler( any( ContentChangeHandler.class ) ); doAnswer( addContentChangeHandler ).when( newContainerFormPresenter ).addContentChangeHandler( any( ContentChangeHandler.class ) ); newServerTemplateWizard = new NewServerTemplateWizard( newTemplatePresenter, newContainerFormPresenter, processConfigPagePresenter, specManagementServiceCaller, notification, serverTemplateListRefreshEvent ); final Field field = AbstractWizard.class.getDeclaredField( "view" ); field.setAccessible( true ); field.set( newServerTemplateWizard, view ); newServerTemplateWizard = spy( newServerTemplateWizard ); }
@Override public void callback( final Void o ) { notification.fire( new NotificationEvent( newTemplatePresenter.getView().getNewServerTemplateWizardSaveSuccess(), NotificationEvent.NotificationType.SUCCESS ) ); clear(); NewServerTemplateWizard.super.complete(); serverTemplateListRefreshEvent.fire( new ServerTemplateListRefresh( newServerTemplate.getId() ) ); } }, new ErrorCallback<Object>() {
@Test public void testPages() { when( newTemplatePresenter.hasProcessCapability() ).thenReturn( true ); when( newContainerFormPresenter.isEmpty() ).thenReturn( false ); when( newContainerFormPresenter.isValid() ).thenReturn( true ); fireContentHandlers(); assertEquals( 3, newServerTemplateWizard.getPages().size() ); verify( view ).selectPage( 0 ); fireContentHandlers(); assertEquals( 3, newServerTemplateWizard.getPages().size() ); verify( view ).selectPage( 0 ); when( newTemplatePresenter.hasProcessCapability() ).thenReturn( true ); when( newContainerFormPresenter.isEmpty() ).thenReturn( true ); when( newContainerFormPresenter.isValid() ).thenReturn( false ); fireContentHandlers(); assertEquals( 2, newServerTemplateWizard.getPages().size() ); }
@Test public void testClear() { newServerTemplateWizard.clear(); verifyClear(); }