diff --git a/src/OpenIddict.Abstractions/Primitives/OpenIddictParameter.cs b/src/OpenIddict.Abstractions/Primitives/OpenIddictParameter.cs index e8a89d4c..23c30ac6 100644 --- a/src/OpenIddict.Abstractions/Primitives/OpenIddictParameter.cs +++ b/src/OpenIddict.Abstractions/Primitives/OpenIddictParameter.cs @@ -397,12 +397,6 @@ namespace OpenIddict.Abstractions string value => value, string[] value => string.Join(", ", value), - JsonElement value when value.ValueKind == JsonValueKind.Undefined => string.Empty, - JsonElement value when value.ValueKind == JsonValueKind.Null => string.Empty, - - JsonElement value when value.ValueKind != JsonValueKind.Array && - value.ValueKind != JsonValueKind.Object => value.GetString(), - JsonElement value => value.ToString(), _ => Value.ToString() diff --git a/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictParameterTests.cs b/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictParameterTests.cs index 8be37d37..f60ac547 100644 --- a/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictParameterTests.cs +++ b/test/OpenIddict.Abstractions.Tests/Primitives/OpenIddictParameterTests.cs @@ -527,14 +527,29 @@ namespace OpenIddict.Abstractions.Tests.Primitives } [Fact] - public void ToString_ReturnsUnderlyingJsonValue() + public void ToString_ReturnsEmptyStringForUndefinedJsonValues() { // Arrange - var parameter = new OpenIddictParameter( - JsonSerializer.Deserialize(@"{""field"":""Fabrikam""}").GetProperty("field")); + var parameter = new OpenIddictParameter(default(JsonElement)); // Act and assert - Assert.Equal("Fabrikam", parameter.ToString()); + Assert.Empty(parameter.ToString()); + } + + [Fact] + public void ToString_ReturnsUnderlyingJsonValue() + { + // Arrange, act and assert + Assert.Equal(bool.TrueString, new OpenIddictParameter( + JsonSerializer.Deserialize(@"{""field"":true}").GetProperty("field")).ToString()); + Assert.Equal(bool.FalseString, new OpenIddictParameter( + JsonSerializer.Deserialize(@"{""field"":false}").GetProperty("field")).ToString()); + Assert.Equal("Fabrikam", new OpenIddictParameter( + JsonSerializer.Deserialize(@"{""field"":""Fabrikam""}").GetProperty("field")).ToString()); + Assert.Equal(@"[""Fabrikam"",""Contoso""]", new OpenIddictParameter( + JsonSerializer.Deserialize(@"{""field"":[""Fabrikam"",""Contoso""]}").GetProperty("field")).ToString()); + Assert.Equal(@"{""field"":""value""}", new OpenIddictParameter( + JsonSerializer.Deserialize(@"{""field"":""value""}")).ToString()); } [Theory]