@Test public void executeFiresCallback() throws RepositoryException, ActionExecutionException { // GIVEN Node node = session.getRootNode().addNode("underlying"); node.getSession().save(); Item item = new JcrNodeAdapter(node); SaveDialogAction<SaveDialogActionDefinition> action = new SaveDialogAction<>(definition, item, validator, callback); // WHEN action.execute(); // THEN verify(callback, only()).onSuccess(eq(ACTION_NAME)); }
@Test public void validatedCallbackFiredIfValid() throws Exception { // GIVEN definition.setValidationEnabled(true); doReturn(true).when(validator).isValid(); // WHEN definition.setCallSuccess(true); action.execute(); // THEN verify(callback).onSuccess(anyString()); // WHEN definition.setCallSuccess(false); action.execute(); // THEN verify(callback).onCancel(); verifyNoMoreInteractions(callback); }
@Test public void testCloseHandlerIsInvokedOnCloseDialog() { // WHEN EditorCallback callback = mock(EditorCallback.class); presenter.start(mock(Item.class), getBasicDialogDefinition(), uiContext, callback, contentConnector); presenter.closeDialog(); //THEN verify(callback, times(1)).onCancel(); }
@Test public void closeHandlerIsInvokedOnlyOnce() throws Exception { // GIVEN // Typical callback a CancelDialogAction would have - close dialog upon cancellation final EditorCallback callback = mock(EditorCallback.class); doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { presenter.closeDialog(); return null; } }).when(callback).onCancel(); // WHEN DialogView view = presenter.start(mock(Item.class), getBasicDialogDefinition(), uiContext, callback, contentConnector); final DialogCloseHandler handler = mock(DialogCloseHandler.class); view.addDialogCloseHandler(handler); view.close(); // THEN // Make sure the added close handler wasn't invoked more than 1 time. verify(handler, times(1)).onDialogClose(view); }
@Test public void executeFiresCallback() throws RepositoryException, ActionExecutionException { // GIVEN Node node = session.getRootNode().addNode("underlying"); node.getSession().save(); JcrNodeAdapter item = new JcrNodeAdapter(node); SaveFormAction action = new SaveFormAction(definition, item, callback, validator); // WHEN action.execute(); // THEN verify(callback, only()).onSuccess(eq(ACTION_NAME)); }
@Test public void nonValidatedCallbackFiresNoMatterWhat() throws Exception { // GIVEN definition.setValidationEnabled(false); // WHEN definition.setCallSuccess(true); action.execute(); // THEN verify(callback).onSuccess(anyString()); // WHEN definition.setCallSuccess(false); action.execute(); // THEN verify(callback).onCancel(); verifyNoMoreInteractions(callback); } }
@Test public void executeOnCancelTest() throws ActionExecutionException { // GIVEN definition.setCallSuccess(false); action = createAction(definition, callback); // WHEN action.execute(); // THEN verify(callback, only()).onCancel(); }
@Override public void execute() throws ActionExecutionException { // First Validate validator.showValidation(true); if (validator.isValid()) { try { ForumManager forumManager = ForumManager.Factory.getInstance(); String forumName = String.valueOf(item.getItemProperty("shortname").getValue()); String forumTitle = String.valueOf(item.getItemProperty("title").getValue()); boolean allowsNesting = "true".equals(String.valueOf(item.getItemProperty(DefaultForumManager.ALLOWS_NESTING_MESSAGES).getValue())); forumManager.createForum(forumName, forumTitle, allowsNesting); } catch (final RepositoryException e) { throw new ActionExecutionException(e); } callback.onSuccess(getDefinition().getName()); } else { log.info("Validation error(s) occurred. No save performed."); } }
Collection actualItemIds = (Collection) event.getItemId(); assertThat(actualItemIds, CoreMatchers.<Collection>equalTo(expectedItemIds)); verify(callback, only()).onCancel();
@Override public Object answer(InvocationOnMock inv) throws Throwable { final Object[] args = inv.getArguments(); final EditorCallback callback = (EditorCallback) args[3]; final Item item = (Item) args[0]; Property property = new TextField(); property.setValue(versionName); item.addItemProperty(ShowVersionsAction.VersionName.PROPERTY_NAME_VERSION_NAME, property); callback.onSuccess("commit"); return null; } }).when(formDialogPresenter).start(any(Item.class), any(FormDialogDefinition.class), any(UiContext.class), any(EditorCallback.class), any(ContentConnector.class));
@Test public void executeDefaultOnSuccessTest() throws ActionExecutionException { // GIVEN action = createAction(definition, callback); // WHEN action.execute(); // THEN verify(callback, only()).onSuccess(eq("success")); }
@Test public void executeCustomOnSuccessTest() throws ActionExecutionException { // GIVEN definition.setSuccessActionName("reload"); action = createAction(definition, callback); // WHEN action.execute(); // THEN verify(callback, only()).onSuccess(eq("reload")); }
@Test public void ensureFolderWillCreateWhenActionRunSuccessfully() throws Exception { // WHEN action.execute(); // THEN assertThat(session.getRootNode(), hasNode("foo")); verify(callback, only()).onSuccess(definition.getName()); }
@Test public void restoreVersion() throws Exception { // GIVEN versionManager.addVersion(node); // change test node before restore node.setProperty("mgnl:template", "section"); node.getNode("areaSubNode").remove(); node.getSession().save(); assertEquals("section", node.getProperty("mgnl:template").getString()); assertFalse(node.hasNode("areaSubNode")); MockRestoreVersionAction restoreVersionAction = new MockRestoreVersionAction(definition, null, null, uiContext, formDialogPresenter, new JcrNodeAdapter(node), i18n, versionManager, eventBus, versionConfig, contentConnector); restoreVersionAction.execute(); // WHEN restoreVersionAction.getEditorCallback().onSuccess(""); // THEN assertEquals("home", node.getProperty("mgnl:template").getString()); assertTrue(node.hasNode("areaSubNode")); assertEquals("version", node.getNode("areaSubNode").getProperty("content").getString()); }
@Override public void execute() throws ActionExecutionException { // First Validate validator.showValidation(true); if (validator.isValid()) { try { ForumManager forumManager = ForumManager.Factory.getInstance(); final Node forumNode = (Node) ((JcrItemAdapter) item).getJcrItem(); String forumNodeId = forumNode.getIdentifier(); String threadTitle = String.valueOf(item.getItemProperty("threadTitle").getValue()); String messageTitle = String.valueOf(item.getItemProperty("messageTitle").getValue()); String messageText = String.valueOf(item.getItemProperty("messageText").getValue()); String author = MgnlContext.getUser().getName(); forumManager.createThread(forumNodeId, threadTitle, messageTitle, messageText, author, false); } catch (final RepositoryException e) { throw new ActionExecutionException(e); } callback.onSuccess(getDefinition().getName()); } else { log.info("Validation error(s) occurred. No save performed."); } }
@Override public void execute() throws ActionExecutionException { RSSAggregator module = (RSSAggregator) Components.getComponent(ModuleRegistry.class).getModuleInstance("rssaggregator"); validator.showValidation(true); if (validator.isValid()) { try { final Node node = item.applyChanges(); setNodeName(node, item); node.getSession().save(); Node2BeanProcessor n2b = Components.getComponent(Node2BeanProcessor.class); RSSJob job = (RSSJob) n2b.toBean(node, RSSJob.class); job.setName(node.getIdentifier()); module.scheduleRSSJob(job.getName()); } catch (final RepositoryException e) { throw new ActionExecutionException(e); } catch (Node2BeanException e) { throw new ActionExecutionException(e); } callback.onSuccess(getDefinition().getName()); } else { // after failed validation put the original job back into the map log.info("Validation error(s) occurred. No save performed."); } } }
throw new ActionExecutionException(e); callback.onSuccess(getDefinition().getName());
@Test public void doNotCreateVersionBeforeRestoreIfNotAllowed() throws Exception { // GIVEN versionManager.addVersion(node); // change test node before restore node.setProperty("mgnl:template", "section"); node.getNode("areaSubNode").remove(); node.getSession().save(); assertEquals(2, versionManager.getAllVersions(node).getSize()); definition.setCreateVersionBeforeRestore(false); MockRestoreVersionAction restoreVersionAction = new MockRestoreVersionAction(definition, null, null, uiContext, formDialogPresenter, new JcrNodeAdapter(node), i18n, versionManager, eventBus, versionConfig, contentConnector); restoreVersionAction.execute(); // WHEN restoreVersionAction.getEditorCallback().onSuccess(""); // THEN assertEquals(2, versionManager.getAllVersions(node).getSize()); }
@Test public void checkVersionCreatedBeforeRestore() throws Exception { // GIVEN versionManager.addVersion(node); // change test node before restore node.setProperty("mgnl:template", "section"); node.getNode("areaSubNode").remove(); node.getSession().save(); assertEquals(2, versionManager.getAllVersions(node).getSize()); MockRestoreVersionAction restoreVersionAction = new MockRestoreVersionAction(definition, null, null, uiContext, formDialogPresenter, new JcrNodeAdapter(node), i18n, versionManager, eventBus, versionConfig, contentConnector); restoreVersionAction.execute(); // WHEN restoreVersionAction.getEditorCallback().onSuccess(""); // THEN assertEquals(3, versionManager.getAllVersions(node).getSize()); Version version = versionManager.getVersion(node, "1.1"); assertEquals(CREATED_VERSION_BEFORE_RESTORE, NodeTypes.Versionable.getComment(version)); assertEquals("section", version.getProperty("mgnl:template").getString()); assertFalse(version.hasNode("areaSubNode")); }
restoreVersionAction.getEditorCallback().onSuccess("");