public async System.Threading.Tasks.Task CollectionReturnType_GetAsync()
        {
            using (var httpResponseMessage = new HttpResponseMessage())
                using (var responseStream = new MemoryStream())
                    using (var streamContent = new StreamContent(responseStream))
                    {
                        httpResponseMessage.Content = streamContent;

                        var nextQueryKey   = "key";
                        var nextQueryValue = "value";

                        var methodBaseUrl      = string.Format("{0}/me/microsoft.graph.reminderView", this.graphBaseUrl);
                        var requestUrl         = string.Format("{0}(startDateTime='now',endDateTime='later')", methodBaseUrl);
                        var nextPageRequestUrl = string.Format("{0}?{1}={2}", requestUrl, nextQueryKey, nextQueryValue);

                        this.httpProvider.Setup(
                            provider => provider.SendAsync(
                                It.Is <HttpRequestMessage>(
                                    request => request.RequestUri.ToString().StartsWith(requestUrl) &&
                                    request.Method == HttpMethod.Get),
                                HttpCompletionOption.ResponseContentRead,
                                CancellationToken.None))
                        .Returns(System.Threading.Tasks.Task.FromResult(httpResponseMessage));

                        var userReminderViewCollectionPage = new UserReminderViewCollectionPage
                        {
                            new Reminder {
                                EventId = "id 1"
                            },
                            new Reminder {
                                EventId = "id 2"
                            },
                        };

                        var userReminderViewCollectionResponse = new UserReminderViewCollectionResponse
                        {
                            Value          = userReminderViewCollectionPage,
                            AdditionalData = new Dictionary <string, object> {
                                { "@odata.nextLink", nextPageRequestUrl }
                            },
                        };

                        this.serializer.Setup(
                            serializer => serializer.DeserializeObject <UserReminderViewCollectionResponse>(It.IsAny <string>()))
                        .Returns(userReminderViewCollectionResponse);

                        var returnedCollectionPage = await this.graphServiceClient.Me.ReminderView("now", "later").Request().GetAsync() as UserReminderViewCollectionPage;

                        Assert.NotNull(returnedCollectionPage);
                        Assert.Equal(userReminderViewCollectionPage, returnedCollectionPage);
                        Assert.Equal(
                            userReminderViewCollectionResponse.AdditionalData,
                            returnedCollectionPage.AdditionalData);

                        var nextPageRequest = returnedCollectionPage.NextPageRequest as UserReminderViewRequest;

                        Assert.NotNull(nextPageRequest);
                        Assert.Equal(new Uri(requestUrl), new Uri(nextPageRequest.RequestUrl));
                        Assert.Equal(1, nextPageRequest.QueryOptions.Count);
                        Assert.Equal(nextQueryKey, nextPageRequest.QueryOptions[0].Name);
                        Assert.Equal(nextQueryValue, nextPageRequest.QueryOptions[0].Value);
                    }
        }