コード例 #1
0
        public async Task Return_Null_on_Null_Streams()
        {
            var pagingService = new ODataPagingService();

            var response = await pagingService.MergeJsonStreamsAsync(null, null);

            Assert.Null(response);
        }
コード例 #2
0
        public async Task Return_Right_on_Null_Left_Stream()
        {
            var pagingService = new ODataPagingService();

            using var ms = new MemoryStream(Encoding.UTF8.GetBytes("{\"value\": [20]}"));
            var response = await pagingService.MergeJsonStreamsAsync(null, ms);

            Assert.Equal(ms, response);
        }
コード例 #3
0
        public async Task Return_Null_on_No_Next_Link()
        {
            var pagingService = new ODataPagingService();
            var requestInfo   = new RequestInformation();
            var pagingData    = new PageLinkData(requestInfo, null);

            var nextLink = await pagingService.GetNextPageLinkAsync(pagingData);

            Assert.Null(nextLink);
        }
コード例 #4
0
        public async Task Return_Left_On_Null_Data_In_Right_Stream()
        {
            var pagingService = new ODataPagingService();

            using var leftMs  = new MemoryStream(Encoding.UTF8.GetBytes("{\"value\": [20]}"));
            using var rightMs = new MemoryStream(Encoding.UTF8.GetBytes("{\"value\": null}"));
            var response = await pagingService.MergeJsonStreamsAsync(leftMs, rightMs);

            using var reader = new StreamReader(response ?? Stream.Null);
            var result = await reader.ReadToEndAsync();

            Assert.Equal("{\"value\": [20]}", result);
        }
コード例 #5
0
        public async Task Return_Null_On_Next_Link_Missing()
        {
            var pagingService = new ODataPagingService();
            var bytes         = Encoding.UTF8.GetBytes("{}");

            using var ms = new MemoryStream(bytes);
            var requestInfo = new RequestInformation();
            var pagingData  = new PageLinkData(requestInfo, ms);

            var nextLink = await pagingService.GetNextPageLinkAsync(pagingData);

            Assert.Null(nextLink);
        }
コード例 #6
0
        public async Task Return_With_Next_Link_From_Right_Stream(string left, string right, string expected)
        {
            var pagingService = new ODataPagingService();

            using var leftMs  = new MemoryStream(Encoding.UTF8.GetBytes(left));
            using var rightMs = new MemoryStream(Encoding.UTF8.GetBytes(right));
            var response = await pagingService.MergeJsonStreamsAsync(leftMs, rightMs);

            using var reader = new StreamReader(response ?? Stream.Null);
            var result = await reader.ReadToEndAsync();

            Assert.Equal(expected, result);
        }
コード例 #7
0
        public async Task Return_Next_Link_From_Response()
        {
            var pagingService = new ODataPagingService();
            var bytes         = Encoding.UTF8.GetBytes("{\"nextLink\": \"https://testlink\"}");

            using var ms = new MemoryStream(bytes);
            var requestInfo = new RequestInformation();

            requestInfo.Headers.Add("Accept", "application/json");
            var pagingData = new PageLinkData(requestInfo, ms);

            pagingData.ResponseContentHeaders.Add("Content-Type", new string[] { "application/json" });

            var nextLink = await pagingService.GetNextPageLinkAsync(pagingData);

            Assert.Equal(new Uri("https://testlink"), nextLink);
        }