@@ -48,6 +48,60 @@ public void Can_Build_Filters()
4848 Assert . Equal ( "value" , querySet . Filters . Single ( f => f . Key == "Key" ) . Value ) ;
4949 }
5050
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+
51105 [ Fact ]
52106 public void Can_Disable_Filters ( )
53107 {
0 commit comments