Skip to content

Commit cb30b9c

Browse files
Copilotjeffhandley
andcommitted
Improve test assertions and add boundary test cases
Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
1 parent f876d89 commit cb30b9c

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/libraries/System.Private.Xml/tests/XmlConvert/XmlConvertEndOfDayTests.cs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,26 @@ public class XmlConvertEndOfDayTests
2020
[InlineData("2007-04-05T24:00:00Z", XmlDateTimeSerializationMode.RoundtripKind, 2007, 4, 6, 0, 0, 0)]
2121
[InlineData("2007-04-05T24:00:00", XmlDateTimeSerializationMode.Utc, 2007, 4, 6, 0, 0, 0)]
2222
[InlineData("2007-04-05T24:00:00", XmlDateTimeSerializationMode.Unspecified, 2007, 4, 6, 0, 0, 0)]
23+
[InlineData("0001-01-01T24:00:00", XmlDateTimeSerializationMode.RoundtripKind, 1, 1, 2, 0, 0, 0)] // earliest possible date
2324
public static void ToDateTime_EndOfDay_Valid(string input, XmlDateTimeSerializationMode mode, int year, int month, int day, int hour, int minute, int second)
2425
{
2526
DateTime result = XmlConvert.ToDateTime(input, mode);
26-
Assert.Equal(new DateTime(year, month, day, hour, minute, second), new DateTime(result.Year, result.Month, result.Day, result.Hour, result.Minute, result.Second));
27+
Assert.Equal(year, result.Year);
28+
Assert.Equal(month, result.Month);
29+
Assert.Equal(day, result.Day);
30+
Assert.Equal(hour, result.Hour);
31+
Assert.Equal(minute, result.Minute);
32+
Assert.Equal(second, result.Second);
33+
}
34+
35+
[Fact]
36+
public static void ToDateTime_EndOfDay_Local_Valid()
37+
{
38+
DateTime result = XmlConvert.ToDateTime("2007-04-05T24:00:00", XmlDateTimeSerializationMode.Local);
39+
Assert.Equal(DateTimeKind.Local, result.Kind);
40+
Assert.Equal(0, result.Hour);
41+
Assert.Equal(0, result.Minute);
42+
Assert.Equal(0, result.Second);
2743
}
2844

2945
[Theory]
@@ -59,6 +75,7 @@ public static void ToDateTime_EndOfDay_Invalid(string input)
5975
[InlineData("2000-12-31T24:00:00", 2001, 1, 1, 0, 0, 0)]
6076
[InlineData("2000-02-28T24:00:00", 2000, 2, 29, 0, 0, 0)] // leap year
6177
[InlineData("2001-02-28T24:00:00", 2001, 3, 1, 0, 0, 0)] // non-leap year
78+
[InlineData("0001-01-01T24:00:00", 1, 1, 2, 0, 0, 0)] // earliest possible date
6279
public static void ToDateTimeOffset_EndOfDay_Valid(string input, int year, int month, int day, int hour, int minute, int second)
6380
{
6481
DateTimeOffset result = XmlConvert.ToDateTimeOffset(input);
@@ -230,7 +247,12 @@ public static void XmlSchemaValidation_DateTime_EndOfDay_NonZeroMinute_Invalid()
230247
public static void ToDateTime_ExistingHours_StillWork(string input, int year, int month, int day, int hour, int minute, int second)
231248
{
232249
DateTime result = XmlConvert.ToDateTime(input, XmlDateTimeSerializationMode.RoundtripKind);
233-
Assert.Equal(new DateTime(year, month, day, hour, minute, second), new DateTime(result.Year, result.Month, result.Day, result.Hour, result.Minute, result.Second));
250+
Assert.Equal(year, result.Year);
251+
Assert.Equal(month, result.Month);
252+
Assert.Equal(day, result.Day);
253+
Assert.Equal(hour, result.Hour);
254+
Assert.Equal(minute, result.Minute);
255+
Assert.Equal(second, result.Second);
234256
}
235257

236258
[Theory]

0 commit comments

Comments
 (0)