@Override public void savePerspectiveState(Command doWhenFinished) { if (currentPerspective != null && !currentPerspective.isTransient()) { wbServices.save(currentPerspective.getIdentifier(), livePerspectiveDef, doWhenFinished); } else { doWhenFinished.execute(); } }
@SuppressWarnings("unchecked") @Test public void shouldNotLoadNewTransientPerspectiveState() throws Exception { when(oz.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(wbServices, never()).loadPerspective(eq("oz_perspective"), any(ParameterizedCommand.class)); }
@SuppressWarnings("unchecked") @Test public void shouldLoadNewNonTransientPerspectiveState() throws Exception { when(oz.isTransient()).thenReturn(false); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(wbServices).loadPerspective(eq("oz_perspective"), any(ParameterizedCommand.class)); }
@SuppressWarnings("unchecked") @Test public void shouldNotLoadNewTransientPerspectiveState() throws Exception { when(oz.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(wbServices, never()).loadPerspective(eq("oz_perspective"), any(ParameterizedCommand.class)); }
@SuppressWarnings("unchecked") @Test public void shouldLoadNewNonTransientPerspectiveState() throws Exception { when(oz.isTransient()).thenReturn(false); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(wbServices).loadPerspective(eq("oz_perspective"), any(ParameterizedCommand.class)); }
@Test public void fetchPerspectiveCommandForAnInvalidDefinitionShouldLoadedPerspectiveDefinitionTest() throws Exception { when(oz.isTransient()).thenReturn(false); when(fetchCommand.isAValidDefinition(any())).thenReturn(false); fetchCommand.execute(); assertEquals(oz, perspectiveManager.getCurrentPerspective()); verify(doAfterFetch).execute(eq(ozDefinition)); }
@Test public void shouldSaveNonTransientPerspectives() throws Exception { PerspectiveDefinition kansasDefinition = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PerspectiveActivity kansas = mock(PerspectiveActivity.class); when(kansas.getDefaultPerspectiveLayout()).thenReturn(kansasDefinition); when(kansas.getIdentifier()).thenReturn("kansas_perspective"); when(kansas.isTransient()).thenReturn(false); perspectiveManager.switchToPerspective(pr, kansas, doWhenFinished); perspectiveManager.savePerspectiveState(doWhenFinishedSave); verify(wbServices).save(eq("kansas_perspective"), eq(kansasDefinition), eq(doWhenFinishedSave)); }
@Test public void fetchPerspectiveCommandForAnInvalidDefinitionShouldLoadedPerspectiveDefinitionTest() throws Exception { when(oz.isTransient()).thenReturn(false); when(fetchCommand.isAValidDefinition(any())).thenReturn(false); fetchCommand.execute(); assertEquals(oz, perspectiveManager.getCurrentPerspective()); verify(doAfterFetch).execute(eq(ozDefinition)); }
@Test public void shouldNotSaveTransientPerspectives() throws Exception { PerspectiveDefinition kansasDefinition = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PerspectiveActivity kansas = mock(PerspectiveActivity.class); when(kansas.getDefaultPerspectiveLayout()).thenReturn(kansasDefinition); when(kansas.getIdentifier()).thenReturn("kansas_perspective"); when(kansas.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, kansas, doWhenFinished); perspectiveManager.savePerspectiveState(doWhenFinishedSave); verify(wbServices, never()).save(any(String.class), eq(kansasDefinition), any(Command.class)); }
@Test public void shouldNotSaveTransientPerspectives() throws Exception { PerspectiveDefinition kansasDefinition = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PerspectiveActivity kansas = mock(PerspectiveActivity.class); when(kansas.getDefaultPerspectiveLayout()).thenReturn(kansasDefinition); when(kansas.getIdentifier()).thenReturn("kansas_perspective"); when(kansas.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, kansas, doWhenFinished); perspectiveManager.savePerspectiveState(doWhenFinishedSave); verify(wbServices, never()).save(any(String.class), eq(kansasDefinition), any(Command.class)); }
@Override public void execute() { currentPerspectivePlaceRequest = placeRequest; currentPerspective = perspective; if (perspective.isTransient()) { //Transient Perspectives are not saved and hence cannot be loaded doAfterFetch.execute(perspective.getDefaultPerspectiveLayout()); } else { wbServices.loadPerspective(perspective.getIdentifier(), new ParameterizedCommand<PerspectiveDefinition>() { @Override public void execute(final PerspectiveDefinition response) { if (isAValidDefinition(response)) { doAfterFetch.execute(response); } else { doAfterFetch.execute(perspective.getDefaultPerspectiveLayout()); } } }); } }
@Test public void shouldSaveNonTransientPerspectives() throws Exception { PerspectiveDefinition kansasDefinition = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PerspectiveActivity kansas = mock(PerspectiveActivity.class); when(kansas.getDefaultPerspectiveLayout()).thenReturn(kansasDefinition); when(kansas.getIdentifier()).thenReturn("kansas_perspective"); when(kansas.isTransient()).thenReturn(false); perspectiveManager.switchToPerspective(pr, kansas, doWhenFinished); perspectiveManager.savePerspectiveState(doWhenFinishedSave); verify(wbServices).save(eq("kansas_perspective"), eq(kansasDefinition), eq(doWhenFinishedSave)); }
when(oz.getDefaultPerspectiveLayout()).thenReturn(ozDefinition); when(oz.getIdentifier()).thenReturn("oz_perspective"); when(oz.isTransient()).thenReturn(true);
when(oz.getDefaultPerspectiveLayout()).thenReturn(ozDefinition); when(oz.getIdentifier()).thenReturn("oz_perspective"); when(oz.isTransient()).thenReturn(true);
@Test public void shouldDestroyAllOldPanelsWhenSwitchingRoot() throws Exception { PerspectiveDefinition fooPerspectiveDef = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PanelDefinition rootPanel = fooPerspectiveDef.getRoot(); PanelDefinition fooPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition fooChildPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition barPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition bazPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); rootPanel.appendChild(fooPanel); rootPanel.appendChild(barPanel); rootPanel.appendChild(bazPanel); fooPanel.appendChild(fooChildPanel); PerspectiveActivity fooPerspective = mock(PerspectiveActivity.class); when(fooPerspective.getDefaultPerspectiveLayout()).thenReturn(fooPerspectiveDef); when(fooPerspective.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, fooPerspective, doWhenFinished); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(panelManager).removeWorkbenchPanel(fooPanel); verify(panelManager).removeWorkbenchPanel(fooChildPanel); verify(panelManager).removeWorkbenchPanel(barPanel); verify(panelManager).removeWorkbenchPanel(bazPanel); verify(panelManager, never()).removeWorkbenchPanel(rootPanel); }
@Test public void shouldDestroyAllOldPanelsWhenSwitchingRoot() throws Exception { PerspectiveDefinition fooPerspectiveDef = new PerspectiveDefinitionImpl(MultiListWorkbenchPanelPresenter.class.getName()); PanelDefinition rootPanel = fooPerspectiveDef.getRoot(); PanelDefinition fooPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition fooChildPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition barPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); PanelDefinition bazPanel = new PanelDefinitionImpl(SimpleWorkbenchPanelPresenter.class.getName()); rootPanel.appendChild(fooPanel); rootPanel.appendChild(barPanel); rootPanel.appendChild(bazPanel); fooPanel.appendChild(fooChildPanel); PerspectiveActivity fooPerspective = mock(PerspectiveActivity.class); when(fooPerspective.getDefaultPerspectiveLayout()).thenReturn(fooPerspectiveDef); when(fooPerspective.isTransient()).thenReturn(true); perspectiveManager.switchToPerspective(pr, fooPerspective, doWhenFinished); perspectiveManager.switchToPerspective(pr, oz, doWhenFinished); verify(panelManager).removeWorkbenchPanel(fooPanel); verify(panelManager).removeWorkbenchPanel(fooChildPanel); verify(panelManager).removeWorkbenchPanel(barPanel); verify(panelManager).removeWorkbenchPanel(bazPanel); verify(panelManager, never()).removeWorkbenchPanel(rootPanel); }