public void ReadJsonLight() { // Arrange var deserializer = new ODataEntityReferenceLinkDeserializer(); MockODataRequestMessage requestMessage = new MockODataRequestMessage(); ODataMessageWriterSettings writerSettings = new ODataMessageWriterSettings(); writerSettings.SetContentType(ODataFormat.Json); IEdmModel model = CreateModel(); ODataMessageWriter messageWriter = new ODataMessageWriter(requestMessage, writerSettings, model); messageWriter.WriteEntityReferenceLink(new ODataEntityReferenceLink { Url = new Uri("http://localhost/samplelink") }); ODataMessageReader messageReader = new ODataMessageReader(new MockODataRequestMessage(requestMessage), new ODataMessageReaderSettings(), model); IEdmNavigationProperty navigationProperty = GetNavigationProperty(model); var request = RequestFactory.Create("Get", "http://localhost", opt => opt.AddModel("odata", model)); request.ODataFeature().PrefixName = "odata"; ODataDeserializerContext context = new ODataDeserializerContext { Request = request, Path = new ODataPath(new NavigationPropertySegment(navigationProperty, navigationSource: null)) }; // Act Uri uri = deserializer.Read(messageReader, typeof(Uri), context) as Uri; // Assert Assert.NotNull(uri); Assert.Equal("http://localhost/samplelink", uri.AbsoluteUri); }
public void Read_ThrowsArgumentNull_MessageReader() { var deserializer = new ODataEntityReferenceLinkDeserializer(); ExceptionAssert.ThrowsArgumentNull( () => deserializer.Read(messageReader: null, type: null, readContext: new ODataDeserializerContext()), "messageReader"); }
public void Ctor_DoesnotThrow() { // Arrange var deserializer = new ODataEntityReferenceLinkDeserializer(); // Act & Assert Assert.Equal(ODataPayloadKind.EntityReferenceLink, deserializer.ODataPayloadKind); }
public void Read_ThrowsArgumentNull_ReadContext() { var deserializer = new ODataEntityReferenceLinkDeserializer(); ODataMessageReader messageReader = ODataTestUtil.GetMockODataMessageReader(); ExceptionAssert.ThrowsArgumentNull( () => deserializer.Read(messageReader, type: null, readContext: null), "readContext"); }
public async Task ReadAsync_ThrowsArgumentNull_MessageReader() { // Arrange var deserializer = new ODataEntityReferenceLinkDeserializer(); // Act & Assert await ExceptionAssert.ThrowsArgumentNullAsync( () => deserializer.ReadAsync(messageReader: null, type: null, readContext: new ODataDeserializerContext()), "messageReader"); }
public async Task ReadAsync_ThrowsArgumentNull_ReadContext() { // Arrange var deserializer = new ODataEntityReferenceLinkDeserializer(); ODataMessageReader messageReader = ODataTestUtil.GetMockODataMessageReader(); // Act & Assert await ExceptionAssert.ThrowsArgumentNullAsync( () => deserializer.ReadAsync(messageReader, type: null, readContext: null), "readContext"); }
public void Read_RoundTrips() { // Arrange IEdmModel model = CreateModel(); var deserializer = new ODataEntityReferenceLinkDeserializer(); MockODataRequestMessage requestMessage = new MockODataRequestMessage(); ODataMessageWriterSettings settings = new ODataMessageWriterSettings() { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; settings.SetContentType(ODataFormat.Json); ODataMessageWriter messageWriter = new ODataMessageWriter(requestMessage, settings); messageWriter.WriteEntityReferenceLink(new ODataEntityReferenceLink { Url = new Uri("http://localhost/samplelink") }); var config = RoutingConfigurationFactory.CreateWithRootContainer("OData"); var request = RequestFactory.Create(config, "OData"); ODataMessageReaderSettings readSettings = new ODataMessageReaderSettings(); ODataMessageReader messageReader = new ODataMessageReader(new MockODataRequestMessage(requestMessage), readSettings, model); ODataDeserializerContext context = new ODataDeserializerContext { Request = request, Path = new ODataPath(new NavigationPropertySegment(GetNavigationProperty(model), navigationSource: null)) }; // Act Uri uri = deserializer.Read(messageReader, typeof(Uri), context) as Uri; // Assert Assert.NotNull(uri); Assert.Equal("http://localhost/samplelink", uri.AbsoluteUri); }
public async Task ReadAsync_RoundTrips() { // Arrange IEdmModel model = CreateModel(); var deserializer = new ODataEntityReferenceLinkDeserializer(); MockODataRequestMessage requestMessage = new MockODataRequestMessage(); ODataMessageWriterSettings settings = new ODataMessageWriterSettings() { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; settings.SetContentType(ODataFormat.Json); ODataMessageWriter messageWriter = new ODataMessageWriter(requestMessage, settings); await messageWriter.WriteEntityReferenceLinkAsync(new ODataEntityReferenceLink { Url = new Uri("http://localhost/samplelink") }); var request = RequestFactory.Create("Get", "http://localhost", opt => opt.AddModel("odata", model)); request.ODataFeature().PrefixName = "odata"; ODataMessageReaderSettings readSettings = new ODataMessageReaderSettings(); ODataMessageReader messageReader = new ODataMessageReader(new MockODataRequestMessage(requestMessage), readSettings, model); ODataDeserializerContext context = new ODataDeserializerContext { Request = request, Path = new ODataPath(new NavigationPropertySegment(GetNavigationProperty(model), navigationSource: null)) }; // Act Uri uri = await deserializer.ReadAsync(messageReader, typeof(Uri), context) as Uri; // Assert Assert.NotNull(uri); Assert.Equal("http://localhost/samplelink", uri.AbsoluteUri); }