package org.tests.unitinternal; import io.ebean.BaseTestCase; import io.ebean.OrderBy; import org.junit.Test; import static org.junit.Assert.*; /** * Test the OrderBy object and especially its parsing. */ public class TestOrderByParse extends BaseTestCase { @Test public void testParsingOne() { OrderBy<Object> o1 = new OrderBy<>("id"); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id")); o1 = new OrderBy<>("id asc"); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id")); o1 = new OrderBy<>("id desc"); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id desc")); o1 = new OrderBy<>(" id asc "); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id")); assertTrue(o1.containsProperty("id")); assertFalse(o1.containsProperty("junk")); } @Test public void parseNullsHigh() { OrderBy<Object> o1 = new OrderBy<>("id desc nulls high"); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id desc nulls high")); } @Test public void add_parse() { OrderBy<Object> o1 = new OrderBy<>(); o1.add("id desc nulls high"); assertTrue(o1.getProperties().size() == 1); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id desc nulls high")); } @Test public void parseNullsHigh_with_second() { OrderBy<Object> o1 = new OrderBy<>("id desc nulls high, name"); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.toStringFormat().equals("id desc nulls high, name")); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); } @Test public void testParsingTwo() { OrderBy<?> o1 = new OrderBy<>("id,name"); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); assertEquals("id, name", o1.toStringFormat()); o1 = new OrderBy<>(" id , name "); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); assertEquals("id, name", o1.toStringFormat()); o1 = new OrderBy<>(" id desc , name desc "); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(!o1.getProperties().get(1).isAscending()); assertEquals("id desc, name desc", o1.toStringFormat()); o1 = new OrderBy<>(" id ascending, name asc"); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); assertEquals("id, name", o1.toStringFormat()); } @Test public void testAddMethods() { OrderBy<?> o1 = new OrderBy<>(); o1.asc("id"); o1.asc("name"); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); assertEquals("id, name", o1.toStringFormat()); o1 = new OrderBy<>(); o1.desc("id"); o1.desc("name"); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(!o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(!o1.getProperties().get(1).isAscending()); assertEquals("id desc, name desc", o1.toStringFormat()); o1.reverse(); assertTrue(o1.getProperties().size() == 2); assertTrue(o1.getProperties().get(0).getProperty().equals("id")); assertTrue(o1.getProperties().get(0).isAscending()); assertTrue(o1.getProperties().get(1).getProperty().equals("name")); assertTrue(o1.getProperties().get(1).isAscending()); assertEquals("id, name", o1.toStringFormat()); OrderBy<?> copy = o1.copy(); assertTrue(copy != o1); assertTrue(copy.getProperties().size() == 2); assertTrue(copy.getProperties().get(0).getProperty().equals("id")); assertTrue(copy.getProperties().get(0).isAscending()); assertTrue(copy.getProperties().get(1).getProperty().equals("name")); assertTrue(copy.getProperties().get(1).isAscending()); assertEquals("id, name", copy.toStringFormat()); } }