public void Read_Roundtrip_EnumCollection() { // Arrange Color[] colors = { Color.Blue, Color.Green }; ODataCollectionSerializer serializer = new ODataCollectionSerializer(SerializerProvider); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(DeserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); ODataMessageWriterSettings settings = new ODataMessageWriterSettings { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; ODataMessageWriter messageWriter = new ODataMessageWriter(message as IODataResponseMessage, settings, Model); ODataMessageReader messageReader = new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), Model); ODataSerializerContext writeContext = new ODataSerializerContext { RootElementName = "Property", Model = Model }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = Model }; // Act serializer.WriteObject(colors, colors.GetType(), messageWriter, writeContext); stream.Seek(0, SeekOrigin.Begin); IEnumerable readAddresses = deserializer.Read(messageReader, typeof(Color[]), readContext) as IEnumerable; // Assert Assert.Equal(colors, readAddresses.Cast <Color>()); }
public void Read_Roundtrip_ComplexCollection() { Address[] addresses = new[] { new Address { City = "Redmond", ZipCode = "1", Street = "A", State = "123" }, new Address { City = "Seattle", ZipCode = "2", Street = "S", State = "321" } }; ODataCollectionSerializer serializer = new ODataCollectionSerializer(_addressCollectionType, new DefaultODataSerializerProvider(_model)); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(_addressCollectionType, _deserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); serializer.WriteObject(addresses, new ODataMessageWriter(message as IODataResponseMessage, new ODataMessageWriterSettings(), _model), new ODataSerializerContext { ServiceOperationName = "Property" }); stream.Seek(0, SeekOrigin.Begin); IEnumerable readAddresses = deserializer.Read(new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), _model), new ODataDeserializerContext()) as IEnumerable; Assert.Equal(addresses, readAddresses.Cast <Address>(), new AddressComparer()); }
public void Read_Roundtrip_PrimitiveCollection() { // Arrange int[] numbers = Enumerable.Range(0, 100).ToArray(); ODataCollectionSerializer serializer = new ODataCollectionSerializer(SerializerProvider); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(DeserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); ODataMessageWriterSettings settings = new ODataMessageWriterSettings { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; ODataMessageWriter messageWriter = new ODataMessageWriter(message as IODataResponseMessage, settings, Model); ODataMessageReader messageReader = new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), Model); ODataSerializerContext writeContext = new ODataSerializerContext { RootElementName = "Property", Model = Model }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = Model }; // Act serializer.WriteObject(numbers, numbers.GetType(), messageWriter, writeContext); stream.Seek(0, SeekOrigin.Begin); IEnumerable readnumbers = deserializer.Read(messageReader, typeof(int[]), readContext) as IEnumerable; // Assert Assert.Equal(numbers, readnumbers.Cast <int>()); }
public void Read_Roundtrip_PrimitiveCollection() { int[] numbers = Enumerable.Range(0, 100).ToArray(); ODataCollectionSerializer serializer = new ODataCollectionSerializer(new DefaultODataSerializerProvider()); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(_deserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); ODataMessageWriter messageWriter = new ODataMessageWriter(message as IODataResponseMessage, new ODataMessageWriterSettings(), _model); ODataMessageReader messageReader = new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), _model); ODataSerializerContext writeContext = new ODataSerializerContext { RootElementName = "Property", Model = _model }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = _model }; serializer.WriteObject(numbers, numbers.GetType(), messageWriter, writeContext); stream.Seek(0, SeekOrigin.Begin); IEnumerable readnumbers = deserializer.Read(messageReader, typeof(int[]), readContext) as IEnumerable; Assert.Equal(numbers, readnumbers.Cast <int>()); }
public void WriteObject_Throws_ArgumentNull_MessageWriter() { // Arrange ODataSerializerProvider provider = new Mock <ODataSerializerProvider>().Object; ODataCollectionSerializer serializer = new ODataCollectionSerializer(provider); // Act & Assert ExceptionAssert.ThrowsArgumentNull( () => serializer.WriteObject(graph: null, type: typeof(int[]), messageWriter: null, writeContext: null), "messageWriter"); }
public void Read_Roundtrip_PrimitiveCollection() { int[] numbers = Enumerable.Range(0, 100).ToArray(); ODataCollectionSerializer serializer = new ODataCollectionSerializer(_intCollectionType, new DefaultODataSerializerProvider(_model)); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(_intCollectionType, _deserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); serializer.WriteObject(numbers, new ODataMessageWriter(message as IODataResponseMessage, new ODataMessageWriterSettings(), _model), new ODataSerializerContext { ServiceOperationName = "Property" }); stream.Seek(0, SeekOrigin.Begin); IEnumerable readnumbers = deserializer.Read(new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), _model), new ODataDeserializerContext()) as IEnumerable; Assert.Equal(numbers, readnumbers.Cast <int>()); }
public void Read_Roundtrip_ComplexCollection() { Address[] addresses = new[] { new Address { City = "Redmond", ZipCode = "1", Street = "A", State = "123" }, new Address { City = "Seattle", ZipCode = "2", Street = "S", State = "321" } }; ODataCollectionSerializer serializer = new ODataCollectionSerializer(new DefaultODataSerializerProvider()); ODataCollectionDeserializer deserializer = new ODataCollectionDeserializer(_deserializerProvider); MemoryStream stream = new MemoryStream(); ODataMessageWrapper message = new ODataMessageWrapper(stream); ODataMessageWriterSettings settings = new ODataMessageWriterSettings { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; ODataMessageWriter messageWriter = new ODataMessageWriter(message as IODataResponseMessage, settings, _model); ODataMessageReader messageReader = new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), _model); ODataSerializerContext writeContext = new ODataSerializerContext { RootElementName = "Property", Model = _model }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = _model }; serializer.WriteObject(addresses, addresses.GetType(), messageWriter, writeContext); stream.Seek(0, SeekOrigin.Begin); IEnumerable readAddresses = deserializer.Read(messageReader, typeof(Address[]), readContext) as IEnumerable; Assert.Equal(addresses, readAddresses.Cast <Address>(), new AddressComparer()); }
public void WriteObject_Throws_ArgumentNull_MessageWriter() { ExceptionAssert.ThrowsArgumentNull( () => _serializer.WriteObject(graph: null, type: typeof(int[]), messageWriter: null, writeContext: null), "messageWriter"); }