/* * * Copyright c 2005-2009. * * Licensed under GNU LESSER General Public License, Version 3. * http://www.gnu.org/licenses * */ /******************************************************************************** * @author chaostone * * MODIFICATION DESCRIPTION * * Name Date Description * ============ ============ ============ * chaostone 2006-10-11 Created * ********************************************************************************/ package org.beanfuse.collection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.testng.annotations.Test; import static org.testng.Assert.*; public class OrderTest { @Test public void testToString1() throws Exception { List sorts = Order.parse(null); if (sorts.isEmpty()) { sorts.add(new Order(" teachPlan.grade desc ")); sorts.add(new Order(" teachPlan.major.code ")); // sorts.add(new Order("teachPlan.stdType")); } assertEquals(Order.toSortString(sorts), "order by teachPlan.grade desc,teachPlan.major.code"); } @Test public void testToString() throws Exception { List sorts = new ArrayList(); sorts.add(new Order("id", false)); sorts.add(Order.asc("name")); assertEquals(Order.toSortString(sorts), "order by id desc,name"); } public void testParserOrder() throws Exception { List orders = Order.parse("std.code asc"); for (Iterator iterator = orders.iterator(); iterator.hasNext();) { Order order = (Order) iterator.next(); assertTrue(order.isAscending()); assertEquals(order.getProperty(), "std.code"); } } @Test public void testParserMutiOrder() throws Exception { List sorts = Order .parse("activity.time.year desc,activity.time.validWeeksNum,activity.time.weekId desc"); assertEquals(sorts.size(), 3); Order order = (Order) sorts.get(0); assertEquals(order.getProperty(), "activity.time.year"); assertFalse(order.isAscending()); order = (Order) sorts.get(1); assertEquals(order.getProperty(), "activity.time.validWeeksNum"); assertTrue(order.isAscending()); order = (Order) sorts.get(2); assertEquals(order.getProperty(), "activity.time.weekId"); assertFalse(order.isAscending()); } @Test public void testParserComplexOrder() { List sorts = Order.parse("(case when ware.price is null then 0 else ware.price end) desc"); assertEquals(sorts.size(), 1); Order order = (Order) sorts.get(0); assertEquals(order.getProperty(), "(case when ware.price is null then 0 else ware.price end)"); assertFalse(order.isAscending()); } }