コード例 #1
0
        public void WriteSampleObjectUsingFormatter_TryFormattingNonJsonSamples_DoesNotThrow()
        {
            Mock <MediaTypeFormatter> customFormatter = new Mock <MediaTypeFormatter>();

            customFormatter.Setup(f => f.CanWriteType(It.IsAny <Type>())).Returns(true);
            customFormatter.Setup(f => f.WriteToStreamAsync(It.IsAny <Type>(), It.IsAny <object>(), It.IsAny <Stream>(), It.IsAny <HttpContent>(), It.IsAny <TransportContext>())).Returns(
                (Type type, object obj, Stream stream, HttpContent content, TransportContext context) =>
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.Write("some\r\nnon <json> string");
                writer.Flush();
                TaskCompletionSource <object> tcs = new TaskCompletionSource <object>();
                tcs.SetResult(null);
                return(tcs.Task);
            });
            HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator();
            TextSample sample = Assert.IsType <TextSample>(
                sampleGenerator.WriteSampleObjectUsingFormatter(
                    customFormatter.Object,
                    "hello world",
                    typeof(string),
                    new MediaTypeHeaderValue("text/json")
                    ));

            Assert.Equal("some\r\nnon <json> string", sample.Text);
        }
コード例 #2
0
        public void WriteSampleObjectUsingFormatter_UnwrapsAggregateException()
        {
            Mock <MediaTypeFormatter> bogusFormatter = new Mock <MediaTypeFormatter>();

            bogusFormatter.Setup(f => f.CanWriteType(It.IsAny <Type>())).Returns(true);
            bogusFormatter.Setup(f => f.WriteToStreamAsync(It.IsAny <Type>(), It.IsAny <object>(), It.IsAny <Stream>(), It.IsAny <HttpContent>(), It.IsAny <TransportContext>())).Returns(() =>
            {
                throw new AggregateException(new FormatException("Invalid format."));
            });
            HelpPageSampleGenerator sampleGenerator   = new HelpPageSampleGenerator();
            InvalidSample           sampleNotProvided = Assert.IsType <InvalidSample>(
                sampleGenerator.WriteSampleObjectUsingFormatter(
                    bogusFormatter.Object,
                    "hello world",
                    typeof(string),
                    new MediaTypeHeaderValue("text/json")
                    ));

            Assert.Equal("An exception has occurred while using the formatter 'MediaTypeFormatterProxy' to generate sample for media type 'text/json'. Exception message: Invalid format.",
                         sampleNotProvided.ErrorMessage);
        }