示例#1
0
        public void CanConvert_ReturnsExpectedResult(Type type, bool result)
        {
            // Arrange
            var converter = new OpenIdConnectConverter();

            // Act and assert
            Assert.Equal(result, converter.CanConvert(type));
        }
示例#2
0
        public void WriteJson_WritesEmptyPayloadForEmptyMessages()
        {
            // Arrange
            var message   = new OpenIdConnectMessage();
            var converter = new OpenIdConnectConverter();
            var writer    = new StringWriter(CultureInfo.InvariantCulture);

            // Act
            converter.WriteJson(writer: new JsonTextWriter(writer), value: message, serializer: null);

            Assert.Equal("{}", writer.ToString());
        }
示例#3
0
        public void ReadJson_ThrowsAnExceptionForNullReader()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();

            // Act and assert
            var exception = Assert.Throws <ArgumentNullException>(delegate
            {
                converter.ReadJson(reader: null, type: null, value: null, serializer: null);
            });

            Assert.Equal("reader", exception.ParamName);
        }
示例#4
0
        public void WriteJson_ThrowsAnExceptionForNullValue()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();

            // Act and assert
            var exception = Assert.Throws <ArgumentNullException>(delegate
            {
                converter.WriteJson(writer: new JsonTextWriter(TextWriter.Null), value: null, serializer: null);
            });

            Assert.Equal("value", exception.ParamName);
        }
示例#5
0
        public void ReadJson_ReturnsRequestedType(Type type)
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var reader    = new JsonTextReader(new StringReader(@"{""name"":""value""}"));

            // Act
            var result = (OpenIdConnectMessage)converter.ReadJson(reader, type, value: null, serializer: null);

            // Assert
            Assert.IsType(type, result);
            Assert.Equal("value", result.GetParameter("name"));
        }
示例#6
0
        public void CanConvert_ThrowsAnExceptionForNullType()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();

            // Act and assert
            var exception = Assert.Throws <ArgumentNullException>(delegate
            {
                converter.CanConvert(type: null);
            });

            Assert.Equal("type", exception.ParamName);
        }
示例#7
0
        public void WriteJson_ThrowsAnExceptionForInvalidValue()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(delegate
            {
                converter.WriteJson(writer: new JsonTextWriter(TextWriter.Null), value: new object(), serializer: null);
            });

            Assert.StartsWith("The specified object is not supported.", exception.Message);
            Assert.Equal("value", exception.ParamName);
        }
示例#8
0
        public void ReadJson_ThrowsAnExceptionForUnexpectedJsonToken()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var reader    = new JsonTextReader(new StringReader("[0,1,2,3]"));

            // Act and assert
            var exception = Assert.Throws <JsonSerializationException>(delegate
            {
                converter.ReadJson(reader: reader, type: typeof(OpenIdConnectRequest),
                                   value: null, serializer: null);
            });

            Assert.Equal("An error occurred while reading the JSON payload.", exception.Message);
        }
示例#9
0
        public void ReadJson_PopulatesExistingInstance()
        {
            // Arrange
            var message   = new OpenIdConnectMessage();
            var converter = new OpenIdConnectConverter();
            var reader    = new JsonTextReader(new StringReader(@"{""name"":""value""}"));

            // Act
            var result = converter.ReadJson(reader: reader, type: typeof(OpenIdConnectMessage),
                                            value: message, serializer: null);

            // Assert
            Assert.Same(message, result);
            Assert.Equal("value", message.GetParameter("name"));
        }
示例#10
0
        public void ReadJson_ThrowsAnExceptionForUnsupportedType(Type type)
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var reader    = new JsonTextReader(new StringReader(@"{""name"":""value""}"));

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(delegate
            {
                converter.ReadJson(reader, type, value: null, serializer: null);
            });

            Assert.StartsWith("The specified type is not supported.", exception.Message);
            Assert.Equal("type", exception.ParamName);
        }
示例#11
0
        public void WriteJson_WritesExpectedPayload()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var writer    = new StringWriter(CultureInfo.InvariantCulture);

            var message = new OpenIdConnectMessage();

            message.AddParameter("string", "value");
            message.AddParameter("array", new JArray("value"));

            // Act
            converter.WriteJson(writer: new JsonTextWriter(writer), value: message, serializer: null);

            // Assert
            Assert.Equal(@"{""string"":""value"",""array"":[""value""]}", writer.ToString());
        }
示例#12
0
        public void WriteJson_PreservesEmptyParameters()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var writer    = new StringWriter(CultureInfo.InvariantCulture);

            var message = new OpenIdConnectMessage();

            message.AddParameter("string", new OpenIdConnectParameter(string.Empty));
            message.AddParameter("array", new OpenIdConnectParameter(new JArray()));
            message.AddParameter("object", new OpenIdConnectParameter(new JObject()));

            // Act
            converter.WriteJson(writer: new JsonTextWriter(writer), value: message, serializer: null);

            // Assert
            Assert.Equal(@"{""string"":"""",""array"":[],""object"":{}}", writer.ToString());
        }
示例#13
0
        public void ReadJson_PreservesEmptyParameters()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var reader    = new JsonTextReader(new StringReader(@"{""string"":"""",""array"":[],""object"":{}}"));

            // Act
            var result = (OpenIdConnectMessage)converter.ReadJson(reader, typeof(OpenIdConnectMessage),
                                                                  value: null, serializer: null);

            // Assert
            Assert.Equal(3, result.GetParameters().Count());
            Assert.NotNull(result.GetParameter("string"));
            Assert.NotNull(result.GetParameter("array"));
            Assert.NotNull(result.GetParameter("object"));
            Assert.Empty((string)result.GetParameter("string"));
            Assert.Empty((JArray)result.GetParameter("array"));
            Assert.Empty((JObject)result.GetParameter("object"));
        }
示例#14
0
        public void WriteJson_PreservesNullParameters()
        {
            // Arrange
            var converter = new OpenIdConnectConverter();
            var writer    = new StringWriter(CultureInfo.InvariantCulture);

            var message = new OpenIdConnectMessage();

            message.AddParameter("string", new OpenIdConnectParameter((string)null));
            message.AddParameter("bool", new OpenIdConnectParameter((bool?)null));
            message.AddParameter("long", new OpenIdConnectParameter((long?)null));
            message.AddParameter("array", new OpenIdConnectParameter((JArray)null));
            message.AddParameter("object", new OpenIdConnectParameter((JObject)null));

            // Act
            converter.WriteJson(writer: new JsonTextWriter(writer), value: message, serializer: null);

            // Assert
            Assert.Equal(@"{""string"":null,""bool"":null,""long"":null,""array"":null,""object"":null}", writer.ToString());
        }