public void TestGetStateByRangeWithPagination()
        {
            ChaincodeStub stub     = new ChaincodeStub("myc", "txId", handler.Object, new List <ByteString>(), null);
            string        startKey = "START";
            string        endKey   = "END";

            KV[]          keyValues = PrepareKeyValuePairs(2);
            QueryResponse value     = PrepareQueryResponseForRange(keyValues, true);


            QueryMetadata queryMetadata = new QueryMetadata {
                Bookmark = "aaaa", PageSize = 1
            };

            handler.Setup((a) => a.GetStateByRangeAsync("myc", "txId", "", startKey, endKey, queryMetadata.ToByteString(), token)).ReturnsAsync(value);
            IQueryResultsEnumerable <IKeyValue> queryResultsIterator = stub.GetStateByRangeWithPagination(startKey, endKey, 1, "aaaa");

            Assert.That.Contains(queryResultsIterator, keyValues.Select(a => new KeyValue(a)));
            Assert.AreEqual(queryResultsIterator.GetMetadata().FetchedRecordsCount, 2);
            Assert.AreEqual(queryResultsIterator.GetMetadata().Bookmark, "bbbb");
        }