diff --git a/test/XmlDataContractSerializerInputFormatterTests.cs b/test/XmlDataContractSerializerInputFormatterTests.cs
deleted file mode 100644
index 339c83e0ae..0000000000
--- a/test/XmlDataContractSerializerInputFormatterTests.cs
+++ /dev/null
@@ -1,499 +0,0 @@
-// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-#if ASPNET50
-using System;
-using System.IO;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml;
-using Microsoft.AspNet.Http;
-using Microsoft.AspNet.Mvc.ModelBinding;
-using Microsoft.AspNet.Testing;
-using Moq;
-using Xunit;
-
-namespace Microsoft.AspNet.Mvc
-{
- public class XmlDataContractSerializerInputFormatterTest
- {
- [DataContract(Name = "DummyClass", Namespace = "")]
- public class DummyClass
- {
- [DataMember]
- public int SampleInt { get; set; }
- }
-
- [DataContract(Name = "SomeDummyClass", Namespace = "")]
- public class SomeDummyClass : DummyClass
- {
- [DataMember]
- public string SampleString { get; set; }
- }
-
- [DataContract(Name = "TestLevelOne", Namespace = "")]
- public class TestLevelOne
- {
- [DataMember]
- public int SampleInt { get; set; }
- [DataMember]
- public string sampleString;
- public DateTime SampleDate { get; set; }
- }
-
- [DataContract(Name = "TestLevelTwo", Namespace = "")]
- public class TestLevelTwo
- {
- [DataMember]
- public string SampleString { get; set; }
- [DataMember]
- public TestLevelOne TestOne { get; set; }
- }
-
- [Theory]
- [InlineData("application/xml", true)]
- [InlineData("application/*", true)]
- [InlineData("*/*", true)]
- [InlineData("text/xml", true)]
- [InlineData("text/*", true)]
- [InlineData("text/json", false)]
- [InlineData("application/json", false)]
- [InlineData("", false)]
- [InlineData(null, false)]
- [InlineData("invalid", false)]
- public void CanRead_ReturnsTrueForAnySupportedContentType(string requestContentType, bool expectedCanRead)
- {
- // Arrange
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes("content");
-
- var actionContext = GetActionContext(contentBytes, contentType: requestContentType);
- var formatterContext = new InputFormatterContext(actionContext, typeof(string));
-
- // Act
- var result = formatter.CanRead(formatterContext);
-
- // Assert
- Assert.Equal(expectedCanRead, result);
- }
-
- [Fact]
- public void XmlDataContractSerializerFormatterHasProperSuppportedMediaTypes()
- {
- // Arrange & Act
- var formatter = new XmlDataContractSerializerInputFormatter();
-
- // Assert
- Assert.True(formatter.SupportedMediaTypes
- .Select(content => content.ToString())
- .Contains("application/xml"));
- Assert.True(formatter.SupportedMediaTypes
- .Select(content => content.ToString())
- .Contains("text/xml"));
- }
-
- [Fact]
- public void XmlDataContractSerializerFormatterHasProperSuppportedEncodings()
- {
- // Arrange & Act
- var formatter = new XmlDataContractSerializerInputFormatter();
-
- // Assert
- Assert.True(formatter.SupportedEncodings.Any(i => i.WebName == "utf-8"));
- Assert.True(formatter.SupportedEncodings.Any(i => i.WebName == "utf-16"));
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterReadsSimpleTypes()
- {
- // Arrange
- var expectedInt = 10;
- var expectedString = "TestString";
-
- var input = "" +
- "" + expectedInt + "" +
- "" + expectedString + "";
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelOne));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
-
- var levelOneModel = model as TestLevelOne;
- Assert.Equal(expectedInt, levelOneModel.SampleInt);
- Assert.Equal(expectedString, levelOneModel.sampleString);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterReadsComplexTypes()
- {
- // Arrange
- var expectedInt = 10;
- var expectedString = "TestString";
- var expectedLevelTwoString = "102";
-
- var input = "" +
- "" + expectedLevelTwoString + "" +
- "" + expectedInt + "" +
- "" + expectedString + "";
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelTwo));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
-
- var levelTwoModel = model as TestLevelTwo;
- Assert.Equal(expectedLevelTwoString, levelTwoModel.SampleString);
- Assert.Equal(expectedInt, levelTwoModel.TestOne.SampleInt);
- Assert.Equal(expectedString, levelTwoModel.TestOne.sampleString);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterReadsWhenMaxDepthIsModified()
- {
- // Arrange
- var expectedInt = 10;
-
- var input = "" +
- "" + expectedInt + "";
- var formatter = new XmlDataContractSerializerInputFormatter();
- formatter.MaxDepth = 10;
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
- var dummyModel = model as DummyClass;
- Assert.Equal(expectedInt, dummyModel.SampleInt);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterThrowsOnExceededMaxDepth()
- {
- if (TestPlatformHelper.IsMono)
- {
- // ReaderQuotas are not honored on Mono
- return;
- }
-
- // Arrange
- var input = "" +
- "test" +
- "10" +
- "test";
- var formatter = new XmlDataContractSerializerInputFormatter();
- formatter.MaxDepth = 1;
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelTwo));
-
- // Act & Assert
- await Assert.ThrowsAsync(typeof(SerializationException), async () => await formatter.ReadAsync(context));
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterThrowsWhenReaderQuotasAreChanged()
- {
- if (TestPlatformHelper.IsMono)
- {
- // ReaderQuotas are not honored on Mono
- return;
- }
-
- // Arrange
- var input = "" +
- "test" +
- "10" +
- "test";
- var formatter = new XmlDataContractSerializerInputFormatter();
- formatter.XmlDictionaryReaderQuotas.MaxStringContentLength = 2;
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelTwo));
-
- // Act & Assert
- await Assert.ThrowsAsync(typeof(SerializationException), async () => await formatter.ReadAsync(context));
- }
-
- [Fact]
- public void XmlDataContractSerializerFormatterThrowsWhenMaxDepthIsBelowOne()
- {
- // Arrange
- var formatter = new XmlDataContractSerializerInputFormatter();
-
- // Act & Assert
- Assert.Throws(typeof(ArgumentException), () => formatter.MaxDepth = 0);
- }
-
- [Fact]
- public async Task VerifyStreamIsOpenAfterRead()
- {
- // Arrange
- var input = "" +
- "10";
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.True(context.ActionContext.HttpContext.Request.Body.CanRead);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterThrowsOnInvalidCharacters()
- {
- // Arrange
- var expectedException = TestPlatformHelper.IsMono ? typeof(SerializationException) :
- typeof(XmlException);
- var expectedMessage = TestPlatformHelper.IsMono ?
- "Expected element 'TestLevelTwo' in namespace '', but found Element node 'DummyClass' in namespace ''" :
- "The encoding in the declaration 'UTF-8' does not match the encoding of the document 'utf-16LE'.";
- var inpStart = Encodings.UTF16EncodingLittleEndian.GetBytes("" +
- "");
- byte[] inp = { 192, 193 };
- var inpEnd = Encodings.UTF16EncodingLittleEndian.GetBytes("");
-
- var contentBytes = new byte[inpStart.Length + inp.Length + inpEnd.Length];
- Buffer.BlockCopy(inpStart, 0, contentBytes, 0, inpStart.Length);
- Buffer.BlockCopy(inp, 0, contentBytes, inpStart.Length, inp.Length);
- Buffer.BlockCopy(inpEnd, 0, contentBytes, inpStart.Length + inp.Length, inpEnd.Length);
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelTwo));
-
- // Act
- var ex = await Assert.ThrowsAsync(expectedException, () => formatter.ReadAsync(context));
- Assert.Equal(expectedMessage, ex.Message);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterIgnoresBOMCharacters()
- {
- // Arrange
- var sampleString = "Test";
- var sampleStringBytes = Encoding.UTF8.GetBytes(sampleString);
- var inputStart = Encoding.UTF8.GetBytes("" + Environment.NewLine +
- "" + sampleString);
- byte[] bom = { 0xef, 0xbb, 0xbf };
- var inputEnd = Encoding.UTF8.GetBytes("");
- var expectedBytes = new byte[sampleString.Length + bom.Length];
-
- var contentBytes = new byte[inputStart.Length + bom.Length + inputEnd.Length];
- Buffer.BlockCopy(inputStart, 0, contentBytes, 0, inputStart.Length);
- Buffer.BlockCopy(bom, 0, contentBytes, inputStart.Length, bom.Length);
- Buffer.BlockCopy(inputEnd, 0, contentBytes, inputStart.Length + bom.Length, inputEnd.Length);
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelTwo));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- var levelTwoModel = model as TestLevelTwo;
- Buffer.BlockCopy(sampleStringBytes, 0, expectedBytes, 0, sampleStringBytes.Length);
- Buffer.BlockCopy(bom, 0, expectedBytes, sampleStringBytes.Length, bom.Length);
- Assert.Equal(expectedBytes, Encoding.UTF8.GetBytes(levelTwoModel.SampleString));
- }
-
- [Fact]
- public async Task XmlDataContractSerializerAcceptsUTF16Characters()
- {
- // Arrange
- var expectedInt = 10;
- var expectedString = "TestString";
-
- var input = "" +
- "" + expectedInt + "" +
- "" + expectedString + "";
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encodings.UTF16EncodingLittleEndian.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(TestLevelOne));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
-
- var levelOneModel = model as TestLevelOne;
- Assert.Equal(expectedInt, levelOneModel.SampleInt);
- Assert.Equal(expectedString, levelOneModel.sampleString);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterThrowsWhenNotConfiguredWithRootName()
- {
- // TODO: Test on Mono platform
-
- // Arrange
- const string SubstituteRootName = "SomeOtherClass";
- const string SubstituteRootNamespace = "http://tempuri.org";
-
- var input = string.Format(
- "<{0} xmlns=\"{1}\">1{0}>",
- SubstituteRootName,
- SubstituteRootNamespace);
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
- // Act & Assert
- await Assert.ThrowsAsync(typeof(SerializationException), async () => await formatter.ReadAsync(context));
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterReadsWhenConfiguredWithRootName()
- {
- // Arrange
- var expectedInt = 10;
- const string SubstituteRootName = "SomeOtherClass";
- const string SubstituteRootNamespace = "http://tempuri.org";
-
- var input = string.Format(
- "<{0} xmlns=\"{1}\">{2}{0}>",
- SubstituteRootName,
- SubstituteRootNamespace,
- expectedInt);
-
- var dictionary = new XmlDictionary();
- var settings = new DataContractSerializerSettings
- {
- RootName = dictionary.Add(SubstituteRootName),
- RootNamespace = dictionary.Add(SubstituteRootNamespace)
- };
- var formatter = new XmlDataContractSerializerInputFormatter
- {
- SerializerSettings = settings
- };
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
-
- var dummyModel = model as DummyClass;
- Assert.Equal(expectedInt, dummyModel.SampleInt);
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterThrowsWhenNotConfiguredWithKnownTypes()
- {
- // TODO: Test on Mono platform
-
- // Arrange
- const string KnownTypeName = "SomeDummyClass";
- const string InstanceNamespace = "http://www.w3.org/2001/XMLSchema-instance";
-
- var input = string.Format(
- "1"
- + "TestString",
- KnownTypeName,
- InstanceNamespace);
-
- var formatter = new XmlDataContractSerializerInputFormatter();
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
- // Act & Assert
- await Assert.ThrowsAsync(typeof(SerializationException), async () => await formatter.ReadAsync(context));
- }
-
- [Fact]
- public async Task XmlDataContractSerializerFormatterReadsWhenConfiguredWithKnownTypes()
- {
- // Arrange
- var expectedInt = 10;
- var expectedString = "TestString";
- const string KnownTypeName = "SomeDummyClass";
- const string InstanceNamespace = "http://www.w3.org/2001/XMLSchema-instance";
-
- var input = string.Format(
- "{2}"
- + "{3}",
- KnownTypeName,
- InstanceNamespace,
- expectedInt,
- expectedString);
- var settings = new DataContractSerializerSettings
- {
- KnownTypes = new[] { typeof(SomeDummyClass) }
- };
- var formatter = new XmlDataContractSerializerInputFormatter
- {
- SerializerSettings = settings
- };
- var contentBytes = Encoding.UTF8.GetBytes(input);
- var context = GetInputFormatterContext(contentBytes, typeof(DummyClass));
-
- // Act
- var model = await formatter.ReadAsync(context);
-
- // Assert
- Assert.NotNull(model);
- Assert.IsType(model);
-
- var dummyModel = model as SomeDummyClass;
- Assert.Equal(expectedInt, dummyModel.SampleInt);
- Assert.Equal(expectedString, dummyModel.SampleString);
- }
-
- private InputFormatterContext GetInputFormatterContext(byte[] contentBytes, Type modelType)
- {
- var actionContext = GetActionContext(contentBytes);
- var metadata = new EmptyModelMetadataProvider().GetMetadataForType(null, modelType);
- return new InputFormatterContext(actionContext, metadata.ModelType);
- }
-
- private static ActionContext GetActionContext(byte[] contentBytes,
- string contentType = "application/xml")
- {
- return new ActionContext(GetHttpContext(contentBytes, contentType),
- new AspNet.Routing.RouteData(),
- new ActionDescriptor());
- }
- private static HttpContext GetHttpContext(byte[] contentBytes,
- string contentType = "application/xml")
- {
- var request = new Mock();
- var headers = new Mock();
- request.SetupGet(r => r.Headers).Returns(headers.Object);
- request.SetupGet(f => f.Body).Returns(new MemoryStream(contentBytes));
- request.SetupGet(f => f.ContentType).Returns(contentType);
-
- var httpContext = new Mock();
- httpContext.SetupGet(c => c.Request).Returns(request.Object);
- httpContext.SetupGet(c => c.Request).Returns(request.Object);
- return httpContext.Object;
- }
- }
-}
-#endif
diff --git a/test/XmlDataContractSerializerOutputFormatterTests.cs b/test/XmlDataContractSerializerOutputFormatterTests.cs
deleted file mode 100644
index e5c95f1047..0000000000
--- a/test/XmlDataContractSerializerOutputFormatterTests.cs
+++ /dev/null
@@ -1,555 +0,0 @@
-// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.AspNet.Http;
-using Microsoft.AspNet.Http.Core.Collections;
-using Microsoft.Net.Http.Headers;
-using Moq;
-using Xunit;
-using System.Xml;
-
-namespace Microsoft.AspNet.Mvc.Core
-{
- public class XmlDataContractSerializerOutputFormatterTests
- {
- [DataContract(Name = "DummyClass", Namespace = "")]
- public class DummyClass
- {
- [DataMember]
- public int SampleInt { get; set; }
- }
-
- [DataContract(Name = "SomeDummyClass", Namespace = "")]
- public class SomeDummyClass : DummyClass
- {
- [DataMember]
- public string SampleString { get; set; }
- }
-
- [DataContract(Name = "TestLevelOne", Namespace = "")]
- public class TestLevelOne
- {
- [DataMember]
- public int SampleInt { get; set; }
- [DataMember]
- public string sampleString;
- }
-
- [DataContract(Name = "TestLevelTwo", Namespace = "")]
- public class TestLevelTwo
- {
- [DataMember]
- public string SampleString { get; set; }
- [DataMember]
- public TestLevelOne TestOne { get; set; }
- }
-
- [DataContract(Name = "Child", Namespace = "")]
- public class Child
- {
- [DataMember]
- public int Id { get; set; }
- [DataMember]
- public Parent Parent { get; set; }
- }
-
- [DataContract(Name = "Parent", Namespace = "")]
- public class Parent
- {
- [DataMember]
- public string Name { get; set; }
- [DataMember]
- public List Children { get; set; }
- }
-
- public static IEnumerable