@@ -144,6 +144,88 @@ public void InvalidDateTimeConvertibleToString()
144
144
}
145
145
#endif
146
146
147
+ [ Fact ]
148
+ public void CompareInvalidObject ( )
149
+ {
150
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
151
+ #if BASELINE
152
+ Assert . Throws < InvalidCastException > ( ( ) => left . CompareTo ( new object ( ) ) ) ;
153
+ #else
154
+ Assert . Throws < ArgumentException > ( ( ) => left . CompareTo ( new object ( ) ) ) ;
155
+ #endif
156
+ }
157
+
158
+ [ Fact ]
159
+ public void CompareYear ( )
160
+ {
161
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
162
+ IComparable right = new MySqlDateTime ( 2001 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
163
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
164
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
165
+ }
166
+
167
+ [ Fact ]
168
+ public void CompareMonth ( )
169
+ {
170
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
171
+ IComparable right = new MySqlDateTime ( 2000 , 2 , 1 , 1 , 1 , 1 , 1 ) ;
172
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
173
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
174
+ }
175
+
176
+ [ Fact ]
177
+ public void CompareDay ( )
178
+ {
179
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
180
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 2 , 1 , 1 , 1 , 1 ) ;
181
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
182
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
183
+ }
184
+
185
+ [ Fact ]
186
+ public void CompareHour ( )
187
+ {
188
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
189
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 1 , 2 , 1 , 1 , 1 ) ;
190
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
191
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
192
+ }
193
+
194
+ [ Fact ]
195
+ public void CompareMinute ( )
196
+ {
197
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
198
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 2 , 1 , 1 ) ;
199
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
200
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
201
+ }
202
+
203
+ [ Fact ]
204
+ public void CompareSecond ( )
205
+ {
206
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
207
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 2 , 1 ) ;
208
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
209
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
210
+ }
211
+
212
+ [ Fact ]
213
+ public void CompareMicrosecond ( )
214
+ {
215
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
216
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 2 ) ;
217
+ Assert . True ( left . CompareTo ( right ) < 0 ) ;
218
+ Assert . True ( right . CompareTo ( left ) > 0 ) ;
219
+ }
220
+
221
+ [ Fact ]
222
+ public void CompareEqual ( )
223
+ {
224
+ IComparable left = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
225
+ IComparable right = new MySqlDateTime ( 2000 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
226
+ Assert . Equal ( 0 , left . CompareTo ( right ) ) ;
227
+ }
228
+
147
229
static readonly MySqlDateTime s_mySqlDateTime = new ( 2018 , 6 , 9 , 12 , 34 , 56 , 123456 ) ;
148
230
static readonly DateTime s_dateTime = new DateTime ( 2018 , 6 , 9 , 12 , 34 , 56 , 123 ) . AddTicks ( 4560 ) ;
149
231
}
0 commit comments