private void setup( final ServerTemplate serverTemplate, final String selectContainerId ) { this.view.setServerTemplate( serverTemplatePresenter.getView() ); ContainerSpec firstContainerSpec = null; if ( serverTemplate.getContainersSpec().isEmpty() ) { serverContainerEmptyPresenter.setTemplate( serverTemplate ); this.view.setContent( serverContainerEmptyPresenter.getView() ); firstContainerSpec = null; } else { if ( selectContainerId != null ) { for ( final ContainerSpec containerSpec : serverTemplate.getContainersSpec() ) { if ( containerSpec.getId().equals( selectContainerId ) ) { firstContainerSpec = containerSpec; break; } } } if ( firstContainerSpec == null ) { firstContainerSpec = serverTemplate.getContainersSpec().iterator().next(); } } serverTemplatePresenter.setup( serverTemplate, firstContainerSpec ); }
@Test public void testRemoveTemplate() { when( view.getRemoveTemplateErrorMessage() ).thenReturn( "ERROR" ); doAnswer( new Answer<Void>() { @Override public Void answer( final InvocationOnMock invocation ) throws Throwable { Command command = (Command) invocation.getArguments()[ 0 ]; if ( command != null ) { command.execute(); } return null; } } ).when( view ).confirmRemove( any( Command.class ) ); final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateKeyId", "ServerTemplateKeyName" ); presenter.setup( serverTemplate, null ); presenter.removeTemplate(); verify( specManagementService ).deleteServerTemplate( serverTemplate.getId() ); verify( serverTemplateListRefreshEvent ).fire( any( ServerTemplateListRefresh.class ) ); doThrow( new RuntimeException() ).when( specManagementService ).deleteServerTemplate( serverTemplate.getId() ); presenter.removeTemplate(); verify( specManagementService, times( 2 ) ).deleteServerTemplate( serverTemplate.getId() ); verify( serverTemplateListRefreshEvent, times( 2 ) ).fire( any( ServerTemplateListRefresh.class ) ); verify( notification ).fire( new NotificationEvent( "ERROR", NotificationEvent.NotificationType.ERROR ) ); }
@Test public void testOnSelectedServerTemplate() { final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateId", "ServerTemplateName" ); final ServerTemplateKey serverTemplateKey = new ServerTemplateKey( "ServerTemplateKeyId", "ServerTemplateKeyName" ); when( specManagementService.getServerTemplate( serverTemplateKey.getId() ) ).thenReturn( serverTemplate ); final ServerTemplatePresenter.View serverView = mock( ServerTemplatePresenter.View.class ); when( serverTemplatePresenter.getView() ).thenReturn( serverView ); final ServerContainerEmptyPresenter.View serverEmptyView = mock( ServerContainerEmptyPresenter.View.class ); when( serverContainerEmptyPresenter.getView() ).thenReturn( serverEmptyView ); presenter.onSelected( new ServerTemplateSelected( serverTemplateKey ) ); verify( view ).setServerTemplate( serverView ); verify( specManagementService ).getServerTemplate( serverTemplateKey.getId() ); verify( serverContainerEmptyPresenter ).setTemplate( serverTemplate ); verify( view ).setContent( serverEmptyView ); verify( serverTemplatePresenter ).setup( serverTemplate, null ); }
@Test public void testOnSelectedNonEmptyServerTemplate() { final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateId", "ServerTemplateName" ); final ContainerSpec toBeSelected = mock( ContainerSpec.class ); serverTemplate.addContainerSpec( toBeSelected ); when( toBeSelected.getId() ).thenReturn( "other-id" ); final ContainerSpec forcedToBeSelected = mock( ContainerSpec.class ); when( forcedToBeSelected.getId() ).thenReturn( "container-id" ); serverTemplate.addContainerSpec( forcedToBeSelected ); final ServerTemplateKey serverTemplateKey = new ServerTemplateKey( "ServerTemplateKeyId", "ServerTemplateKeyName" ); when( specManagementService.getServerTemplate( serverTemplateKey.getId() ) ).thenReturn( serverTemplate ); final ServerTemplatePresenter.View serverView = mock( ServerTemplatePresenter.View.class ); when( serverTemplatePresenter.getView() ).thenReturn( serverView ); presenter.onSelected( new ServerTemplateSelected( serverTemplateKey ) ); verify( view ).setServerTemplate( serverView ); verify( specManagementService ).getServerTemplate( serverTemplateKey.getId() ); verify( serverTemplatePresenter ).setup( serverTemplate, toBeSelected ); presenter.onSelected( new ServerTemplateSelected( serverTemplateKey, "container-id" ) ); verify( serverTemplatePresenter ).setup( serverTemplate, forcedToBeSelected ); }
@Test public void testCopyTemplate() { final String newTemplateName = "NewTemplateName"; doAnswer( new Answer<Void>() { @Override public Void answer( final InvocationOnMock invocation ) throws Throwable { final ParameterizedCommand command = (ParameterizedCommand) invocation.getArguments()[ 0 ]; if ( command != null ) { command.execute( newTemplateName ); } return null; } } ).when( copyPresenter ).copy( any( ParameterizedCommand.class ) ); final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateKeyId", "ServerTemplateKeyName" ); presenter.setup( serverTemplate, null ); assertEquals( serverTemplate, presenter.getCurrentServerTemplate() ); presenter.copyTemplate(); verify( specManagementService ).copyServerTemplate( serverTemplate.getId(), newTemplateName, newTemplateName ); verify( copyPresenter ).hide(); final ArgumentCaptor<ServerTemplateListRefresh> serverTemplateCaptor = ArgumentCaptor.forClass( ServerTemplateListRefresh.class ); verify( serverTemplateListRefreshEvent ).fire( serverTemplateCaptor.capture() ); assertEquals( newTemplateName, serverTemplateCaptor.getValue().getSelectServerTemplateId() ); doThrow( new RuntimeException() ).when( specManagementService ).copyServerTemplate( serverTemplate.getId(), newTemplateName, newTemplateName ); presenter.copyTemplate(); verify( specManagementService, times( 2 ) ).copyServerTemplate( serverTemplate.getId(), newTemplateName, newTemplateName ); verify( copyPresenter ).errorDuringProcessing( anyString() ); }
@Test public void testSetupCapabilities() { final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateKeyId", "ServerTemplateKeyName" ); serverTemplate.getCapabilities().add( Capability.PROCESS.toString() ); serverTemplate.getCapabilities().add( Capability.PLANNING.toString() ); serverTemplate.getCapabilities().add( Capability.RULE.toString() ); presenter.setup( serverTemplate, null ); assertEquals( serverTemplate, presenter.getCurrentServerTemplate() ); verify( view ).clear(); verify( view ).setTemplate( serverTemplate.getId(), serverTemplate.getName() ); verify( view ).setProcessCapability( true ); verify( view ).setRulesCapability( true ); verify( view ).setPlanningCapability( true ); }
@Test public void testOnServerInstanceUpdated() { final ServerTemplate serverTemplate = new ServerTemplate( "ServerTemplateId", "ServerTemplateName" ); presenter.setup( serverTemplate, null ); assertEquals( serverTemplate, presenter.getCurrentServerTemplate() ); final ServerInstance serverInstance = new ServerInstance( serverTemplate.getId(), "serverName", "serverInstanceId", "url", "1.0", Collections.<Message>emptyList(), Collections.<Container>emptyList() ); presenter.onServerInstanceUpdated( new ServerInstanceUpdated( serverInstance ) ); presenter.onServerInstanceUpdated( new ServerInstanceUpdated( serverInstance ) ); verify( view ).addServerInstance( eq( serverInstance.getServerTemplateId() ), eq( serverInstance.getServerInstanceId() ), eq( serverInstance.getServerName() ), any( Command.class ) ); presenter.onServerInstanceDeleted( new ServerInstanceDeleted( serverInstance.getServerInstanceId() ) ); presenter.onServerInstanceUpdated( new ServerInstanceUpdated( serverInstance ) ); verify( view, times( 2 ) ).addServerInstance( eq( serverInstance.getServerTemplateId() ), eq( serverInstance.getServerInstanceId() ), eq( serverInstance.getServerName() ), any( Command.class ) ); }
serverTemplate.addContainerSpec( containerSpec1 ); presenter.setup( serverTemplate, containerSpec ); assertEquals( serverTemplate, presenter.getCurrentServerTemplate() );