44import org .javawebstack .orm .query .Query ;
55import org .javawebstack .orm .test .exception .SectionIndexOutOfBoundException ;
66import org .javawebstack .orm .test .shared .models .Datatype ;
7+ import org .javawebstack .orm .test .shared .models .columnnames .OverwrittenColumnName ;
78import org .javawebstack .orm .test .shared .verification .QueryVerification ;
89import org .junit .jupiter .api .Test ;
9-
10- import javax .xml .crypto .Data ;
11-
1210import java .util .*;
13- import java .util .stream .Collectors ;
14-
1511import static org .javawebstack .orm .test .shared .setup .ModelSetup .setUpModel ;
1612import static org .junit .jupiter .api .Assertions .*;
1713
1814// This class tests the query generation for order by statements an MySQL
19- public class OrderByClauseTest {
15+ class OrderByClauseTest {
2016
2117 @ Test
2218 void testOneExistingColumnDefaultOrderBy () {
2319 Query <Datatype > query = setUpModel (Datatype .class ).query ()
24- .order ("wrapper_integer " );
20+ .order ("wrapperInteger " );
2521 new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`wrapper_integer`" );
2622 }
2723
2824 @ Test
2925 void testOneNonExistingColumnDefaultOrderBy () {
3026 Query <Datatype > query = setUpModel (Datatype .class ).query ()
31- .order ("does_not_exist" );
32- new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`does_not_exist`" );
27+ .order ("doesNotExist" );
28+
29+ // Not in snake case as it is not in the mapping
30+ new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`doesNotExist`" );
3331 }
3432
3533 @ Test
3634 void testOneExistingColumnASCOrderBy () {
3735 Query <Datatype > query = setUpModel (Datatype .class ).query ()
38- .order ("wrapper_integer " , false );
36+ .order ("wrapperInteger " , false );
3937 new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`wrapper_integer`" );
4038 }
4139
4240 @ Test
4341 void testOneNonExistingColumnASCOrderBy () {
4442 Query <Datatype > query = setUpModel (Datatype .class ).query ()
45- .order ("does_not_exist" , false );
46- new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`does_not_exist`" );
43+ .order ("doesNotExist" , false );
44+
45+ // Not in snake case as it is not in the mapping
46+ new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`doesNotExist`" );
4747 }
4848
4949 @ Test
5050 void testOneExistingColumnDESCOrderBy () {
5151 Query <Datatype > query = setUpModel (Datatype .class ).query ()
52- .order ("wrapper_integer " , true );
52+ .order ("wrapperInteger " , true );
5353 new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`wrapper_integer` DESC" );
5454 }
5555
5656 @ Test
5757 void testOneNonExistingColumnDESCOrderBy () {
5858 Query <Datatype > query = setUpModel (Datatype .class ).query ()
59- .order ("does_not_exist" , true );
60- new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`does_not_exist` DESC" );
59+ .order ("doesNotExist" , true );
60+ // Not in snake case as it is not in the mapping
61+ new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`doesNotExist` DESC" );
6162 }
6263
6364 @ Test
6465 void testMultipleOrderByClausesOfASCOrder () {
6566 Query <Datatype > query = setUpModel (Datatype .class ).query ()
66- .order ("wrapper_integer " )
67- .order ("primitive_integer " );
67+ .order ("wrapperInteger " )
68+ .order ("primitiveInteger " );
6869
6970 new QueryVerification (query )
7071 .assertSectionContains ("ORDER BY" , "`wrapper_integer`" )
@@ -74,8 +75,8 @@ void testMultipleOrderByClausesOfASCOrder() {
7475 @ Test
7576 void testMultipleOrderByClausesOfDESCOrder () {
7677 Query <Datatype > query = setUpModel (Datatype .class ).query ()
77- .order ("wrapper_integer " , true )
78- .order ("primitive_integer " , true );
78+ .order ("wrapperInteger " , true )
79+ .order ("primitiveInteger " , true );
7980
8081 new QueryVerification (query )
8182 .assertSectionContains ("ORDER BY" , "`wrapper_integer` DESC" )
@@ -85,8 +86,8 @@ void testMultipleOrderByClausesOfDESCOrder() {
8586 @ Test
8687 void testMultipleOrderByClausesOfMixedOrder () {
8788 Query <Datatype > query = setUpModel (Datatype .class ).query ()
88- .order ("wrapper_integer " , false )
89- .order ("primitive_integer " , true );
89+ .order ("wrapperInteger " , false )
90+ .order ("primitiveInteger " , true );
9091
9192 new QueryVerification (query )
9293 .assertSectionContains ("ORDER BY" , "`wrapper_integer`" )
@@ -96,8 +97,8 @@ void testMultipleOrderByClausesOfMixedOrder() {
9697 @ Test
9798 void testMultipleOrderByClausesOfMixedOrderReversed () {
9899 Query <Datatype > query = setUpModel (Datatype .class ).query ()
99- .order ("primitive_integer " , true )
100- .order ("wrapper_integer " , false );
100+ .order ("primitiveInteger " , true )
101+ .order ("wrapperInteger " , false );
101102
102103 new QueryVerification (query )
103104 .assertSectionContains ("ORDER BY" , "`primitive_integer` DESC" )
@@ -108,6 +109,7 @@ void testMultipleOrderByClausesOfMixedOrderReversed() {
108109 @ Test
109110 // This test is important because putting the order by statements in different order is relevant (they set priorities)
110111 void testMultipleOrderByClausesOfRandomOrderForCorrectOrder () throws SectionIndexOutOfBoundException {
112+ // This test does not use camel cases as input
111113 Query <Datatype > query = setUpModel (Datatype .class ).query ();
112114 ArrayList <String > columnNames = new ArrayList <>(Datatype .columnNames );
113115
@@ -121,7 +123,7 @@ void testMultipleOrderByClausesOfRandomOrderForCorrectOrder() throws SectionInde
121123
122124 String queryString = new QueryVerification (query ).getSection ("ORDER BY" );
123125 int lastIndex = 0 ;
124- int foundIndex = - 1 ;
126+ int foundIndex ;
125127 for (String nextInCallOrder : callOrder ) {
126128 foundIndex = queryString .indexOf ("`" + nextInCallOrder + "`" );
127129 if (foundIndex < lastIndex ) {
@@ -141,6 +143,13 @@ void testMultipleOrderByClausesOfRandomOrderForCorrectOrder() throws SectionInde
141143
142144 }
143145
146+ @ Test
147+ void testWillUseOverwrittenColumnName () {
148+ Query <OverwrittenColumnName > query = setUpModel (OverwrittenColumnName .class ).query ()
149+ .order ("dummyString" );
150+ new QueryVerification (query ).assertSectionEquals ("ORDER BY" , "`oVer_writtenColumn-name`" );
151+ }
152+
144153 /*
145154 * Error Cases
146155 */
@@ -149,8 +158,8 @@ void testMultipleOrderByClausesOfRandomOrderForCorrectOrder() throws SectionInde
149158 @ Test
150159 void testCannotCallOrderOnSameColumnTwice () {
151160 Query <Datatype > query = setUpModel (Datatype .class ).query ()
152- .order ("primitive_integer " , true );
161+ .order ("primitiveInteger " , true );
153162
154- assertThrows (ORMQueryException .class , () -> query .order ("primitive_integer " ));
163+ assertThrows (ORMQueryException .class , () -> query .order ("primitiveInteger " ));
155164 }
156165}
0 commit comments