11using System . Linq . Dynamic . Core . Tests . Helpers . Models ;
2+ using FluentAssertions ;
23using Xunit ;
34
4- namespace System . Linq . Dynamic . Core . Tests
5+ namespace System . Linq . Dynamic . Core . Tests ;
6+
7+ public partial class QueryableTests
58{
6- public partial class QueryableTests
9+ [ Fact ]
10+ public void Max ( )
11+ {
12+ // Arrange
13+ var incomes = User . GenerateSampleModels ( 10 ) . Select ( u => u . Income ) . ToArray ( ) ;
14+
15+ // Act
16+ var expected = incomes . Max ( ) ;
17+ var actual = incomes . AsQueryable ( ) . Max ( ) ;
18+
19+ // Assert
20+ Assert . Equal ( expected , actual ) ;
21+ }
22+
23+ [ Fact ]
24+ public void Max_Selector ( )
725 {
8- [ Fact ]
9- public void Max ( )
10- {
11- // Arrange
12- var incomes = User . GenerateSampleModels ( 100 ) . Select ( u => u . Income ) ;
13-
14- // Act
15- var expected = incomes . Max ( ) ;
16- var actual = incomes . AsQueryable ( ) . Max ( ) ;
17-
18- // Assert
19- Assert . Equal ( expected , actual ) ;
20- }
21-
22- [ Fact ]
23- public void Max_Selector ( )
24- {
25- // Arrange
26- var users = User . GenerateSampleModels ( 100 ) ;
27-
28- // Act
29- var expected = users . Max ( u => u . Income ) ;
30- var result = users . AsQueryable ( ) . Max ( "Income" ) ;
31-
32- // Assert
33- Assert . Equal ( expected , result ) ;
34- }
26+ // Arrange
27+ var users = User . GenerateSampleModels ( 10 ) ;
28+
29+ // Act
30+ var expected = users . Max ( u => u . Income ) ;
31+ var result = users . AsQueryable ( ) . Max ( "Income" ) ;
32+
33+ // Assert
34+ Assert . Equal ( expected , result ) ;
35+ }
36+
37+ [ Fact ]
38+ public void Max_Where_On_Int ( )
39+ {
40+ // Arrange
41+ var users = User . GenerateSampleModels ( 10 ) ;
42+
43+ // Act
44+ var typed = users
45+ . Where ( u => users . Max ( m => m . Income ) == u . Income )
46+ . ToList ( ) ;
47+ var dynamic = users . AsQueryable ( )
48+ . Where ( "@0.Max(Income) == Income" , users )
49+ . ToList ( ) ;
50+
51+ // Assert
52+ dynamic . Should ( ) . BeEquivalentTo ( typed ) ;
53+ }
54+
55+ [ Fact ]
56+ public void Max_Where_On_DateTime ( )
57+ {
58+ // Arrange
59+ var users = User . GenerateSampleModels ( 10 ) ;
60+
61+ // Act
62+ var typed = users
63+ . Where ( u => users . Max ( m => m . BirthDate ) == u . BirthDate )
64+ . ToList ( ) ;
65+ var dynamic = users . AsQueryable ( )
66+ . Where ( "@0.Max(BirthDate) == BirthDate" , users )
67+ . ToList ( ) ;
68+
69+ // Assert
70+ dynamic . Should ( ) . BeEquivalentTo ( typed ) ;
71+ }
72+
73+ [ Fact ]
74+ public void Max_Where_On_NullableDateTime ( )
75+ {
76+ // Arrange
77+ var users = User . GenerateSampleModels ( 10 ) ;
78+
79+ // Act
80+ var typed = users
81+ . Where ( u => users . Max ( m => m . EndDate ) == u . EndDate )
82+ . ToList ( ) ;
83+ var dynamic = users . AsQueryable ( )
84+ . Where ( "@0.Max(EndDate) == EndDate" , users )
85+ . ToList ( ) ;
86+
87+ // Assert
88+ dynamic . Should ( ) . BeEquivalentTo ( typed ) ;
3589 }
36- }
90+ }
0 commit comments