Example #1
0
        public async Task ReadRequestBodyAsync_ParametersSpecified_ReturnsFormattedResult()
        {
            // Arrange
            var yamlInputFormatter = new YamlInputFormatter((Deserializer) new DeserializerBuilder().WithNamingConvention(CamelCaseNamingConvention.Instance).Build());
            var content            = "[{\"op\":\"add\",\"path\":\"Customer/Name\",\"value\":\"John\"}]";
            var contentBytes       = Encoding.UTF8.GetBytes(content);

            var modelState = new ModelStateDictionary();

            string userId      = Guid.NewGuid().ToString();
            var    httpContext = new DefaultHttpContext()
            {
                User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, "example name"),
                    new Claim(ClaimTypes.NameIdentifier, userId),
                    new Claim("sub", userId),
                    new Claim("custom-claim", "example claim value"),
                }, "mock"))
            };

            var provider = new EmptyModelMetadataProvider();
            var metadata = provider.GetMetadataForType(typeof(string));
            var context  = new InputFormatterContext(httpContext, string.Empty, modelState, metadata, new HttpRequestStreamReaderFactoryFake().CreateReader);

            // Act
            InputFormatterResult result = await yamlInputFormatter.ReadRequestBodyAsync(context, Encoding.UTF8);

            Assert.NotNull(result);
            Assert.True(result.IsModelSet);
        }
Example #2
0
        public async Task ReadRequestBodyAsync_EncodingNull_ArgumentNullExceptionThrown()
        {
            // Arrange
            var yamlInputFormatter = new YamlInputFormatter((Deserializer) new DeserializerBuilder().WithNamingConvention(CamelCaseNamingConvention.Instance).Build());

            // Act
            Exception caughtException = null;

            try
            {
                InputFormatterResult result = await yamlInputFormatter.ReadRequestBodyAsync(null, Encoding.UTF8);
            }
            catch (Exception ex)
            {
                caughtException = ex;
            }

            Assert.True(caughtException is ArgumentNullException);
        }