package net.sourceforge.mayfly.evaluation.what; import junit.framework.TestCase; import net.sourceforge.mayfly.evaluation.expression.Plus; import net.sourceforge.mayfly.evaluation.expression.SingleColumn; import net.sourceforge.mayfly.evaluation.expression.Sum; public class AliasedExpressionTest extends TestCase { public void testDisplayName() throws Exception { AliasedExpression element = new AliasedExpression( "total", new Sum(new SingleColumn("x"), "Sum", false) ); assertEquals("Sum(x) AS total", element.displayName()); } public void testAggregate() throws Exception { AliasedExpression element = new AliasedExpression( "total", new Sum(new SingleColumn("x"), "Sum", false) ); assertEquals("Sum(x)", element.firstAggregate()); assertEquals(null, element.firstColumn()); } public void testNonAggregate() throws Exception { AliasedExpression element = new AliasedExpression( "total", new Plus(new SingleColumn("x"), new SingleColumn("y")) ); assertEquals(null, element.firstAggregate()); assertEquals("x", element.firstColumn()); } public void testSameExpression() throws Exception { AliasedExpression one = new AliasedExpression( "total", new SingleColumn("all_of_it") ); AliasedExpression justLikeOne = new AliasedExpression( "total", new SingleColumn("all_of_it") ); AliasedExpression differentAlias = new AliasedExpression( "whole_enchilada", new SingleColumn("all_of_it") ); AliasedExpression differentExpression = new AliasedExpression( "total", new SingleColumn("x") ); assertTrue(one.sameExpression(justLikeOne)); assertFalse(one.sameExpression(differentAlias)); assertFalse(one.sameExpression(differentExpression)); assertFalse(one.sameExpression(new SingleColumn("non_alias"))); } // resolve }