@Test public void testMakeMenuBar() { final Command saveAndRenameCommand = mock(Command.class); doNothing().when(presenter).addDownloadMenuItem(any()); doReturn(Optional.of(mock(WorkspaceProject.class))).when(workbenchContext).getActiveWorkspaceProject(); doReturn(true).when(projectController).canUpdateProject(any()); doReturn(saveAndRenameCommand).when(presenter).getSaveAndRename(); presenter.makeMenuBar(); verify(getMenuSessionItems()).populateMenu(eq(fileMenuBuilder)); verify(fileMenuBuilder).addSave(any(MenuItem.class)); verify(fileMenuBuilder).addCopy(any(Path.class), any(AssetUpdateValidator.class)); verify(fileMenuBuilder).addRename(saveAndRenameCommand); verify(fileMenuBuilder).addDelete(any(Path.class), any(AssetUpdateValidator.class)); verify(presenter).addDownloadMenuItem(fileMenuBuilder); }
@Test public void testMakeMenuBarWithoutUpdateProjectPermission() { doNothing().when(presenter).addDownloadMenuItem(any()); doReturn(Optional.of(mock(WorkspaceProject.class))).when(workbenchContext).getActiveWorkspaceProject(); doReturn(false).when(projectController).canUpdateProject(any()); presenter.makeMenuBar(); verify(getMenuSessionItems()).populateMenu(eq(fileMenuBuilder)); verify(fileMenuBuilder, never()).addSave(any(MenuItem.class)); verify(fileMenuBuilder, never()).addCopy(any(Path.class), any(AssetUpdateValidator.class)); verify(fileMenuBuilder, never()).addRename(any(Path.class), any(AssetUpdateValidator.class)); verify(fileMenuBuilder, never()).addDelete(any(Path.class), any(AssetUpdateValidator.class)); }
@Override protected void makeMenuBar() { if (!menuBarInitialzed) { menuSessionItems.populateMenu(fileMenuBuilder); makeAdditionalStunnerMenus(fileMenuBuilder); if (canUpdateProject()) { fileMenuBuilder .addSave(versionRecordManager.newSaveMenuItem(this::saveAction)) .addCopy(versionRecordManager.getCurrentPath(), assetUpdateValidator) .addRename(getSaveAndRename()) .addDelete(versionRecordManager.getPathToLatest(), assetUpdateValidator); } addDownloadMenuItem(fileMenuBuilder); fileMenuBuilder .addNewTopLevelMenu(versionRecordManager.buildMenu()) .addNewTopLevelMenu(alertsButtonMenuItemBuilder.build()); menuBarInitialzed = true; } }