Пример #1
0
        public void Write_PreservesNullParameters()
        {
            // Arrange
            var converter = new OpenIddictConverter();

            using var stream = new MemoryStream();
            using var reader = new StreamReader(stream);
            using var writer = new Utf8JsonWriter(stream);

            var message = new OpenIddictMessage();

            message.AddParameter("string", new OpenIddictParameter((string)null));
            message.AddParameter("bool", new OpenIddictParameter((bool?)null));
            message.AddParameter("long", new OpenIddictParameter((long?)null));
            message.AddParameter("array", new OpenIddictParameter((JsonElement?)null));
            message.AddParameter("object", new OpenIddictParameter((JsonElement?)null));

            // Act
            converter.Write(writer, value: message, options: null);

            // Assert
            writer.Flush();
            stream.Seek(0L, SeekOrigin.Begin);
            Assert.Equal(@"{""string"":null,""bool"":null,""long"":null,""array"":null,""object"":null}", reader.ReadToEnd());
        }
Пример #2
0
    public void AddParameter_PreservesEmptyParameters()
    {
        // Arrange
        var message = new OpenIddictMessage();

        // Act
        message.AddParameter("string", string.Empty);
        message.AddParameter("array", JsonSerializer.Deserialize <JsonElement>("[]"));
        message.AddParameter("object", JsonSerializer.Deserialize <JsonElement>("{}"));
        message.AddParameter("value", JsonSerializer.Deserialize <JsonElement>(
                                 @"{""property"":""""}").GetProperty("property").GetString());

#if SUPPORTS_JSON_NODES
        message.AddParameter("node_array", new JsonArray());
        message.AddParameter("node_object", new JsonObject());
        message.AddParameter("node_value", JsonValue.Create(string.Empty));
#endif

        // Assert
        Assert.Empty((string?)message.GetParameter("string"));
        Assert.NotNull((JsonElement?)message.GetParameter("array"));
        Assert.NotNull((JsonElement?)message.GetParameter("object"));
        Assert.NotNull((JsonElement?)message.GetParameter("value"));

#if SUPPORTS_JSON_NODES
        Assert.NotNull((JsonNode?)message.GetParameter("node_array"));
        Assert.NotNull((JsonNode?)message.GetParameter("node_object"));
        Assert.NotNull((JsonNode?)message.GetParameter("node_value"));
#endif
    }
Пример #3
0
        public void AddParameter_PreservesEmptyParameters()
        {
            // Arrange
            var message = new OpenIddictMessage();

            // Act
            message.AddParameter("string", string.Empty);
            message.AddParameter("array", JsonSerializer.Deserialize <JsonElement>("[]"));
            message.AddParameter("object", JsonSerializer.Deserialize <JsonElement>("{}"));
            message.AddParameter("value", JsonSerializer.Deserialize <JsonElement>(
                                     @"{""property"":""""}").GetProperty("property").GetString());

            // Assert
            Assert.Empty((string?)message.GetParameter("string"));
            Assert.NotNull((JsonElement?)message.GetParameter("array"));
            Assert.NotNull((JsonElement?)message.GetParameter("object"));
            Assert.NotNull((JsonElement?)message.GetParameter("value"));
        }
Пример #4
0
        public void AddParameter_IsCaseSensitive()
        {
            // Arrange
            var message = new OpenIddictMessage();

            // Act
            message.AddParameter("PARAMETER", 42);

            // Assert
            Assert.Null(message.GetParameter("parameter"));
        }
Пример #5
0
        public void AddParameter_AddsExpectedParameter()
        {
            // Arrange
            var message = new OpenIddictMessage();

            // Act
            message.AddParameter("parameter", 42);

            // Assert
            Assert.Equal(42, message.GetParameter("parameter"));
        }
Пример #6
0
        public void ToString_ExcludesSensitiveParameters(string parameter)
        {
            // Arrange
            var message = new OpenIddictMessage();

            message.AddParameter(parameter, "secret value");

            // Act and assert
            var element = JsonSerializer.Deserialize <JsonElement>(message.ToString());

            Assert.DoesNotContain("secret value", message.ToString());
            Assert.Equal("[redacted]", element.GetProperty(parameter).GetString());
        }
Пример #7
0
        public void RemoveParameter_RemovesExpectedParameter()
        {
            // Arrange
            var message = new OpenIddictMessage();

            message.AddParameter("parameter", 42);

            // Act
            message.RemoveParameter("parameter");

            // Assert
            Assert.Null(message.GetParameter("parameter"));
        }
        public void Write_WritesExpectedPayload()
        {
            // Arrange
            var converter = new OpenIddictConverter();

            using var stream = new MemoryStream();
            using var reader = new StreamReader(stream);
            using var writer = new Utf8JsonWriter(stream);

            var message = new OpenIddictMessage();

            message.AddParameter("string", "value");
            message.AddParameter("array", new[] { "value" });

            // Act
            converter.Write(writer, value: message, options: null);

            // Assert
            writer.Flush();
            stream.Seek(0L, SeekOrigin.Begin);
            Assert.Equal(@"{""string"":""value"",""array"":[""value""]}", reader.ReadToEnd());
        }
Пример #9
0
        public void AddParameter_ThrowsAnExceptionForNullOrEmptyName(string name)
        {
            // Arrange
            var message = new OpenIddictMessage();

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(() =>
            {
                message.AddParameter(name, new OpenIddictParameter());
            });

            Assert.Equal("name", exception.ParamName);
            Assert.StartsWith(SR.GetResourceString(SR.ID0190), exception.Message);
        }
        public void Write_PreservesEmptyParameters()
        {
            // Arrange
            var converter = new OpenIddictConverter();

            using var stream = new MemoryStream();
            using var reader = new StreamReader(stream);
            using var writer = new Utf8JsonWriter(stream);

            var message = new OpenIddictMessage();

            message.AddParameter("string", new OpenIddictParameter(string.Empty));
            message.AddParameter("array", new OpenIddictParameter(JsonSerializer.Deserialize <JsonElement>("[]")));
            message.AddParameter("object", new OpenIddictParameter(JsonSerializer.Deserialize <JsonElement>("{}")));

            // Act
            converter.Write(writer, value: message, options: null);

            // Assert
            writer.Flush();
            stream.Seek(0L, SeekOrigin.Begin);
            Assert.Equal(@"{""string"":"""",""array"":[],""object"":{}}", reader.ReadToEnd());
        }
        public void AddParameter_ThrowsAnExceptionForNullOrEmptyName(string name)
        {
            // Arrange
            var message = new OpenIddictMessage();

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(() =>
            {
                message.AddParameter(name, new OpenIddictParameter());
            });

            Assert.Equal("name", exception.ParamName);
            Assert.StartsWith("The parameter name cannot be null or empty.", exception.Message);
        }