public void Can_Deserialize_Custom_ProblemDetails() { // given var problem = New.ProblemDetails.CustomProblemDetails(); var json = JsonProblemDetailsConverter.Serialize(problem); // when var actual = JsonProblemDetailsConverter.Deserialize <CustomProblemDetails>(json); // then actual.Should().BeEquivalentTo(problem); }
public void Can_Deserialize_ProblemDetails_With_Extensions() { // given var problem = New.ProblemDetails.ProblemDetailsWithExtensions(); var json = JsonProblemDetailsConverter.Serialize(problem); // when var actual = JsonProblemDetailsConverter.Deserialize(json); // then actual.Should().BeEquivalentTo(problem); }
public async Task <HttpResponseMessage> Of <T>(T problem) where T : Microsoft.AspNetCore.Mvc.ProblemDetails { var mockHttp = new MockHttpMessageHandler(); var content = JsonProblemDetailsConverter.Serialize(problem); mockHttp.When("https://whatever-url") .Respond(HttpStatusCode.BadRequest, HttpContentExtensions.ProblemDetailsMediaType, content); var request = new HttpRequestMessage(HttpMethod.Get, "https://whatever-url"); return(await mockHttp.ToHttpClient().SendAsync(request)); }
public void Can_Serialize_Custom_ProblemDetails() { // given var problem = New.ProblemDetails.CustomProblemDetails(); // when var actualJson = JsonProblemDetailsConverter.Serialize(problem); // then var expectedJson = $"{{\"stringField\":\"{problem.StringField}\",\"intField\":{problem.IntField},\"type\":\"{problem.Type}\"," + $"\"title\":\"{problem.Title}\",\"status\":{problem.Status},\"detail\":\"{problem.Detail}\"}}"; actualJson.Should().Be(expectedJson); }
public void Can_Serialize_ProblemDetails_With_Extensions() { // given var problem = New.ProblemDetails.ProblemDetailsWithExtensions(); // when var actualJson = JsonProblemDetailsConverter.Serialize(problem); // then var expectedJson = $"{{\"type\":\"{problem.Type}\",\"title\":\"{problem.Title}\",\"status\":{problem.Status}," + $"\"detail\":\"{problem.Detail}\",\"stringField\":\"{problem.Extensions["stringField"]}\"" + $",\"intField\":{problem.Extensions["intField"]}}}"; actualJson.Should().Be(expectedJson); }
public void Can_Serialize_ValidationProblemDetails() { // given var problem = New.ProblemDetails.ValidationProblemDetails(); // when var actualJson = JsonProblemDetailsConverter.Serialize(problem); // then var validationJson = $"{{\"Reference\":[\"{problem.Errors["Reference"][0]}\"],\"AccountNumber\":[\"{problem.Errors["AccountNumber"][0]}\"]}}"; var expectedJson = $"{{\"type\":\"{problem.Type}\",\"title\":\"{problem.Title}\",\"status\":{problem.Status}," + $"\"detail\":\"{problem.Detail}\",\"errors\":{validationJson}}}"; actualJson.Should().Be(expectedJson); }
public void Cannot_Fully_Deserialize_Custom_ProblemDetails_With_Extensions() { // given var problem = New.ProblemDetails.CustomProblemDetailsWithExtensions(); var json = JsonProblemDetailsConverter.Serialize(problem); // when var actual = JsonProblemDetailsConverter.Deserialize <CustomProblemDetails>(json); // then var expected = new CustomProblemDetails { IntField = problem.IntField, StringField = problem.StringField }; problem.CopyStandardFieldsTo(expected); actual.Should().BeEquivalentTo(expected); }
public void Can_Deserialize_ProblemDetails_With_Extensions_To_CustomProblemDetails() { // given var problem = New.ProblemDetails.ProblemDetailsWithExtensions(); var json = JsonProblemDetailsConverter.Serialize(problem); // when var actual = JsonProblemDetailsConverter.Deserialize <CustomProblemDetails>(json); // then var expected = new CustomProblemDetails { IntField = (int)problem.Extensions["intField"], StringField = (string)problem.Extensions["stringField"] }; problem.CopyStandardFieldsTo(expected); actual.Should().BeEquivalentTo(expected); }