aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests/Helpers/ResponseAssertions.cs
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-11-20 20:11:49 +0800
committerGitHub <noreply@github.com>2019-11-20 20:11:49 +0800
commitd5ef961861304f6bf5f4e3dd8119a81f12c0754a (patch)
treefb40d254bcec2946ce7c080089c76a342d3472b0 /Timeline.Tests/Helpers/ResponseAssertions.cs
parentae0fe2a03e04a6d170ac5f05039afe2a9407f255 (diff)
parentc74d95b029caaf4f69977179823ebefb6f88029a (diff)
downloadtimeline-d5ef961861304f6bf5f4e3dd8119a81f12c0754a.tar.gz
timeline-d5ef961861304f6bf5f4e3dd8119a81f12c0754a.tar.bz2
timeline-d5ef961861304f6bf5f4e3dd8119a81f12c0754a.zip
Merge pull request #55 from crupest/format
Fix some format problems.
Diffstat (limited to 'Timeline.Tests/Helpers/ResponseAssertions.cs')
-rw-r--r--Timeline.Tests/Helpers/ResponseAssertions.cs25
1 files changed, 22 insertions, 3 deletions
diff --git a/Timeline.Tests/Helpers/ResponseAssertions.cs b/Timeline.Tests/Helpers/ResponseAssertions.cs
index 6d764c68..301ceef6 100644
--- a/Timeline.Tests/Helpers/ResponseAssertions.cs
+++ b/Timeline.Tests/Helpers/ResponseAssertions.cs
@@ -2,11 +2,13 @@
using FluentAssertions.Execution;
using FluentAssertions.Formatting;
using FluentAssertions.Primitives;
-using Newtonsoft.Json;
using System;
using System.Net;
using System.Net.Http;
using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using Timeline.Models.Converters;
using Timeline.Models.Http;
namespace Timeline.Tests.Helpers
@@ -88,8 +90,25 @@ namespace Timeline.Tests.Helpers
return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
}
- var result = JsonConvert.DeserializeObject<T>(body); // TODO! catch and throw on bad format
- return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, result);
+
+ try
+ {
+ var options = new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase
+ };
+ options.Converters.Add(new JsonStringEnumConverter());
+ options.Converters.Add(new JsonDateTimeConverter());
+
+ var result = JsonSerializer.Deserialize<T>(body, options);
+
+ return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, result);
+ }
+ catch (JsonException e)
+ {
+ a.FailWith("Expected response body of {context:HttpResponseMessage} to be json string{reason}, but failed to deserialize it. Exception is {0}.", e);
+ return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
+ }
}
}