@@ -15,68 +15,73 @@ public OrderByTests(DialectContext context) : base(context) {}
1515 [ Test ]
1616 public void Can_order_by_random ( )
1717 {
18- using ( var db = OpenDbConnection ( ) )
19- {
20- db . DropAndCreateTable < LetterFrequency > ( ) ;
18+ using var db = OpenDbConnection ( ) ;
19+ db . DropAndCreateTable < LetterFrequency > ( ) ;
2120
22- 10 . Times ( i => db . Insert ( new LetterFrequency { Letter = ( 'A' + i ) . ToString ( ) } ) ) ;
21+ 10 . Times ( i => db . Insert ( new LetterFrequency { Letter = ( 'A' + i ) . ToString ( ) } ) ) ;
2322
24- var rowIds1 = db . Select ( db . From < LetterFrequency > ( ) . OrderBy ( x => x . Id ) ) . Map ( x => x . Id ) ;
25- var rowIds2 = db . Select ( db . From < LetterFrequency > ( ) . OrderBy ( x => x . Id ) ) . Map ( x => x . Id ) ;
23+ var rowIds1 = db . Select ( db . From < LetterFrequency > ( ) . OrderBy ( x => x . Id ) ) . Map ( x => x . Id ) ;
24+ var rowIds2 = db . Select ( db . From < LetterFrequency > ( ) . OrderBy ( x => x . Id ) ) . Map ( x => x . Id ) ;
2625
27- Assert . That ( rowIds1 . SequenceEqual ( rowIds2 ) ) ;
26+ Assert . That ( rowIds1 . SequenceEqual ( rowIds2 ) ) ;
2827
29- rowIds1 = db . Select ( db . From < LetterFrequency > ( ) . OrderByRandom ( ) ) . Map ( x => x . Id ) ;
30- rowIds2 = db . Select ( db . From < LetterFrequency > ( ) . OrderByRandom ( ) ) . Map ( x => x . Id ) ;
28+ rowIds1 = db . Select ( db . From < LetterFrequency > ( ) . OrderByRandom ( ) ) . Map ( x => x . Id ) ;
29+ rowIds2 = db . Select ( db . From < LetterFrequency > ( ) . OrderByRandom ( ) ) . Map ( x => x . Id ) ;
3130
32- Assert . That ( ! rowIds1 . SequenceEqual ( rowIds2 ) ) ;
33- }
31+ Assert . That ( ! rowIds1 . SequenceEqual ( rowIds2 ) ) ;
3432 }
3533
3634 [ Test ]
3735 public void Can_OrderBy_and_ThenBy ( )
3836 {
39- using ( var db = OpenDbConnection ( ) )
40- {
41- db . DropAndCreateTable < LetterFrequency > ( ) ;
37+ using var db = OpenDbConnection ( ) ;
38+ db . DropAndCreateTable < LetterFrequency > ( ) ;
4239
43- db . Insert ( new LetterFrequency { Letter = "C" } ) ;
44- db . Insert ( new LetterFrequency { Letter = "C" } ) ;
45- db . Insert ( new LetterFrequency { Letter = "B" } ) ;
46- db . Insert ( new LetterFrequency { Letter = "A" } ) ;
40+ db . Insert ( new LetterFrequency { Letter = "C" } ) ;
41+ db . Insert ( new LetterFrequency { Letter = "C" } ) ;
42+ db . Insert ( new LetterFrequency { Letter = "B" } ) ;
43+ db . Insert ( new LetterFrequency { Letter = "A" } ) ;
4744
48- var q = db . From < LetterFrequency > ( ) ;
49- q . OrderBy ( nameof ( LetterFrequency . Letter ) )
50- . ThenBy ( nameof ( LetterFrequency . Id ) ) ;
45+ var q = db . From < LetterFrequency > ( ) ;
46+ q . OrderBy ( nameof ( LetterFrequency . Letter ) )
47+ . ThenBy ( nameof ( LetterFrequency . Id ) ) ;
5148
52- var tracks = db . Select ( q ) ;
49+ var tracks = db . Select ( q ) ;
5350
54- Assert . That ( tracks . First ( ) . Letter , Is . EqualTo ( "A" ) ) ;
55- Assert . That ( tracks . Last ( ) . Letter , Is . EqualTo ( "C" ) ) ;
56- }
51+ Assert . That ( tracks . First ( ) . Letter , Is . EqualTo ( "A" ) ) ;
52+ Assert . That ( tracks . Last ( ) . Letter , Is . EqualTo ( "C" ) ) ;
5753 }
5854
5955 [ Test ]
6056 public void Can_OrderBy_multi_table_expression ( )
6157 {
62- using ( var db = OpenDbConnection ( ) )
63- {
64- db . DropAndCreateTable < LetterFrequency > ( ) ;
65- db . DropAndCreateTable < LetterWeighting > ( ) ;
66-
67- var letters = "A,B,C,D,E" . Split ( ',' ) ;
68- var i = 0 ;
69- letters . Each ( letter => {
70- var id = db . Insert ( new LetterFrequency { Letter = letter } , selectIdentity : true ) ;
71- db . Insert ( new LetterWeighting { LetterFrequencyId = id , Weighting = ++ i * 10 } ) ;
72- } ) ;
73-
74- var q = db . From < LetterFrequency > ( )
75- . Join < LetterWeighting > ( )
76- . OrderBy < LetterFrequency , LetterWeighting > ( ( f , w ) => f . Id > w . Weighting ? f . Id : w . Weighting ) ;
77-
78- var results = db . Select ( q ) ;
79- }
58+ using var db = OpenDbConnection ( ) ;
59+ db . DropAndCreateTable < LetterFrequency > ( ) ;
60+ db . DropAndCreateTable < LetterWeighting > ( ) ;
61+
62+ var letters = "A,B,C,D,E" . Split ( ',' ) ;
63+ var i = 0 ;
64+ letters . Each ( letter => {
65+ var id = db . Insert ( new LetterFrequency { Letter = letter } , selectIdentity : true ) ;
66+ db . Insert ( new LetterWeighting { LetterFrequencyId = id , Weighting = ++ i * 10 } ) ;
67+ } ) ;
68+
69+ var q = db . From < LetterFrequency > ( )
70+ . Join < LetterWeighting > ( )
71+ . OrderBy < LetterFrequency , LetterWeighting > ( ( f , w ) => f . Id > w . Weighting ? f . Id : w . Weighting ) ;
72+
73+ var results = db . Select ( q ) ;
74+ }
75+
76+ [ Test ]
77+ public void Can_OrderByFields ( )
78+ {
79+ using var db = OpenDbConnection ( ) ;
80+ var d = db . GetDialectProvider ( ) ;
81+ Assert . That ( OrmLiteUtils . OrderByFields ( d , "a" ) . NormalizeQuotes ( ) , Is . EqualTo ( "'a'" ) ) ;
82+ Assert . That ( OrmLiteUtils . OrderByFields ( d , "a,b" ) . NormalizeQuotes ( ) , Is . EqualTo ( "'a', 'b'" ) ) ;
83+ Assert . That ( OrmLiteUtils . OrderByFields ( d , "-a,b" ) . NormalizeQuotes ( ) , Is . EqualTo ( "'a' desc, 'b'" ) ) ;
84+ Assert . That ( OrmLiteUtils . OrderByFields ( d , "a,-b" ) . NormalizeQuotes ( ) , Is . EqualTo ( "'a', 'b' desc" ) ) ;
8085 }
8186 }
8287}
0 commit comments