-
Notifications
You must be signed in to change notification settings - Fork 292
Expand file tree
/
Copy pathDataSerializationHelperTests.cs
More file actions
113 lines (85 loc) · 4.07 KB
/
DataSerializationHelperTests.cs
File metadata and controls
113 lines (85 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using AwesomeAssertions;
using Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers;
using TestFramework.ForTestingMSTest;
namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.UnitTests;
public class DataSerializationHelperTests : TestContainer
{
public void DataSerializerShouldRoundTripDateTimeOffset()
{
var source = new DateTimeOffset(628381323438126060, TimeSpan.FromHours(-8));
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<DateTimeOffset>();
actual[0]!.Equals(source).Should().BeTrue();
}
public void DataSerializerShouldRoundTripDateTime()
{
var source = new DateTime(628381323438126060);
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<DateTime>();
actual[0]!.Equals(source).Should().BeTrue();
((DateTime)actual[0]!).Kind.Equals(source.Kind).Should().BeTrue();
}
public void DataSerializerShouldRoundTripDateTimeOfKindLocal()
{
var source = new DateTime(628381323438126060, DateTimeKind.Local);
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<DateTime>();
actual[0]!.Equals(source).Should().BeTrue();
((DateTime)actual[0]!).Kind.Equals(source.Kind).Should().BeTrue();
}
public void DataSerializerShouldRoundTripDateTimeOfKindUtc()
{
var source = new DateTime(628381323438126060, DateTimeKind.Utc);
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<DateTime>();
actual[0]!.Equals(source).Should().BeTrue();
((DateTime)actual[0]!).Kind.Equals(source.Kind).Should().BeTrue();
}
#if NET7_0_OR_GREATER
public void DataSerializerShouldRoundTripDateOnly()
{
var source = new DateOnly(1999, 11, 3);
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<DateOnly>();
actual[0]!.Equals(source).Should().BeTrue();
}
public void DataSerializerShouldRoundTripTimeOnly()
{
var source = new TimeOnly(hour: 14, minute: 50, second: 13, millisecond: 15);
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([source]));
actual!.Length.Should().Be(1);
actual[0].Should().BeOfType<TimeOnly>();
actual[0]!.Equals(source).Should().BeTrue();
}
#endif
public void DataSerializerShouldRoundTripSystemType()
{
Type[] source = [typeof(Console), typeof(DataSerializationHelperTests), typeof(DataSerializationHelper)];
foreach (Type type in source)
{
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize([type]));
actual!.Length.Should().Be(1);
actual[0].Should().BeAssignableTo<Type>();
((Type)actual[0]!).Should().Be(type);
}
}
public void DataSerializerShouldRoundTripMixedPayloadIncludingSystemType()
{
object?[] source = [typeof(string), 42, "hello", null, new DateTime(638450000000000000)];
object?[]? actual = DataSerializationHelper.Deserialize(DataSerializationHelper.Serialize(source));
actual.Should().NotBeNull();
actual!.Length.Should().Be(source.Length);
actual[0].Should().Be(typeof(string));
actual[1].Should().Be(42);
actual[2].Should().Be("hello");
actual[3].Should().BeNull();
actual[4].Should().Be(source[4]);
}
}