/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.agiletec.aps.system.services.page.showlet;
import com.agiletec.aps.BaseTestCase;
import com.agiletec.aps.system.services.page.widget.NavigatorExpression;
/**
* @version 1.0
* @author E.Santoboni
*/
public class TestNavigatorExpression extends BaseTestCase {
public void testSetExpression_1() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression("super(3)");
assertEquals(NavigatorExpression.SPEC_SUPER_ID, navExpr.getSpecId());
assertEquals(3, navExpr.getSpecSuperLevel());
assertTrue(navExpr.getOperatorId()<0);
}
public void testSetExpression_2() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression("abs(1).subtree(2)");
assertEquals(NavigatorExpression.SPEC_ABS_ID, navExpr.getSpecId());
assertEquals(1, navExpr.getSpecAbsLevel());
assertEquals(NavigatorExpression.OPERATOR_SUBTREE_ID, navExpr.getOperatorId());
assertEquals(2, navExpr.getOperatorSubtreeLevel());
}
public void testSetExpression_3() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression("current.path");
assertEquals(NavigatorExpression.SPEC_CURRENT_PAGE_ID, navExpr.getSpecId());
assertEquals(NavigatorExpression.OPERATOR_PATH_ID, navExpr.getOperatorId());
}
public void testSetWrongExpression_1() throws Throwable {
NavigatorExpression navExpr = null;
try {
navExpr = new NavigatorExpression("wrongSpec.path");
} catch (RuntimeException e) {
assertTrue(e.getMessage().indexOf("wrongSpec") > 0);
} catch (Throwable e) {
fail();
}
assertNull(navExpr);
}
public void testSetWrongExpression_2() throws Throwable {
NavigatorExpression navExpr = null;
try {
navExpr = new NavigatorExpression("current.wrongOperat");
} catch (RuntimeException e) {
assertTrue(e.getMessage().indexOf("wrongOperat") > 0);
} catch (Throwable e) {
fail();
}
assertNull(navExpr);
}
public void testGetExpression_1() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(NavigatorExpression.SPEC_SUPER_ID);
navExpr.setSpecSuperLevel(4);
String expression = navExpr.toString();
assertEquals("super(4)", expression);
}
public void testGetExpression_2() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(NavigatorExpression.SPEC_CURRENT_PAGE_ID);
navExpr.setOperatorId(NavigatorExpression.OPERATOR_CHILDREN_ID);
String expression = navExpr.toString();
assertEquals("current.children", expression);
}
public void testGetExpression_3() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(NavigatorExpression.SPEC_SUPER_ID);
navExpr.setSpecSuperLevel(2);
navExpr.setOperatorId(NavigatorExpression.OPERATOR_SUBTREE_ID);
navExpr.setOperatorSubtreeLevel(3);
String expression = navExpr.toString();
assertEquals("super(2).subtree(3)", expression);
}
public void testGetExpression_4() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(NavigatorExpression.SPEC_PAGE_ID);
navExpr.setSpecCode("pagina_11");
navExpr.setOperatorId(NavigatorExpression.OPERATOR_PATH_ID);
String expression = navExpr.toString();
assertEquals("code(pagina_11).path", expression);
}
public void testGetWrongExpression_1() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(7);
navExpr.setOperatorId(NavigatorExpression.OPERATOR_PATH_ID);
String expression = null;
try {
expression = navExpr.toString();
} catch (RuntimeException e) {
assertTrue(e.getMessage().indexOf("7") > 0);
} catch (Throwable t) {
fail();
}
assertNull(expression);
}
public void testGetWrongExpression_2() throws Throwable {
NavigatorExpression navExpr = new NavigatorExpression();
navExpr.setSpecId(NavigatorExpression.SPEC_PAGE_ID);
navExpr.setSpecCode(null);
navExpr.setOperatorId(NavigatorExpression.OPERATOR_PATH_ID);
String expression = null;
try {
expression = navExpr.toString();
} catch (RuntimeException e) {
//Messaggio di Pagina nulla
} catch (Throwable t) {
fail();
}
assertNull(expression);
}
}