Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit d744803

Browse files
committed
Merge pull request #2496 from khdang/fix_serialization_test_2287
Fix serialization test failure in Minsk timezone
2 parents 0e8ed6e + 35a7346 commit d744803

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/System.Runtime.Serialization.Json/tests/DataContractJsonSerializer.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,14 +1033,16 @@ public static void DCJS_EnumerableStruct()
10331033
[Fact]
10341034
public static void DCJS_EnumerableCollection()
10351035
{
1036-
var offsetMinutes = (int)TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes;
1037-
var timeZoneString = string.Format("{0:+;-}{1}", offsetMinutes, new TimeSpan(0, offsetMinutes, 0).ToString(@"hhmm"));
1036+
var dates = new DateTime[] {new DateTime(2000, 1, 1), new DateTime(2000, 1, 2), new DateTime(2000, 1, 3)};
10381037
var original = new EnumerableCollection();
1039-
original.Add(new DateTime(2000, 1, 1).AddMinutes(offsetMinutes));
1040-
original.Add(new DateTime(2000, 1, 2).AddMinutes(offsetMinutes));
1041-
original.Add(new DateTime(2000, 1, 3).AddMinutes(offsetMinutes));
1042-
var actual = SerializeAndDeserialize<EnumerableCollection>(original, string.Format("[\"\\/Date(946684800000{0})\\/\",\"\\/Date(946771200000{0})\\/\",\"\\/Date(946857600000{0})\\/\"]", timeZoneString));
1043-
1038+
var timeZoneStrings = new List<string>();
1039+
foreach (var date in dates)
1040+
{
1041+
var offsetMinutes = (int) TimeZoneInfo.Local.GetUtcOffset(date).TotalMinutes;
1042+
original.Add(date.AddMinutes(offsetMinutes));
1043+
timeZoneStrings.Add(string.Format("{0:+;-}{1}", offsetMinutes, new TimeSpan(0, offsetMinutes, 0).ToString(@"hhmm")));
1044+
}
1045+
var actual = SerializeAndDeserialize<EnumerableCollection>(original, string.Format("[\"\\/Date(946684800000{0})\\/\",\"\\/Date(946771200000{1})\\/\",\"\\/Date(946857600000{2})\\/\"]", timeZoneStrings.ToArray()));
10441046
Assert.Equal((IEnumerable<DateTime>)actual, (IEnumerable<DateTime>)original);
10451047
}
10461048

0 commit comments

Comments
 (0)