/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.menu.dropdown.application; import static org.easymock.EasyMock.createNiceMock; import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.*; import org.junit.Before; import org.junit.Test; import com.globant.katari.core.security.MenuAccessFilterer; import com.globant.katari.core.web.MenuBar; import com.globant.katari.core.web.MenuNode; import com.globant.katari.core.security.SecureUrlAccessHelper; /* Test case for the menu bar component */ public class UserMenuNodeTest { private MenuBar menuBar; private SecureUrlAccessHelper helper = createNiceMock(SecureUrlAccessHelper.class); @Before public void setUp() { menuBar = new MenuBar("root", "root"); // create child nodes /* root 0 */ /* / \ */ /* a b 1 */ /* / \ / | \ */ /* a b a bb b 2 */ /* / / | / \ */ /* a a ba b 3 */ MenuNode a = new MenuNode(menuBar, "a", "a", 0, null); MenuNode b = new MenuNode(menuBar, "b", "b", 0, null); MenuNode a_a = new MenuNode(a, "a", "a", 0, null); MenuNode a_b = new MenuNode(a, "b", "b", 0, null); new MenuNode(b, "a", "a", 0, null, "link_b_a"); MenuNode b_bb = new MenuNode(b, "bb", "bb", 0, null); MenuNode b_b = new MenuNode(b, "b", "b", 0, null); new MenuNode(a_a, "a", "a", 0, null, "link_a_a"); new MenuNode(a_b, "a", "a", 0, null, "link_a_b"); new MenuNode(b_bb, "b", "b", 0, null, "link_b_bb_b"); new MenuNode(b_b, "a", "a", 0, null, "link_b_b_a"); new MenuNode(b_b, "b", "b", 0, null, "link_b_b_b"); } @Test public void testUserMenuNode_all() { MenuAccessFilterer filterer = new MenuAccessFilterer(helper) { public boolean isAccessible(final MenuNode node) { return true; } }; UserMenuNode rootNode = new UserMenuNode(menuBar, filterer); // First level assertThat(rootNode.getChildren().size(), is(2)); // Second level UserMenuNode a = rootNode.getChildren().get(0); UserMenuNode b = rootNode.getChildren().get(1); assertThat(a.getChildren().size(), is(2)); assertThat(b.getChildren().size(), is(3)); assertThat(a.getChildren().get(0).getChildren().size(), is(1)); assertThat(a.getChildren().get(1).getChildren().size(), is(1)); assertThat(b.getChildren().get(0).getChildren().size(), is(0)); assertThat(b.getChildren().get(1).getChildren().size(), is(1)); assertThat(b.getChildren().get(2).getChildren().size(), is(2)); } @Test public void testUserMenuNode_none() { MenuAccessFilterer filterer = new MenuAccessFilterer(helper) { public boolean isAccessible(final MenuNode node) { return false; } }; UserMenuNode rootNode = new UserMenuNode(menuBar, filterer); // First level assertThat(rootNode.getChildren().size(), is(0)); } }