public async Task Return_Null_on_Null_Streams() { var pagingService = new ODataPagingService(); var response = await pagingService.MergeJsonStreamsAsync(null, null); Assert.Null(response); }
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); }
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); }
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); }
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); }
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); }
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); }