/*
// This software is subject to the terms of the Eclipse Public License v1.0
// Agreement, available at the following URL:
// http://www.eclipse.org/legal/epl-v10.html.
// You must accept the terms of that agreement to use this software.
//
// Copyright (C) 2003-2005 Julian Hyde
// Copyright (C) 2005-2007 Pentaho
// All Rights Reserved.
//
// jhyde, Feb 14, 2003
*/
package mondrian.udf;
import mondrian.test.FoodMartTestCase;
/**
* <code>NullValueTest</code> is a test case which tests simple queries
* expressions.
*
* @author <a>Richard M. Emberson</a>
* @since Mar 01 2007
*/
public class NullValueTest extends FoodMartTestCase {
public NullValueTest() {
super();
}
public NullValueTest(String name) {
super(name);
}
public void testNullValue() {
String s = executeExpr(" NullValue()/NullValue() ");
assertEquals("", s);
s = executeExpr(" NullValue()/NullValue() = NULL ");
assertEquals("false", s);
boolean hasException = false;
try {
s = executeExpr(" NullValue() IS NULL ");
} catch (Exception ex) {
hasException = true;
}
assertTrue(hasException);
// I believe that these IsEmpty results are correct.
// The NullValue function does not represent a cell.
s = executeExpr(" IsEmpty(NullValue()) ");
assertEquals("false", s);
// NullValue()/NullValue() evaluates to DoubleNull
// but DoubleNull evaluates to null, so this seems
// to be broken??
// s = executeExpr(" IsEmpty(NullValue()/NullValue()) ");
// assertEquals("false", s);
s = executeExpr(" 4 + NullValue() ");
assertEquals("4", s);
s = executeExpr(" NullValue() - 4 ");
assertEquals("-4", s);
s = executeExpr(" 4*NullValue() ");
assertEquals("", s);
s = executeExpr(" NullValue()*4 ");
assertEquals("", s);
s = executeExpr(" 4/NullValue() ");
assertEquals("Infinity", s);
s = executeExpr(" NullValue()/4 ");
assertEquals("", s);
/*
*/
}
}
// End NullValueTest.java