Skip to content

Commit 159e190

Browse files
committed
Add tests for IComparable implementation of MySqlDateTime.
1 parent fc21071 commit 159e190

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

tests/MySqlConnector.Tests/MySqlDateTimeTests.cs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,88 @@ public void InvalidDateTimeConvertibleToString()
144144
}
145145
#endif
146146

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+
147229
static readonly MySqlDateTime s_mySqlDateTime = new(2018, 6, 9, 12, 34, 56, 123456);
148230
static readonly DateTime s_dateTime = new DateTime(2018, 6, 9, 12, 34, 56, 123).AddTicks(4560);
149231
}

0 commit comments

Comments
 (0)