Skip to content

Commit 8abeb2c

Browse files
author
Jamie Rushton
committed
Adjusted tests to reflection the allowance of NULL and default values
1 parent 821ce6d commit 8abeb2c

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

test/Exceptionless.Tests/Serializer/SerializerTests.cs

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@ protected virtual IJsonSerializer GetSerializer() {
1515
return new DefaultJsonSerializer();
1616
}
1717

18+
private string[] _sampleModelExcludes = { nameof(SampleModel.Collection), nameof(SampleModel.Dictionary), nameof(SampleModel.Bool), nameof(SampleModel.Number), nameof(SampleModel.Nested), "Date*" };
19+
private string[] _eventModelExcludes = { nameof(Event.Type), nameof(Event.Source), "Date", nameof(Event.Geo), nameof(Event.Count), nameof(Event.ReferenceId), nameof(Event.Tags), nameof(Event.Value) };
20+
1821
[Fact]
1922
public void CanSerialize() {
2023
var data = new SampleModel {
2124
Date = DateTime.Now,
2225
Message = "Testing"
2326
};
2427
IJsonSerializer serializer = GetSerializer();
25-
string json = serializer.Serialize(data, new[] { "Date" });
28+
string json = serializer.Serialize(data, _sampleModelExcludes);
2629
Assert.Equal(@"{""message"":""Testing""}", json);
2730
}
2831

@@ -35,7 +38,7 @@ public void CanSerializeEvent() {
3538
ev.Data["FirstName"] = "Blake";
3639

3740
IJsonSerializer serializer = GetSerializer();
38-
string json = serializer.Serialize(ev, new[] { "Date" });
41+
string json = serializer.Serialize(ev, _eventModelExcludes);
3942
Assert.Equal(@"{""message"":""Testing"",""data"":{""FirstName"":""Blake""}}", json);
4043
}
4144

@@ -47,7 +50,7 @@ public void CanExcludeProperties() {
4750
Message = "Testing"
4851
};
4952
IJsonSerializer serializer = GetSerializer();
50-
string json = serializer.Serialize(data, new[] { "Date" });
53+
string json = serializer.Serialize(data, _sampleModelExcludes);
5154
Assert.Equal(@"{""message"":""Testing""}", json);
5255
}
5356

@@ -61,9 +64,22 @@ public void CanExcludeNestedProperties() {
6164
Message = "Nested"
6265
}
6366
};
67+
6468
IJsonSerializer serializer = GetSerializer();
65-
string json = serializer.Serialize(data, new[] { "Date" });
66-
Assert.Equal(@"{""message"":""Testing"",""nested"":{""message"":""Nested""}}", json);
69+
string json = serializer.Serialize(data, new[] { nameof(SampleModel.Collection), nameof(SampleModel.Dictionary), nameof(SampleModel.Bool), nameof(SampleModel.Number), "Date*" });
70+
Assert.Equal(@"{""message"":""Testing"",""nested"":{""message"":""Nested"",""nested"":null}}", json);
71+
}
72+
73+
[Fact]
74+
public void ShouldIncludeNullObjects() {
75+
var data = new SampleModel {
76+
Date = DateTime.Now,
77+
Message = "Testing",
78+
Nested = null
79+
};
80+
IJsonSerializer serializer = GetSerializer();
81+
string json = serializer.Serialize(data, new[] { nameof(SampleModel.Collection), nameof(SampleModel.Dictionary), nameof(SampleModel.Bool), nameof(SampleModel.Number), "Date*" });
82+
Assert.Equal(@"{""message"":""Testing"",""nested"":null}", json);
6783
}
6884

6985
[Fact]
@@ -87,14 +103,14 @@ public void CanExcludeMultiwordProperties() {
87103
}
88104

89105
[Fact]
90-
public void WillIgnoreDefaultValues() {
106+
public void ShouldIncludeDefaultValues() {
91107
var data = new SampleModel {
92108
Number = 0,
93109
Bool = false
94110
};
95111
IJsonSerializer serializer = GetSerializer();
96-
string json = serializer.Serialize(data);
97-
Assert.Equal(@"{}", json);
112+
string json = serializer.Serialize(data, new[] { nameof(SampleModel.Collection), nameof(SampleModel.Dictionary), nameof(SampleModel.Nested), "Date*" });
113+
Assert.Equal(@"{""number"":0,""bool"":false,""message"":null}", json);
98114
var model = serializer.Deserialize<SampleModel>(json);
99115
Assert.Equal(data.Number, model.Number);
100116
Assert.Equal(data.Bool, model.Bool);
@@ -112,7 +128,7 @@ public void CanSetMaxDepth() {
112128
}
113129
};
114130
IJsonSerializer serializer = GetSerializer();
115-
string json = serializer.Serialize(data, maxDepth: 2);
131+
string json = serializer.Serialize(data, new[] { nameof(SampleModel.Bool), nameof(SampleModel.Number), nameof(SampleModel.Collection), nameof(SampleModel.Dictionary), "Date*" }, maxDepth: 2);
116132
Assert.Equal(@"{""message"":""Level 1"",""nested"":{""message"":""Level 2""}}", json);
117133
}
118134

@@ -124,8 +140,8 @@ public void WillIgnoreEmptyCollections() {
124140
Collection = new Collection<string>()
125141
};
126142
IJsonSerializer serializer = GetSerializer();
127-
string json = serializer.Serialize(data, new[] { "Date" });
128-
Assert.Equal(@"{""message"":""Testing""}", json);
143+
string json = serializer.Serialize(data, new[] { nameof(SampleModel.Nested), nameof(SampleModel.Bool), nameof(SampleModel.Number), "Date*" });
144+
Assert.Equal(@"{""message"":""Testing"",""dictionary"":null}", json);
129145
}
130146

131147
// TODO: Ability to deserialize objects without underscores

0 commit comments

Comments
 (0)