@@ -65,18 +65,54 @@ public void SelectShouldReturnSubsetOfColumns()
6565 }
6666
6767 [ Test ]
68- public void SelectWithAggregateShouldReturnAggregates ( )
68+ public void SelectWithAverageShouldReturnAverage ( )
69+ {
70+ var db = CreateAggregateTestDb ( ) ;
71+ var records = db . Test . All ( ) . Select ( db . Test . Name , db . Test . Age . Average ( ) . As ( "AverageAge" ) ) . ToList ( ) ;
72+ Assert . AreEqual ( 2 , records . Count ) ;
73+ Assert . AreEqual ( 25 , records [ 0 ] . AverageAge ) ;
74+ Assert . AreEqual ( 45 , records [ 1 ] . AverageAge ) ;
75+ }
76+
77+ [ Test ]
78+ public void SelectWithSumShouldReturnSum ( )
79+ {
80+ var db = CreateAggregateTestDb ( ) ;
81+ var records = db . Test . All ( ) . Select ( db . Test . Name , db . Test . Age . Sum ( ) . As ( "SumAge" ) ) . ToList ( ) ;
82+ Assert . AreEqual ( 2 , records . Count ) ;
83+ Assert . AreEqual ( 50 , records [ 0 ] . SumAge ) ;
84+ Assert . AreEqual ( 90 , records [ 1 ] . SumAge ) ;
85+ }
86+
87+ [ Test ]
88+ public void SelectWithMinShouldReturnMin ( )
89+ {
90+ var db = CreateAggregateTestDb ( ) ;
91+ var records = db . Test . All ( ) . Select ( db . Test . Name , db . Test . Age . Min ( ) . As ( "MinAge" ) ) . ToList ( ) ;
92+ Assert . AreEqual ( 2 , records . Count ) ;
93+ Assert . AreEqual ( 20 , records [ 0 ] . MinAge ) ;
94+ Assert . AreEqual ( 40 , records [ 1 ] . MinAge ) ;
95+ }
96+
97+ [ Test ]
98+ public void SelectWithMaxShouldReturnMax ( )
99+ {
100+ var db = CreateAggregateTestDb ( ) ;
101+ var records = db . Test . All ( ) . Select ( db . Test . Name , db . Test . Age . Max ( ) . As ( "MaxAge" ) ) . ToList ( ) ;
102+ Assert . AreEqual ( 2 , records . Count ) ;
103+ Assert . AreEqual ( 30 , records [ 0 ] . MaxAge ) ;
104+ Assert . AreEqual ( 50 , records [ 1 ] . MaxAge ) ;
105+ }
106+
107+ private static dynamic CreateAggregateTestDb ( )
69108 {
70109 Database . UseMockAdapter ( new InMemoryAdapter ( ) ) ;
71110 var db = Database . Open ( ) ;
72111 db . Test . Insert ( Id : 1 , Name : "Alice" , Age : 20 ) ;
73112 db . Test . Insert ( Id : 2 , Name : "Alice" , Age : 30 ) ;
74113 db . Test . Insert ( Id : 3 , Name : "Bob" , Age : 40 ) ;
75114 db . Test . Insert ( Id : 4 , Name : "Bob" , Age : 50 ) ;
76- var records = db . Test . All ( ) . Select ( db . Test . Name , db . Test . Age . Average ( ) . As ( "AverageAge" ) ) . ToList ( ) ;
77- Assert . AreEqual ( 2 , records . Count ) ;
78- Assert . AreEqual ( 25 , records [ 0 ] . AverageAge ) ;
79- Assert . AreEqual ( 45 , records [ 1 ] . AverageAge ) ;
115+ return db ;
80116 }
81117
82118 [ Test ]
0 commit comments