|
|
|
@ -7,7 +7,7 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using System.Text.Json; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
@ -24,17 +24,6 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
Assert.True(parameter.Equals(new OpenIddictParameter())); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Equals_ReturnsTrueWhenReferencesAreIdentical() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var value = new JObject(); |
|
|
|
var parameter = new OpenIddictParameter(value); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.True(parameter.Equals(new OpenIddictParameter(value))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Equals_ReturnsFalseWhenCurrentValueIsNull() |
|
|
|
{ |
|
|
|
@ -65,8 +54,11 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
Assert.False(new OpenIddictParameter("42").Equals(new OpenIddictParameter(42))); |
|
|
|
Assert.False(new OpenIddictParameter(42).Equals(new OpenIddictParameter("42"))); |
|
|
|
|
|
|
|
Assert.False(new OpenIddictParameter(new JObject()).Equals(new OpenIddictParameter(new JArray()))); |
|
|
|
Assert.False(new OpenIddictParameter(new JArray()).Equals(new OpenIddictParameter(new JObject()))); |
|
|
|
Assert.False(new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("{}")) |
|
|
|
.Equals(new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]")))); |
|
|
|
|
|
|
|
Assert.False(new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]")) |
|
|
|
.Equals(new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("{}")))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -84,48 +76,33 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void Equals_UsesDeepEqualsForJsonArrays() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JArray(new[] { 0, 1, 2, 3 })); |
|
|
|
var parameter = new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[0,1,2,3]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.True(parameter.Equals(new JArray(new[] { 0, 1, 2, 3 }))); |
|
|
|
Assert.False(parameter.Equals(new JArray())); |
|
|
|
Assert.False(parameter.Equals(new JArray(new[] { 0, 1, 2 }))); |
|
|
|
Assert.False(parameter.Equals(new JArray(new[] { 3, 2, 1, 0 }))); |
|
|
|
Assert.True(parameter.Equals(JsonSerializer.Deserialize<JsonElement>("[0,1,2,3]"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>("[]"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>("[0,1,2]"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>("[3,2,1,0]"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Equals_UsesDeepEqualsForJsonObjects() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
["field"] = new JArray(new[] { 0, 1, 2, 3 }) |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>(@"{""field"":[0,1,2,3]}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.True(parameter.Equals(new JObject |
|
|
|
{ |
|
|
|
["field"] = new JArray(new[] { 0, 1, 2, 3 }) |
|
|
|
})); |
|
|
|
|
|
|
|
Assert.False(parameter.Equals(new JObject())); |
|
|
|
|
|
|
|
Assert.False(parameter.Equals(new JObject |
|
|
|
{ |
|
|
|
["field"] = "value" |
|
|
|
})); |
|
|
|
|
|
|
|
Assert.False(parameter.Equals(new JObject |
|
|
|
{ |
|
|
|
["field"] = new JArray(new[] { 0, 1, 2 }) |
|
|
|
})); |
|
|
|
Assert.True(parameter.Equals(JsonSerializer.Deserialize<JsonElement>(@"{""field"":[0,1,2,3]}"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>(@"{}"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>(@"{""field"":""value""}"))); |
|
|
|
Assert.False(parameter.Equals(JsonSerializer.Deserialize<JsonElement>(@"{""field"":[0,1,2]}"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Equals_ComparesUnderlyingValuesForJsonValues() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var value = new JValue(42); |
|
|
|
var value = JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"); |
|
|
|
var parameter = new OpenIddictParameter(value); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
@ -140,7 +117,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
var parameter = new OpenIddictParameter(42); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.False(parameter.Equals(new OpenIddictParameter(new JValue((long?) null)))); |
|
|
|
Assert.False(parameter.Equals(new OpenIddictParameter((JsonElement?) null))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -150,8 +127,10 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
var parameter = new OpenIddictParameter(42); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.True(parameter.Equals(new OpenIddictParameter(new JValue(42)))); |
|
|
|
Assert.False(parameter.Equals(new OpenIddictParameter(new JValue(100)))); |
|
|
|
Assert.True(parameter.Equals(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field")))); |
|
|
|
Assert.False(parameter.Equals(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":100}").GetProperty("field")))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -190,7 +169,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var value = "Fabrikam"; |
|
|
|
var parameter = new OpenIddictParameter(new JValue(value)); |
|
|
|
var parameter = new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal(value.GetHashCode(), parameter.GetHashCode()); |
|
|
|
@ -269,11 +248,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsNullForOutOfRangeJsonArrayIndex() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JArray |
|
|
|
{ |
|
|
|
"Fabrikam", |
|
|
|
"Contoso" |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Null(parameter.GetParameter(2)); |
|
|
|
@ -283,7 +259,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsNullForNonexistentItem() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject()); |
|
|
|
var parameter = new OpenIddictParameter(new JsonElement()); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Null(parameter.GetParameter("parameter")); |
|
|
|
@ -293,11 +269,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsNullForJsonArrays() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JArray |
|
|
|
{ |
|
|
|
"Fabrikam", |
|
|
|
"Contoso" |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Null(parameter.GetParameter("Fabrikam")); |
|
|
|
@ -307,10 +280,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsNullForJsonObjects() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
["parameter"] = new JValue("value") |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":""value""}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Null(parameter.GetParameter(0)); |
|
|
|
@ -320,10 +291,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsNullForNullJsonObjects() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
["property"] = null |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":null}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Null(parameter.GetParameter(0)); |
|
|
|
@ -334,11 +303,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsExpectedNodeForArray() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new[] |
|
|
|
{ |
|
|
|
"Fabrikam", |
|
|
|
"Contoso" |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal("Fabrikam", (string) parameter.GetParameter(0)); |
|
|
|
@ -348,10 +314,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsExpectedParameterForJsonObject() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
["parameter"] = new JValue("value") |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":""value""}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal("value", (string) parameter.GetParameter("parameter")); |
|
|
|
@ -361,11 +325,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameter_ReturnsExpectedNodeForJsonArray() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JArray |
|
|
|
{ |
|
|
|
"Fabrikam", |
|
|
|
"Contoso" |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal("Fabrikam", (string) parameter.GetParameter(0)); |
|
|
|
@ -402,7 +363,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameters_ReturnsEmptyEnumerationForJsonValues() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JValue(42)); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Empty(parameter.GetParameters()); |
|
|
|
@ -412,13 +374,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void GetParameters_ReturnsNullKeysForJsonArrays() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameters = new[] |
|
|
|
{ |
|
|
|
"Fabrikam", |
|
|
|
"Contoso" |
|
|
|
}; |
|
|
|
|
|
|
|
var parameter = new OpenIddictParameter(new JArray(parameters)); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.All(from element in parameter.GetParameters() |
|
|
|
@ -435,7 +392,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
"Contoso" |
|
|
|
}; |
|
|
|
|
|
|
|
var parameter = new OpenIddictParameter(new JArray(parameters)); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal(parameters, from element in parameter.GetParameters() |
|
|
|
@ -451,7 +409,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
["parameter"] = "value" |
|
|
|
}; |
|
|
|
|
|
|
|
var parameter = new OpenIddictParameter(JObject.FromObject(parameters)); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":""value""}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal(parameters, parameter.GetParameters().ToDictionary(pair => pair.Key, pair => (string) pair.Value)); |
|
|
|
@ -465,9 +424,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((long?) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((string) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((string[]) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((JArray) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((JObject) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((JValue) null))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((JsonElement?) null))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -476,9 +433,13 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(string.Empty))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new string[0]))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JArray()))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JObject()))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JValue(string.Empty)))); |
|
|
|
|
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>("[]")))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>("{}")))); |
|
|
|
Assert.True(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""""}").GetProperty("field")))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -491,9 +452,13 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter((long?) 42))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter("Fabrikam"))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new[] { "Fabrikam" }))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JArray("Fabrikam")))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JObject { ["property"] = "value" }))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter(new JValue("Fabrikam")))); |
|
|
|
|
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam""]")))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}")))); |
|
|
|
Assert.False(OpenIddictParameter.IsNullOrEmpty(new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field")))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -534,10 +499,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void ToString_ReturnsJsonRepresentation() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
["parameter"] = new JValue("value") |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":""value""}")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal(@"{""parameter"":""value""}", parameter.ToString()); |
|
|
|
@ -547,7 +510,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void ToString_ReturnsEmptyStringForNullJsonValues() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JValue((object) null)); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":null}").GetProperty("field")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Empty(parameter.ToString()); |
|
|
|
@ -557,7 +521,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void ToString_ReturnsUnderlyingJsonValue() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var parameter = new OpenIddictParameter(new JValue("Fabrikam")); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field")); |
|
|
|
|
|
|
|
// Act and assert
|
|
|
|
Assert.Equal("Fabrikam", parameter.ToString()); |
|
|
|
@ -572,7 +537,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
var parameter = new OpenIddictParameter(); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var exception = Assert.Throws<ArgumentException>(() => parameter.TryGetParameter(name, out OpenIddictParameter val)); |
|
|
|
var exception = Assert.Throws<ArgumentException>(() => parameter.TryGetParameter(name, out var value)); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.Equal("name", exception.ParamName); |
|
|
|
@ -583,34 +548,23 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void TryGetParameter_ReturnsTrueAndExpectedParameter() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var name = "paramName"; |
|
|
|
var val = new JValue("paramValue"); |
|
|
|
var parameter = new OpenIddictParameter(new JObject |
|
|
|
{ |
|
|
|
[name] = val |
|
|
|
}); |
|
|
|
var parameter = new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""parameter"":""value""}")); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var success = parameter.TryGetParameter(name, out OpenIddictParameter expectedParameter); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(val, expectedParameter.Value); |
|
|
|
// Act and assert
|
|
|
|
Assert.True(parameter.TryGetParameter("parameter", out var value)); |
|
|
|
Assert.Equal("value", (string) value); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryGetParameter_ReturnsFalse() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var name = "paramName"; |
|
|
|
var parameter = new OpenIddictParameter(); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var success = parameter.TryGetParameter(name, out OpenIddictParameter val); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.False(success); |
|
|
|
Assert.Null(val.Value); |
|
|
|
// Act and assert
|
|
|
|
Assert.False(parameter.TryGetParameter("parameter", out var value)); |
|
|
|
Assert.Null(value.Value); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -655,8 +609,8 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void BoolConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.False((bool) new OpenIddictParameter(new JArray())); |
|
|
|
Assert.Null((bool?) new OpenIddictParameter(new JArray())); |
|
|
|
Assert.False((bool) new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]"))); |
|
|
|
Assert.Null((bool?) new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -678,180 +632,86 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void BoolConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.True((bool) new OpenIddictParameter(new JValue(true))); |
|
|
|
Assert.True((bool?) new OpenIddictParameter(new JValue(true))); |
|
|
|
Assert.True((bool) new OpenIddictParameter(new JValue("true"))); |
|
|
|
Assert.True((bool?) new OpenIddictParameter(new JValue("true"))); |
|
|
|
|
|
|
|
Assert.False((bool) new OpenIddictParameter(new JValue(false))); |
|
|
|
Assert.False((bool?) new OpenIddictParameter(new JValue(false))); |
|
|
|
Assert.False((bool) new OpenIddictParameter(new JValue("false"))); |
|
|
|
Assert.False((bool?) new OpenIddictParameter(new JValue("false"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_CanCreateParameterFromJArrayValue() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var array = new JArray("Fabrikam", "Contoso"); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var parameter = new OpenIddictParameter(array); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.Same(array, parameter.Value); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_ReturnsDefaultValueForNullValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JArray) new OpenIddictParameter()); |
|
|
|
Assert.Null((JArray) (OpenIddictParameter?) null); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_ReturnsDefaultValueForUnsupportedPrimitiveValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JArray) new OpenIddictParameter("Fabrikam")); |
|
|
|
} |
|
|
|
Assert.True((bool) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":true}").GetProperty("field"))); |
|
|
|
Assert.True((bool?) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":true}").GetProperty("field"))); |
|
|
|
Assert.True((bool) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""true""}").GetProperty("field"))); |
|
|
|
Assert.True((bool?) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""true""}").GetProperty("field"))); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JArray) new OpenIddictParameter(new JObject())); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_ReturnsDefaultValueForUnsupportedSerializedJson() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JArray) new OpenIddictParameter(@"{""Property"":""value""}")); |
|
|
|
Assert.Null((JArray) new OpenIddictParameter("[")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(new JArray("Contoso", "Fabrikam"), (JArray) new OpenIddictParameter(new JArray("Contoso", "Fabrikam"))); |
|
|
|
Assert.False((bool) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":false}").GetProperty("field"))); |
|
|
|
Assert.False((bool?) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":false}").GetProperty("field"))); |
|
|
|
Assert.False((bool) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""false""}").GetProperty("field"))); |
|
|
|
Assert.False((bool?) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""false""}").GetProperty("field"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_CanConvertFromSerializedJson() |
|
|
|
public void JsonElementConverter_ReturnsDefaultValueForNullValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(new JArray("Contoso", "Fabrikam"), (JArray) new OpenIddictParameter(@"[""Contoso"",""Fabrikam""]")); |
|
|
|
Assert.Null((JsonElement?) new OpenIddictParameter()); |
|
|
|
Assert.Null((JsonElement?) (OpenIddictParameter?) null); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JArrayConverter_CanConvertFromArrays() |
|
|
|
public void JsonElementConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(new JArray("Contoso", "Fabrikam"), (JArray) new OpenIddictParameter(new[] { "Contoso", "Fabrikam" })); |
|
|
|
Assert.Null((JsonElement?) new OpenIddictParameter(new JsonElement())); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_CanCreateParameterFromJObjectValue() |
|
|
|
public void JsonElementConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var value = JObject.FromObject(new { Property = "value" }); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var parameter = new OpenIddictParameter(value); |
|
|
|
// Arrange and act
|
|
|
|
var array = (JsonElement) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Contoso"",""Fabrikam""]")); |
|
|
|
var dictionary = (JsonElement) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""Property"":""value""}")); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.Same(value, parameter.Value); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_ReturnsDefaultValueForNullValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JObject) new OpenIddictParameter()); |
|
|
|
Assert.Null((JObject) (OpenIddictParameter?) null); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_ReturnsDefaultValueForUnsupportedPrimitiveValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JObject) new OpenIddictParameter("Fabrikam")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_ReturnsDefaultValueForUnsupportedArrays() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JObject) new OpenIddictParameter(new[] { "Fabrikam", "Contoso" })); |
|
|
|
} |
|
|
|
Assert.Equal("Contoso", array[0].GetString()); |
|
|
|
Assert.Equal("Fabrikam", array[1].GetString()); |
|
|
|
Assert.Equal("value", dictionary.GetProperty("Property").GetString()); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JObject) new OpenIddictParameter(new JArray())); |
|
|
|
} |
|
|
|
Assert.True(((JsonElement) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":true}").GetProperty("field"))).GetBoolean()); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_ReturnsDefaultValueForUnsupportedSerializedJson() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JObject) new OpenIddictParameter(@"[""Fabrikam"",""Contoso""]")); |
|
|
|
Assert.Null((JObject) new OpenIddictParameter("{")); |
|
|
|
} |
|
|
|
Assert.Equal(42, ((JsonElement) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"))).GetInt64()); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(JObject.FromObject(new { Property = "value" }), (JObject) new OpenIddictParameter(JObject.FromObject(new { Property = "value" }))); |
|
|
|
Assert.Equal("Fabrikam", ((JsonElement) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field"))).GetString()); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JObjectConverter_CanConvertFromSerializedJson() |
|
|
|
public void JsonElementConverter_CanConvertFromSerializedJson() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(JObject.FromObject(new { Property = "value" }), (JObject) new OpenIddictParameter(@"{""Property"":""value""}")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JValueConverter_CanCreateParameterFromJValueValue() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
var value = new JValue("Fabrikam"); |
|
|
|
|
|
|
|
// Act
|
|
|
|
var parameter = new OpenIddictParameter(value); |
|
|
|
// Arrange and act
|
|
|
|
var array = (JsonElement) new OpenIddictParameter(@"[""Contoso"",""Fabrikam""]"); |
|
|
|
var dictionary = (JsonElement) new OpenIddictParameter(@"{""Property"":""value""}"); |
|
|
|
|
|
|
|
// Assert
|
|
|
|
Assert.Same(value, parameter.Value); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JValueConverter_ReturnsDefaultValueForNullValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JValue) new OpenIddictParameter()); |
|
|
|
Assert.Null((JValue) (OpenIddictParameter?) null); |
|
|
|
Assert.Equal("Contoso", array[0].GetString()); |
|
|
|
Assert.Equal("Fabrikam", array[1].GetString()); |
|
|
|
Assert.Equal("value", dictionary.GetProperty("Property").GetString()); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JValueConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
public void JsonElementConverter_CanConvertFromArrays() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((JValue) new OpenIddictParameter(new JArray())); |
|
|
|
} |
|
|
|
// Arrange and act
|
|
|
|
var array = (JsonElement) new OpenIddictParameter(new[] { "Contoso", "Fabrikam" }); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void JValueConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(new JValue(true), (JValue) new OpenIddictParameter(new JValue(true))); |
|
|
|
Assert.Equal(new JValue(42), (JValue) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(new JValue("Fabrikam"), (JValue) new OpenIddictParameter(new JValue("Fabrikam"))); |
|
|
|
// Assert
|
|
|
|
Assert.Equal("Contoso", array[0].GetString()); |
|
|
|
Assert.Equal("Fabrikam", array[1].GetString()); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -882,16 +742,16 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void LongConverter_ReturnsDefaultValueForUnsupportedArrays() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(0, (long) new OpenIddictParameter(new[] { "Fabrikam", "Contoso" })); |
|
|
|
Assert.Null((long?) new OpenIddictParameter(new[] { "Fabrikam", "Contoso" })); |
|
|
|
Assert.Equal(0, (long) new OpenIddictParameter(new[] { "Contoso", "Fabrikam" })); |
|
|
|
Assert.Null((long?) new OpenIddictParameter(new[] { "Contoso", "Fabrikam" })); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void LongConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(0, (long) new OpenIddictParameter(new JArray())); |
|
|
|
Assert.Null((long?) new OpenIddictParameter(new JArray())); |
|
|
|
Assert.Equal(0, (long) new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]"))); |
|
|
|
Assert.Null((long?) new OpenIddictParameter(JsonSerializer.Deserialize<JsonElement>("[]"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -908,18 +768,10 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void LongConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42f))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42f))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42f))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42f))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42m))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42m))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter(new JValue(42m))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter(new JValue(42m))); |
|
|
|
Assert.Equal(42, (long) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"))); |
|
|
|
Assert.Equal(42, (long?) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -941,14 +793,7 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void StringConverter_ReturnsDefaultValueForArrays() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((string) new OpenIddictParameter(new[] { "Fabrikam", "Contoso" })); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void StringConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((string) new OpenIddictParameter(new JArray())); |
|
|
|
Assert.Null((string) new OpenIddictParameter(new[] { "Contoso", "Fabrikam" })); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -964,9 +809,12 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void StringConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal("Fabrikam", (string) new OpenIddictParameter(new JValue("Fabrikam"))); |
|
|
|
Assert.Equal("False", (string) new OpenIddictParameter(new JValue(false))); |
|
|
|
Assert.Equal("42", (string) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal("Fabrikam", (string) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field"))); |
|
|
|
Assert.Equal("false", (string) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":false}").GetProperty("field"))); |
|
|
|
Assert.Equal("42", (string) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"))); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -1009,18 +857,23 @@ namespace OpenIddict.Abstractions.Tests.Primitives |
|
|
|
public void StringArrayConverter_ReturnsDefaultValueForUnsupportedJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Null((string[]) new OpenIddictParameter(new JObject())); |
|
|
|
Assert.Null((string[]) new OpenIddictParameter(new JsonElement())); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void StringArrayConverter_CanConvertFromJsonValues() |
|
|
|
{ |
|
|
|
// Arrange, act and assert
|
|
|
|
Assert.Equal(new[] { "Fabrikam" }, (string[]) new OpenIddictParameter(new JValue("Fabrikam"))); |
|
|
|
Assert.Equal(new[] { "False" }, (string[]) new OpenIddictParameter(new JValue(false))); |
|
|
|
Assert.Equal(new[] { "42" }, (string[]) new OpenIddictParameter(new JValue(42))); |
|
|
|
Assert.Equal(new[] { "Fabrikam" }, (string[]) new OpenIddictParameter(new JArray("Fabrikam"))); |
|
|
|
Assert.Equal(new[] { "Fabrikam", "Contoso" }, (string[]) new OpenIddictParameter(new JArray(new[] { "Fabrikam", "Contoso" }))); |
|
|
|
Assert.Equal(new[] { "Fabrikam" }, (string[]) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":""Fabrikam""}").GetProperty("field"))); |
|
|
|
Assert.Equal(new[] { "False" }, (string[]) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":false}").GetProperty("field"))); |
|
|
|
Assert.Equal(new[] { "42" }, (string[]) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"{""field"":42}").GetProperty("field"))); |
|
|
|
Assert.Equal(new[] { "Fabrikam" }, (string[]) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Fabrikam""]"))); |
|
|
|
Assert.Equal(new[] { "Contoso", "Fabrikam" }, (string[]) new OpenIddictParameter( |
|
|
|
JsonSerializer.Deserialize<JsonElement>(@"[""Contoso"",""Fabrikam""]"))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|