public async Task ReadFromStreamAsync_RoundTripsWriteToStreamAsyncUsingXmlSerializer_ExtraTypes( Type variationType, object testData ) { // Guard bool canSerialize = IsSerializableWithXmlSerializer(variationType, testData) && Assert.Http.CanRoundTrip(variationType); if (canSerialize) { // Arrange TestXmlSerializerMediaTypeFormatter formatter = new TestXmlSerializerMediaTypeFormatter(); formatter.SetSerializer( variationType, new XmlSerializer(variationType, new Type[] { typeof(DBNull), }) ); // Arrange & Act & Assert object readObj = await ReadFromStreamAsync_RoundTripsWriteToStreamAsync_Helper( formatter, variationType, testData ); Assert.Equal(testData, readObj); } }
public async Task ReadFromStreamAsync_RoundTripsWriteToStreamAsyncUsingXmlSerializer_DBNull() { // Arrange TestXmlSerializerMediaTypeFormatter formatter = new TestXmlSerializerMediaTypeFormatter(); Type variationType = typeof(DBNull); formatter.SetSerializer(variationType, new XmlSerializer(variationType)); object testData = DBNull.Value; // Arrange & Act & Assert object readObj = await ReadFromStreamAsync_RoundTripsWriteToStreamAsync_Helper(formatter, variationType, testData); Assert.Equal(testData, readObj); }
public void CanReadType_ReturnsSameResultAsXmlSerializerConstructor(Type variationType, object testData) { TestXmlSerializerMediaTypeFormatter formatter = new TestXmlSerializerMediaTypeFormatter(); bool isSerializable = IsSerializableWithXmlSerializer(variationType, testData); bool canSupport = formatter.CanReadTypeCaller(variationType); if (isSerializable != canSupport) { Assert.Equal(isSerializable, canSupport); } // Ask a 2nd time to probe whether the cached result is treated the same canSupport = formatter.CanReadTypeCaller(variationType); Assert.Equal(isSerializable, canSupport); }
public void ReadFromStreamAsync_RoundTripsWriteToStreamAsyncUsingXmlSerializer(Type variationType, object testData) { TestXmlSerializerMediaTypeFormatter formatter = new TestXmlSerializerMediaTypeFormatter(); HttpContent content = new StringContent(String.Empty); HttpContentHeaders contentHeaders = content.Headers; bool canSerialize = IsSerializableWithXmlSerializer(variationType, testData) && Assert.Http.CanRoundTrip(variationType); if (canSerialize) { formatter.SetSerializer(variationType, new XmlSerializer(variationType)); object readObj = null; Assert.Stream.WriteAndRead( stream => { Assert.Task.Succeeds(formatter.WriteToStreamAsync(variationType, testData, stream, content, transportContext: null)); contentHeaders.ContentLength = stream.Length; }, stream => readObj = Assert.Task.SucceedsWithResult(formatter.ReadFromStreamAsync(variationType, stream, content, null))); Assert.Equal(testData, readObj); } }