public void WriteObjectInline_WritesEachEntityInstance() { // Arrange SpyODataSerializer spy = new SpyODataSerializer(ODataPayloadKind.Entry); ODataSerializerProvider provider = new FakeODataSerializerProvider(spy); var mockWriter = new Mock<ODataWriter>(); mockWriter .Setup(w => w.WriteStart(It.IsAny<ODataFeed>())) .Callback((ODataFeed feed) => { Assert.Equal("http://schemas.datacontract.org/2004/07/", feed.Id); }) .Verifiable(); _serializer = new ODataFeedSerializer(_customersType, provider); // Act _serializer.WriteObjectInline(_customers, mockWriter.Object, _writeContext); // Assert WriteObjectInlineCall[] expectedWriteCalls = new WriteObjectInlineCall[] { new WriteObjectInlineCall { Graph = _customers[0], WriteContext = _writeContext }, new WriteObjectInlineCall { Graph = _customers[1], WriteContext = _writeContext } }; AssertEqual(expectedWriteCalls, spy.WriteObjectInlineCalls); mockWriter.Verify(); }
public void WriteObjectInline_Writes_InlineCountAndNextLink() { // Arrange SpyODataSerializer spy = new SpyODataSerializer(ODataPayloadKind.Entry); ODataSerializerProvider provider = new FakeODataSerializerProvider(spy); var mockWriter = new Mock<ODataWriter>(); Uri expectedNextLink = new Uri("http://nextlink.com"); long expectedInlineCount = 1000; var result = new PageResult<Customer>( _customers, expectedNextLink, expectedInlineCount ); ODataFeed actualFeed = null; mockWriter .Setup(m => m.WriteStart(It.IsAny<ODataFeed>())) .Callback((ODataFeed feed) => { actualFeed = feed; Assert.Equal(expectedInlineCount, feed.Count); }); _serializer = new ODataFeedSerializer(_customersType, provider); _serializer.WriteObjectInline(result, mockWriter.Object, _writeContext); // Assert WriteObjectInlineCall[] expectedWriteCalls = new WriteObjectInlineCall[] { new WriteObjectInlineCall { Graph = _customers[0], WriteContext = _writeContext }, new WriteObjectInlineCall { Graph = _customers[1], WriteContext = _writeContext } }; AssertEqual(expectedWriteCalls, spy.WriteObjectInlineCalls); mockWriter.Verify(); Assert.Equal(expectedNextLink, actualFeed.NextPageLink); }