@@ -245,6 +245,43 @@ class OrderByClauseTest : ManagerDependentTest {
245245 assertEquals(expected.toDopeQuery(manager), actual.toDopeQuery(manager))
246246 }
247247
248+ @Test
249+ fun `should support order by function with orderExpression` () {
250+ val stringField = someStringField()
251+ val parentClause = someSelectClause()
252+ val orderExpression = OrderExpression (stringField)
253+ val expected = SelectOrderByClause (orderExpression, parentClause = parentClause)
254+
255+ val actual = parentClause.orderBy(orderExpression)
256+
257+ assertEquals(expected.toDopeQuery(manager), actual.toDopeQuery(manager))
258+ }
259+
260+ @Test
261+ fun `should support order by function with multiple orderExpressions` () {
262+ val parentClause = someSelectClause()
263+ val orderExpression1 = OrderExpression (someStringField())
264+ val orderExpression2 = OrderExpression (someNumberField(), ASC )
265+ val expected = SelectOrderByClause (orderExpression1, orderExpression2, parentClause = parentClause)
266+
267+ val actual = parentClause.orderBy(orderExpression1, orderExpression2)
268+
269+ assertEquals(expected.toDopeQuery(manager), actual.toDopeQuery(manager))
270+ }
271+
272+ @Test
273+ fun `should support order by function with then order by with orderExpression` () {
274+ val stringField = someStringField()
275+ val parentClause = someSelectClause()
276+ val orderType = ASC
277+ val orderExpression = OrderExpression (someNumberField())
278+ val expected = SelectOrderByClause (OrderExpression (stringField, orderType), orderExpression, parentClause = parentClause)
279+
280+ val actual = parentClause.orderBy(stringField, orderType).thenOrderBy(orderExpression)
281+
282+ assertEquals(expected.toDopeQuery(manager), actual.toDopeQuery(manager))
283+ }
284+
248285 @Test
249286 fun `should support order by function with then order by` () {
250287 val stringField = someStringField()
0 commit comments