public void Error_With_Path() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""path"": [ 1, ""foo"", 2, ""bar"" ] } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("errors", error.Message); Assert.Collection( error.Path !, element => Assert.Equal(1, Assert.IsType <int>(element)), element => Assert.Equal("foo", Assert.IsType <string>(element)), element => Assert.Equal(2, Assert.IsType <int>(element)), element => Assert.Equal("bar", Assert.IsType <string>(element))); }); }
public void Error_With_Path_With_Invalid_Path_Value() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""path"": [ true ] } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("errors", error.Message); Assert.Collection( error.Path !, element => Assert.Equal( "NOT_SUPPORTED_VALUE", Assert.IsType <string>(element))); }); }
public void Parsing_Error() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""locations"": [ { ""column"": 5 } ] }, { ""message"": ""errors"", ""locations"": [ { ""column"": 5 } ] } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("Error parsing a server error.", error.Message); Assert.NotNull(error.Exception); }, error => { Assert.Equal("Error parsing a server error.", error.Message); Assert.NotNull(error.Exception); }); }
public void Error_With_Root_Code_Takes_Preference() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""code"": ""CSROOT"", ""extensions"": { ""code"": ""CS1234"" } } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("errors", error.Message); Assert.Equal("CSROOT", error.Code); error.Extensions.MatchSnapshot(); }); }
public void Error_With_Extensions() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""extensions"": { ""s"": ""abc"", ""i"": 5, ""f"": 1.5, ""true"": true, ""false"": false, ""null"": null, ""il"": [ 1, 2, 3 ], ""sl"": [ ""a"", ""b"" ], ""ol"": [ { ""s"": ""abc"" } ] } } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("errors", error.Message); error.Extensions.MatchSnapshot(); }); }
public void Error_With_Locations() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"", ""locations"": [ { ""line"": 1, ""column"": 5 } ] } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => { Assert.Equal("errors", error.Message); Assert.Collection( error.Locations !, location => { Assert.Equal(1, location.Line); Assert.Equal(5, location.Column); }); }); }
public void Parsing_Errors_Is_Null() { // arrange var result = JsonDocument.Parse("null"); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Null(errors); }
public void Error_With_Message() { // arrange var result = JsonDocument.Parse(@" [ { ""message"": ""errors"" } ] "); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection(errors !, error => Assert.Equal("errors", error.Message)); }
public void Error_Has_No_Message() { // arrange var result = JsonDocument.Parse(@"[{ }]"); // act IReadOnlyList <IClientError>?errors = JsonErrorParser.ParseErrors(result.RootElement); // assert Assert.Collection( errors !, error => Assert.Equal( "The error format is invalid and was missing the property `message`.", error.Message)); }