package com.celements.navigation;
import static com.celements.common.test.CelementsTestUtils.*;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.xwiki.model.reference.SpaceReference;
import org.xwiki.model.reference.WikiReference;
import com.celements.common.test.AbstractComponentTest;
import com.celements.navigation.NavigationConfig.Builder;
import com.celements.navigation.presentation.IPresentationTypeRole;
import com.celements.web.service.IWebUtilsService;
import com.google.common.base.Optional;
import com.xpn.xwiki.web.Utils;
public class NavigationConfigTest extends AbstractComponentTest {
private Builder navBuilder;
@Before
public void setUp_NavigationConfigTest() throws Exception {
navBuilder = new NavigationConfig.Builder();
}
@Test
public void testNavigationConfig_DEFAULTS() throws Exception {
NavigationConfig navConfig = NavigationConfig.DEFAULTS;
assertFalse(navConfig.isEnabled());
assertEquals("toHieararchyLevel default must equal DEFAULT_MAX_LEVEL",
NavigationConfig.DEFAULT_MAX_LEVEL, navConfig.getToHierarchyLevel());
assertEquals("fromHieararchyLevel default must equal DEFAULT_MIN_LEVEL",
NavigationConfig.DEFAULT_MIN_LEVEL, navConfig.getFromHierarchyLevel());
assertTrue("DEFAULT_MAX_LEVEL must be greater zero", NavigationConfig.DEFAULT_MAX_LEVEL > 0);
assertTrue("DEFAULT_MIN_LEVEL must be greater zero", NavigationConfig.DEFAULT_MIN_LEVEL > 0);
assertTrue("DEFAULT_MAX_LEVEL must be greater DEFAULT_MIN_LEVEL",
NavigationConfig.DEFAULT_MAX_LEVEL > NavigationConfig.DEFAULT_MIN_LEVEL);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetConfigName_default() {
NavigationConfig navConfig = navBuilder.build();
assertEquals("", navConfig.getConfigName());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetConfigName() {
String configName = "mainMenu";
navBuilder.configName(configName);
NavigationConfig navConfig = navBuilder.build();
assertEquals(configName, navConfig.getConfigName());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testIsEnabled_true() {
NavigationConfig navConfig = navBuilder.build();
assertTrue(navConfig.isEnabled());
// defaults for other fields must remain
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testIsEnabled_false() {
NavigationConfig navConfig = navBuilder.disable().build();
assertFalse(navConfig.isEnabled());
// defaults for other fields must remain
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetFromHierarchyLevel() {
Integer fromHierarchyLevel = 10;
navBuilder.fromHierarchyLevel(fromHierarchyLevel);
NavigationConfig navConfig = navBuilder.build();
assertEquals("fromHieararchyLevel must equals to parameter", fromHierarchyLevel,
(Integer) navConfig.getFromHierarchyLevel());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetToHierarchyLevel() {
Integer toHierarchyLevel = 11;
navBuilder.toHierarchyLevel(toHierarchyLevel);
NavigationConfig navConfig = navBuilder.build();
assertEquals("toHieararchyLevel must equals to parameter", toHierarchyLevel,
(Integer) navConfig.getToHierarchyLevel());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetShowInactiveToLevel() {
Integer showInactiveToLevel = 10;
navBuilder.showInactiveToLevel(showInactiveToLevel);
NavigationConfig navConfig = navBuilder.build();
assertEquals("showInactiveToLevel must equals to parameter", showInactiveToLevel,
(Integer) navConfig.getShowInactiveToLevel());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetMenuPart() {
String menuPart = "mainMenu";
navBuilder.menuPart(menuPart);
NavigationConfig navConfig = navBuilder.build();
assertEquals("menuPart must equals to parameter", menuPart, navConfig.getMenuPart());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetNodeSpaceRef() {
String spaceName = "MySpace";
SpaceReference nodeSpaceRef = new SpaceReference(spaceName, new WikiReference(
getContext().getDatabase()));
navBuilder.nodeSpaceRef(nodeSpaceRef);
NavigationConfig navConfig = navBuilder.build();
Optional<SpaceReference> firstReturnNodeSpace = navConfig.getNodeSpaceRef();
assertEquals("expected equals nodeSpaceRef", nodeSpaceRef, firstReturnNodeSpace.get());
assertNotSame("expected defensive copy of nodeSpaceRef", nodeSpaceRef, firstReturnNodeSpace);
assertNotSame("expected defensive copy of nodeSpaceRef", firstReturnNodeSpace,
navConfig.getNodeSpaceRef());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getCssClass());
assertEquals("", navConfig.getMenuPart());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetDataType() {
String dataType = "testType";
navBuilder.dataType(dataType);
NavigationConfig navConfig = navBuilder.build();
assertEquals(dataType, navConfig.getDataType());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetLayoutType() {
String layoutType = "testLayoutType";
navBuilder.layoutType(layoutType);
NavigationConfig navConfig = navBuilder.build();
assertEquals(layoutType, navConfig.getLayoutType());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetNrOfItemsPerPage() {
Integer itemsPerPage = 10;
navBuilder.nrOfItemsPerPage(itemsPerPage);
NavigationConfig navConfig = navBuilder.build();
assertEquals("itemsPerPage must equals to parameter", itemsPerPage,
(Integer) navConfig.getNrOfItemsPerPage());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testGetPresentationType() throws Exception {
String presentationTypeHint = "myTestPresentationType";
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint))).andReturn(componentInstance);
replayDefault();
navBuilder.presentationTypeHint(presentationTypeHint);
NavigationConfig navConfig = navBuilder.build();
assertSame(componentInstance, navConfig.getPresentationType().get());
verifyDefault();
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertEquals("", navConfig.getCssClass());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
}
@Test
public void testGetCssClass() {
String cmCssClass = "cm_cssTestClass";
navBuilder.cmCssClass(cmCssClass);
NavigationConfig navConfig = navBuilder.build();
assertEquals("cmCssClass must equals to parameter", cmCssClass, navConfig.getCssClass());
// defaults for other fields must remain
assertTrue(navConfig.isEnabled());
assertEquals("", navConfig.getConfigName());
assertTrue("fromHieararchyLevel must be greater zero", navConfig.getFromHierarchyLevel() > 0);
assertTrue("toHieararchyLevel must be greater zero", navConfig.getToHierarchyLevel() > 0);
assertTrue("showInactiveToLevel must be greater equlas zero",
navConfig.getShowInactiveToLevel() >= 0);
assertEquals("", navConfig.getMenuPart());
assertFalse(navConfig.getNodeSpaceRef().isPresent());
assertEquals(NavigationConfig.PAGE_MENU_DATA_TYPE, navConfig.getDataType());
assertEquals(NavigationConfig.LIST_LAYOUT_TYPE, navConfig.getLayoutType());
assertEquals(NavigationConfig.UNLIMITED_ITEMS_PER_PAGE, navConfig.getNrOfItemsPerPage());
assertNotNull(Utils.getComponent(IPresentationTypeRole.class));
assertSame(Utils.getComponent(IPresentationTypeRole.class),
navConfig.getPresentationType().get());
}
@Test
public void testOverlayValues_configName() throws Exception {
String configName = "configName1";
navBuilder.configName(configName);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("configName must equal to first parameter", configName, navConfig.getConfigName());
// navConfig2 values for other fields must remain
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_fromHierarchyLevel() throws Exception {
Integer fromHierarchyLevel = 15;
navBuilder.fromHierarchyLevel(fromHierarchyLevel);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("fromHieararchyLevel must equal to first parameter", fromHierarchyLevel,
(Integer) navConfig.getFromHierarchyLevel());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_toHierarchyLevel() throws Exception {
Integer toHierarchyLevel = 70;
navBuilder.toHierarchyLevel(toHierarchyLevel);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("toHieararchyLevel must equal to first parameter", toHierarchyLevel,
(Integer) navConfig.getToHierarchyLevel());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_showInactiveToLevel() throws Exception {
Integer showInactiveToLevel = 30;
navBuilder.showInactiveToLevel(showInactiveToLevel);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("showInactiveToLevel must equal to first parameter", showInactiveToLevel,
(Integer) navConfig.getShowInactiveToLevel());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_menuPart() throws Exception {
String menuPart = "menuPart1";
navBuilder.menuPart(menuPart);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("menuPart must equal to first parameter", menuPart, navConfig.getMenuPart());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_dataType() throws Exception {
String dataType = "dataType1";
navBuilder.dataType(dataType);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("dataType must equal to first parameter", dataType, navConfig.getDataType());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_nodeSpaceRef() throws Exception {
SpaceReference nodeSpaceRef = new SpaceReference("NavConfigSpace1", new WikiReference(
getContext().getDatabase()));
navBuilder.nodeSpaceRef(nodeSpaceRef);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("nodeSpaceRef must equal to first parameter", nodeSpaceRef,
navConfig.getNodeSpaceRef().get());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_layoutType() throws Exception {
String layoutType = "layoutType1";
navBuilder.layoutType(layoutType);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("layoutType must equal to first parameter", layoutType, navConfig.getLayoutType());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_itemsPerPage() throws Exception {
Integer itemsPerPage = 20;
navBuilder.nrOfItemsPerPage(itemsPerPage);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("itemsPerPage must equal to first parameter", itemsPerPage,
(Integer) navConfig.getNrOfItemsPerPage());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertSame(componentInstance, navConfig.getPresentationType().get());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_presentationTypeHint() throws Exception {
String presentationTypeHint = "navConfigPresTypeHint1";
navBuilder.presentationTypeHint(presentationTypeHint);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertSame(componentInstance, navConfig.getPresentationType().get());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertEquals("cmCssClass must equal to second parameter", cmCssClass2, navConfig.getCssClass());
verifyDefault();
}
@Test
public void testOverlayValues_cmCssClass() throws Exception {
String cmCssClass = "cm_cssTestClass1";
navBuilder.cmCssClass(cmCssClass);
NavigationConfig navConfig1 = navBuilder.build();
String configName2 = "configName2";
Integer fromHierarchyLevel2 = 22;
Integer toHierarchyLevel2 = 60;
Integer showInactiveToLevel2 = 55;
String menuPart2 = "menuPart2";
String dataType2 = "dataType2";
SpaceReference nodeSpaceRef2 = new SpaceReference("NavConfigSpace2", new WikiReference(
getContext().getDatabase()));
String layoutType2 = "navConfig2LayoutType";
Integer itemsPerPage2 = 50;
String presentationTypeHint2 = "navConfigPresTypeHint2";
String cmCssClass2 = "cm_cssTestClass2";
NavigationConfig navConfig2 = new NavigationConfig.Builder().configName(
configName2).fromHierarchyLevel(fromHierarchyLevel2).toHierarchyLevel(
toHierarchyLevel2).showInactiveToLevel(showInactiveToLevel2).menuPart(
menuPart2).dataType(dataType2).nodeSpaceRef(nodeSpaceRef2).layoutType(
layoutType2).nrOfItemsPerPage(itemsPerPage2).presentationTypeHint(
presentationTypeHint2).cmCssClass(cmCssClass2).build();
IPresentationTypeRole componentInstance = createMockAndAddToDefault(
IPresentationTypeRole.class);
IWebUtilsService wUServiceMock = registerComponentMock(IWebUtilsService.class);
expect(wUServiceMock.lookup(eq(IPresentationTypeRole.class), eq(
presentationTypeHint2))).andReturn(componentInstance);
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(navConfig1);
assertTrue(navConfig.isEnabled());
assertEquals("cmCssClass must equal to first parameter", cmCssClass, navConfig.getCssClass());
// navConfig2 values for other fields must remain
assertEquals("configName must equal to second parameter", configName2,
navConfig.getConfigName());
assertEquals("fromHieararchyLevel must equal to second parameter", fromHierarchyLevel2,
(Integer) navConfig.getFromHierarchyLevel());
assertEquals("toHieararchyLevel must equal to second parameter", toHierarchyLevel2,
(Integer) navConfig.getToHierarchyLevel());
assertEquals("showInactiveToLevel must equal to second parameter", showInactiveToLevel2,
(Integer) navConfig.getShowInactiveToLevel());
assertEquals("menuPart must equal to second parameter", menuPart2, navConfig.getMenuPart());
assertEquals("nodeSpaceRef must equal to second parameter", nodeSpaceRef2,
navConfig.getNodeSpaceRef().get());
assertEquals("dataType must equal to second parameter", dataType2, navConfig.getDataType());
assertEquals("layoutType must equal to second parameter", layoutType2,
navConfig.getLayoutType());
assertEquals("itemsPerPage must equal to second parameter", itemsPerPage2,
(Integer) navConfig.getNrOfItemsPerPage());
assertSame(componentInstance, navConfig.getPresentationType().get());
verifyDefault();
}
@Test
public void testOverlayValues_defaults() throws Exception {
NavigationConfig navConfig2 = NavigationConfig.DEFAULTS;
replayDefault();
NavigationConfig navConfig = navConfig2.overlay(NavigationConfig.DEFAULTS);
assertFalse(navConfig.isEnabled());
assertSame(navConfig, NavigationConfig.DEFAULTS);
verifyDefault();
}
}