public void ReadFeed_Calls_ReadInlineForEachEntry() { // Arrange Mock <ODataDeserializerProvider> deserializerProvider = new Mock <ODataDeserializerProvider>(); Mock <ODataEdmTypeDeserializer> entityDeserializer = new Mock <ODataEdmTypeDeserializer>(ODataPayloadKind.Entry); ODataFeedDeserializer deserializer = new ODataFeedDeserializer(deserializerProvider.Object); ODataFeedWithEntries feedWrapper = new ODataFeedWithEntries(new ODataFeed()); feedWrapper.Entries.Add(new ODataEntryWithNavigationLinks(new ODataEntry { Id = new Uri("http://a1/") })); feedWrapper.Entries.Add(new ODataEntryWithNavigationLinks(new ODataEntry { Id = new Uri("http://a2/") })); ODataDeserializerContext readContext = new ODataDeserializerContext(); deserializerProvider.Setup(p => p.GetEdmTypeDeserializer(_customerType)).Returns(entityDeserializer.Object); entityDeserializer.Setup(d => d.ReadInline(feedWrapper.Entries[0], _customerType, readContext)).Returns("entry1").Verifiable(); entityDeserializer.Setup(d => d.ReadInline(feedWrapper.Entries[1], _customerType, readContext)).Returns("entry2").Verifiable(); // Act var result = deserializer.ReadFeed(feedWrapper, _customerType, readContext); // Assert Assert.Equal(new[] { "entry1", "entry2" }, result.OfType <String>()); entityDeserializer.Verify(); }
public void ReadFeed_Throws_TypeCannotBeDeserialized() { Mock <ODataDeserializerProvider> deserializerProvider = new Mock <ODataDeserializerProvider>(); ODataFeedDeserializer deserializer = new ODataFeedDeserializer(deserializerProvider.Object); ODataFeedWithEntries feedWrapper = new ODataFeedWithEntries(new ODataFeed()); ODataDeserializerContext readContext = new ODataDeserializerContext(); deserializerProvider.Setup(p => p.GetEdmTypeDeserializer(_customerType)).Returns <ODataEdmTypeDeserializer>(null); Assert.Throws <SerializationException>( () => deserializer.ReadFeed(feedWrapper, _customerType, readContext).GetEnumerator().MoveNext(), "'System.Web.OData.TestCommon.Models.Customer' cannot be deserialized using the ODataMediaTypeFormatter."); }
public void ReadFeed_Throws_TypeCannotBeDeserialized() { Mock<ODataDeserializerProvider> deserializerProvider = new Mock<ODataDeserializerProvider>(); ODataFeedDeserializer deserializer = new ODataFeedDeserializer(deserializerProvider.Object); ODataFeedWithEntries feedWrapper = new ODataFeedWithEntries(new ODataFeed()); ODataDeserializerContext readContext = new ODataDeserializerContext(); deserializerProvider.Setup(p => p.GetEdmTypeDeserializer(_customerType)).Returns<ODataEdmTypeDeserializer>(null); Assert.Throws<SerializationException>( () => deserializer.ReadFeed(feedWrapper, _customerType, readContext).GetEnumerator().MoveNext(), "'System.Web.OData.TestCommon.Models.Customer' cannot be deserialized using the ODataMediaTypeFormatter."); }
public void ReadFeed_Calls_ReadInlineForEachEntry() { // Arrange Mock<ODataDeserializerProvider> deserializerProvider = new Mock<ODataDeserializerProvider>(); Mock<ODataEdmTypeDeserializer> entityDeserializer = new Mock<ODataEdmTypeDeserializer>(ODataPayloadKind.Entry); ODataFeedDeserializer deserializer = new ODataFeedDeserializer(deserializerProvider.Object); ODataFeedWithEntries feedWrapper = new ODataFeedWithEntries(new ODataFeed()); feedWrapper.Entries.Add(new ODataEntryWithNavigationLinks(new ODataEntry { Id = new Uri("http://a1/") })); feedWrapper.Entries.Add(new ODataEntryWithNavigationLinks(new ODataEntry { Id = new Uri("http://a2/") })); ODataDeserializerContext readContext = new ODataDeserializerContext(); deserializerProvider.Setup(p => p.GetEdmTypeDeserializer(_customerType)).Returns(entityDeserializer.Object); entityDeserializer.Setup(d => d.ReadInline(feedWrapper.Entries[0], _customerType, readContext)).Returns("entry1").Verifiable(); entityDeserializer.Setup(d => d.ReadInline(feedWrapper.Entries[1], _customerType, readContext)).Returns("entry2").Verifiable(); // Act var result = deserializer.ReadFeed(feedWrapper, _customerType, readContext); // Assert Assert.Equal(new[] { "entry1", "entry2" }, result.OfType<String>()); entityDeserializer.Verify(); }