package net.sourceforge.mayfly.evaluation; import junit.framework.TestCase; import net.sourceforge.mayfly.datastore.NullCell; import net.sourceforge.mayfly.evaluation.expression.Concatenate; import net.sourceforge.mayfly.evaluation.expression.SingleColumn; import net.sourceforge.mayfly.evaluation.expression.literal.QuotedString; import net.sourceforge.mayfly.evaluation.select.Evaluator; import net.sourceforge.mayfly.util.MayflyAssert; public class GroupByKeysTest extends TestCase { public void testResolveColumns() throws Exception { GroupByKeys keys = new GroupByKeys( new GroupItem(new Concatenate(new SingleColumn("a"), new QuotedString("'abc'")))); ResultRow row = new ResultRow().withColumn("foo", "a", NullCell.INSTANCE); keys = keys.resolve(row, Evaluator.NO_SUBSELECT_NEEDED); assertEquals(1, keys.size()); Expression expression = keys.get(0).expression(); Concatenate concatenate = (Concatenate) expression; SingleColumn column = (SingleColumn) concatenate.left(); MayflyAssert.assertColumn("foo", "a", column); QuotedString string = (QuotedString) concatenate.right(); assertEquals(new QuotedString("'abc'"), string); } // TODO: max(a) aggregateexpression // TODO: count(*) (does nothing) // TODO: error case (ambiguous column reference) }