private async Task ItemDeltaRequest_GetAsync(bool includeNextLink) { using (var httpResponseMessage = new HttpResponseMessage()) using (var responseStream = new MemoryStream()) using (var streamContent = new StreamContent(responseStream)) { httpResponseMessage.Content = streamContent; var requestUrl = "https://api.onedrive.com/v1.0/drive/items/id/oneDrive.delta"; this.httpProvider.Setup( provider => provider.SendAsync( It.Is <HttpRequestMessage>( request => request.RequestUri.ToString().StartsWith(requestUrl)), HttpCompletionOption.ResponseContentRead, CancellationToken.None)) .Returns(Task.FromResult(httpResponseMessage)); var expectedDeltaCollectionPage = new ItemDeltaCollectionPage { new Item { Id = "id" } }; var expectedDeltaResponse = new ItemDeltaCollectionResponse { DeltaLink = "deltaLink", Token = "nextToken", Value = expectedDeltaCollectionPage }; if (includeNextLink) { expectedDeltaResponse.AdditionalData = new Dictionary <string, object> { { "@odata.nextLink", requestUrl + "/next" } }; } this.serializer.Setup( serializer => serializer.DeserializeObject <ItemDeltaCollectionResponse>(It.IsAny <string>())) .Returns(expectedDeltaResponse); var deltaCollectionPage = await this.oneDriveClient.Drive.Items["id"].Delta("token").Request().GetAsync(); Assert.IsNotNull(deltaCollectionPage, "Collection page not returned."); Assert.AreEqual(1, deltaCollectionPage.CurrentPage.Count, "Unexpected number of items in page."); Assert.AreEqual("id", deltaCollectionPage.CurrentPage[0].Id, "Unexpected item ID in page."); Assert.AreEqual(expectedDeltaResponse.DeltaLink, deltaCollectionPage.DeltaLink, "Unexpected delta link in page."); Assert.AreEqual(expectedDeltaResponse.Token, deltaCollectionPage.Token, "Unexpected token in page."); if (includeNextLink) { var nextPageRequest = deltaCollectionPage.NextPageRequest as ItemDeltaRequest; Assert.IsNotNull(nextPageRequest, "Next page request not initialized correctly."); Assert.AreEqual(new Uri(requestUrl + "/next"), new Uri(nextPageRequest.RequestUrl), "Unexpected request URL for next page request."); Assert.AreEqual(expectedDeltaResponse.AdditionalData, deltaCollectionPage.AdditionalData, "Additional data not initialized correctly."); } } }
private async Task ItemDeltaRequest_GetAsync(bool includeNextLink) { using (var httpResponseMessage = new HttpResponseMessage()) using (var responseStream = new MemoryStream()) using (var streamContent = new StreamContent(responseStream)) { httpResponseMessage.Content = streamContent; var requestUrl = Constants.Authentication.OneDriveConsumerBaseUrl + "/drive/items/id/view.delta"; this.httpProvider.Setup( provider => provider.SendAsync( It.Is<HttpRequestMessage>( request => request.RequestUri.ToString().StartsWith(requestUrl)))) .Returns(Task.FromResult(httpResponseMessage)); var expectedDeltaCollectionPage = new ItemDeltaCollectionPage { new Item { Id = "id" } }; var expectedDeltaResponse = new ItemDeltaCollectionResponse { DeltaLink = "deltaLink", Token = "nextToken", Value = expectedDeltaCollectionPage }; if (includeNextLink) { expectedDeltaResponse.AdditionalData = new Dictionary<string, object> { { "@odata.nextLink", requestUrl + "/next" } }; } this.serializer.Setup( serializer => serializer.DeserializeObject<ItemDeltaCollectionResponse>(It.IsAny<string>())) .Returns(expectedDeltaResponse); var deltaCollectionPage = await this.oneDriveClient.Drive.Items["id"].Delta("token").Request().GetAsync(); Assert.IsNotNull(deltaCollectionPage, "Collection page not returned."); Assert.AreEqual(1, deltaCollectionPage.CurrentPage.Count, "Unexpected number of items in page."); Assert.AreEqual("id", deltaCollectionPage.CurrentPage[0].Id, "Unexpected item ID in page."); Assert.AreEqual(expectedDeltaResponse.DeltaLink, deltaCollectionPage.DeltaLink, "Unexpected delta link in page."); Assert.AreEqual(expectedDeltaResponse.Token, deltaCollectionPage.Token, "Unexpected token in page."); if (includeNextLink) { var nextPageRequest = deltaCollectionPage.NextPageRequest as ItemDeltaRequest; Assert.IsNotNull(nextPageRequest, "Next page request not initialized correctly."); Assert.AreEqual(new Uri(requestUrl + "/next"), new Uri(nextPageRequest.RequestUrl), "Unexpected request URL for next page request."); Assert.AreEqual(expectedDeltaResponse.AdditionalData, deltaCollectionPage.AdditionalData, "Additional data not initialized correctly."); } } }