@@ -48,6 +48,60 @@ public void Can_Build_Filters()
48
48
Assert . Equal ( "value" , querySet . Filters . Single ( f => f . Key == "Key" ) . Value ) ;
49
49
}
50
50
51
+ [ Fact ]
52
+ public void Filters_Properly_Parses_DateTime_With_Operation ( )
53
+ {
54
+ // arrange
55
+ const string dt = "2017-08-15T22:43:47.0156350-05:00" ;
56
+ var query = new Dictionary < string , StringValues > {
57
+ { "filter[key]" , new StringValues ( "le:" + dt ) }
58
+ } ;
59
+
60
+ _queryCollectionMock
61
+ . Setup ( m => m . GetEnumerator ( ) )
62
+ . Returns ( query . GetEnumerator ( ) ) ;
63
+
64
+ _jsonApiContextMock
65
+ . Setup ( m => m . GetControllerAttribute < DisableQueryAttribute > ( ) )
66
+ . Returns ( new DisableQueryAttribute ( QueryParams . None ) ) ;
67
+
68
+ // act -- ctor calls BuildQuerySet()
69
+ var querySet = new QuerySet (
70
+ _jsonApiContextMock . Object ,
71
+ _queryCollectionMock . Object ) ;
72
+
73
+ // assert
74
+ Assert . Equal ( dt , querySet . Filters . Single ( f => f . Key == "Key" ) . Value ) ;
75
+ Assert . Equal ( "le" , querySet . Filters . Single ( f => f . Key == "Key" ) . Operation ) ;
76
+ }
77
+
78
+ [ Fact ]
79
+ public void Filters_Properly_Parses_DateTime_Without_Operation ( )
80
+ {
81
+ // arrange
82
+ const string dt = "2017-08-15T22:43:47.0156350-05:00" ;
83
+ var query = new Dictionary < string , StringValues > {
84
+ { "filter[key]" , new StringValues ( dt ) }
85
+ } ;
86
+
87
+ _queryCollectionMock
88
+ . Setup ( m => m . GetEnumerator ( ) )
89
+ . Returns ( query . GetEnumerator ( ) ) ;
90
+
91
+ _jsonApiContextMock
92
+ . Setup ( m => m . GetControllerAttribute < DisableQueryAttribute > ( ) )
93
+ . Returns ( new DisableQueryAttribute ( QueryParams . None ) ) ;
94
+
95
+ // act -- ctor calls BuildQuerySet()
96
+ var querySet = new QuerySet (
97
+ _jsonApiContextMock . Object ,
98
+ _queryCollectionMock . Object ) ;
99
+
100
+ // assert
101
+ Assert . Equal ( dt , querySet . Filters . Single ( f => f . Key == "Key" ) . Value ) ;
102
+ Assert . Equal ( string . Empty , querySet . Filters . Single ( f => f . Key == "Key" ) . Operation ) ;
103
+ }
104
+
51
105
[ Fact ]
52
106
public void Can_Disable_Filters ( )
53
107
{
0 commit comments