public async Task FormatterShouldBeAbleToDeserializeArticle() { var content = new ObjectContent <Article>(article, formatter); var deserializedItem = await content.ReadAsAsync <Article>(new[] { formatter }); Assert.That(article, Is.SameAs(deserializedItem)); }
public void ReadAsAsyncOfT_WhenContentIsObjectContent_GoesThroughSerializationCycleToConvertTypes() { var content = new ObjectContent<int[]>(new int[] { 10, 20, 30, 40 }, new JsonMediaTypeFormatter()); byte[] result = content.ReadAsAsync<byte[]>().Result; Assert.Equal(new byte[] { 10, 20, 30, 40 }, result); }
public async void WhenUsedToDeserializeShouldCreateCorrectObject() { var formatter = new ProtoBufFormatter(); var item = new Item { Id = 1, Name = "Filip" }; var content = new ObjectContent<Item>(item, formatter); var deserializedItem = await content.ReadAsAsync<Item>(new[] {formatter}); Assert.Same(item, deserializedItem); }
public HttpResponseMessage Post(ObjectContent <Model> c) { Model m = c.ReadAsAsync().Result; Console.WriteLine("x = {0}, y = {1}, z = {2}", m.x, m.y, m.z); return(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK }); }
public async void WhenUsedToDeserializeShouldCreateCorrectObject() { var formatter = new ProtoBufFormatter(); var item = new Item { Id = 1, Name = "Filip" }; var content = new ObjectContent <Item>(item, formatter); var deserializedItem = await content.ReadAsAsync <Item>(new[] { formatter }); Assert.Same(item, deserializedItem); }
public void ReadAsAsync_WhenContentIsObjectContentAndValueIsNotCompatibleType_SerializesAndDeserializesValue() { _formatterMock.Setup(f => f.CanWriteType(typeof(TestClass))).Returns(true); _formatterMock.Setup(f => f.CanReadType(typeof(string))).Returns(true); var value = new TestClass(); var content = new ObjectContent<TestClass>(value, _formatterMock.Object, _mediaType.MediaType); SetupUpRoundTripSerialization(type => new TestClass()); Assert.Throws<InvalidCastException>(() => content.ReadAsAsync<string>(_formatters).RethrowFaultedTaskException()); Assert.IsNotType<string>(content.ReadAsAsync(typeof(string), _formatters).Result); _formatterMock.Verify(f => f.ReadFromStreamAsync(It.IsAny<Type>(), It.IsAny<Stream>(), content.Headers, It.IsAny<IFormatterLogger>()), Times.Exactly(2)); }
public void ReadAsAsync_WhenContentIsObjectContentAndValueIsNull_IfTypeIsNotNullable_SerializesAndDeserializesValue() { _formatterMock.Setup(f => f.CanWriteType(typeof(object))).Returns(true); _formatterMock.Setup(f => f.CanReadType(typeof(Int32))).Returns(true); var content = new ObjectContent<object>(null, _formatterMock.Object, _mediaType.MediaType); SetupUpRoundTripSerialization(); Assert.IsType<Int32>(content.ReadAsAsync<Int32>(_formatters).Result); Assert.IsType<Int32>(content.ReadAsAsync(typeof(Int32), _formatters).Result); _formatterMock.Verify(f => f.ReadFromStreamAsync(It.IsAny<Type>(), It.IsAny<Stream>(), content.Headers, It.IsAny<IFormatterLogger>()), Times.Exactly(2)); }
public void ReadAsAsync_WhenContentIsObjectContentAndValueIsNull_IfTypeIsNullable_SerializesAndDeserializesValue() { _formatterMock.Setup(f => f.CanWriteType(typeof(object))).Returns(true); _formatterMock.Setup(f => f.CanReadType(It.IsAny<Type>())).Returns(true); var content = new ObjectContent<object>(null, _formatterMock.Object); SetupUpRoundTripSerialization(type => null); Assert.Null(content.ReadAsAsync<object>(_formatters).Result); Assert.Null(content.ReadAsAsync<TestClass>(_formatters).Result); Assert.Null(content.ReadAsAsync<Nullable<int>>(_formatters).Result); Assert.Null(content.ReadAsAsync(typeof(object), _formatters).Result); Assert.Null(content.ReadAsAsync(typeof(TestClass), _formatters).Result); Assert.Null(content.ReadAsAsync(typeof(Nullable<int>), _formatters).Result); _formatterMock.Verify(f => f.ReadFromStreamAsync(It.IsAny<Type>(), It.IsAny<Stream>(), content.Headers, It.IsAny<IFormatterLogger>()), Times.Exactly(6)); }
public void ReadAsAsync_WhenContentIsObjectContentAndValueIsCompatibleType_ReadsValueFromObjectContent() { _formatterMock.Setup(f => f.CanWriteType(typeof(TestClass))).Returns(true); var value = new TestClass(); var content = new ObjectContent<TestClass>(value, _formatterMock.Object); Assert.Same(value, content.ReadAsAsync<object>(_formatters).Result); Assert.Same(value, content.ReadAsAsync<TestClass>(_formatters).Result); Assert.Same(value, content.ReadAsAsync(typeof(object), _formatters).Result); Assert.Same(value, content.ReadAsAsync(typeof(TestClass), _formatters).Result); _formatterMock.Verify(f => f.ReadFromStreamAsync(It.IsAny<Type>(), It.IsAny<Stream>(), content.Headers, It.IsAny<IFormatterLogger>()), Times.Never()); }