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_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_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);
        }