public void CanWriteResult_MatchesWildcardsOnlyWhenContentTypeProvidedByServer( bool contentTypeProvidedByServer, bool shouldMatchWildcards) { // Arrange var formatter = new TypeSpecificFormatter(); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/*+xml")); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/*+json")); formatter.SupportedTypes.Add(typeof(string)); var requestedContentType = "application/vnd.test.entity+json;v=2"; var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), "Hello, world!") { ContentType = new StringSegment(requestedContentType), ContentTypeIsServerDefined = contentTypeProvidedByServer, }; // Act var result = formatter.CanWriteResult(context); // Assert Assert.Equal(shouldMatchWildcards, result); Assert.Equal(requestedContentType, context.ContentType.ToString()); }
public void CanWrite_ReturnsFalse_ForUnsupportedType() { // Arrange var context = new OutputFormatterContext(); context.DeclaredType = typeof(string); context.Object = "Hello, world!"; var formatter = new TypeSpecificFormatter(); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json")); formatter.SupportedTypes.Add(typeof(int)); // Act var result = formatter.CanWriteResult(context, formatter.SupportedMediaTypes[0]); // Assert Assert.False(result); }
public void CanWrite_ReturnsFalse_ForUnsupportedType() { // Arrange var formatter = new TypeSpecificFormatter(); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json")); formatter.SupportedTypes.Add(typeof(int)); var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), "Hello, world!") { ContentType = new StringSegment(formatter.SupportedMediaTypes[0].ToString()), }; // Act var result = formatter.CanWriteResult(context); // Assert Assert.False(result); }