public void TestFilterRowsRowRangesKeyInMiddle()
        {
            BigtableByteString key1         = "row1";
            BigtableByteString key2         = "row2";
            BigtableByteString key3         = "row3";
            BigtableByteString lastFoundKey = "row1a";

            RowSet fullRowSet = RowSet.FromRowKeys(key1, key2, key3);

            fullRowSet.RowRanges.Add(new[]
            {
                RowRange.OpenClosed(null, key1), // should be filtered out
                RowRange.Open(null, key1),       // should be filtered out
                RowRange.Open(key1, key2),       // should be converted (lastFoundKey, key2)
                RowRange.ClosedOpen(key1, key2), // should be converted (lastFoundKey, key2)
                RowRange.Closed(key1, key2),     // should be converted (lastFoundKey, key2]
                RowRange.Open(key2, key3),       // should stay
                RowRange.ClosedOpen(key2, key3)  // should stay
            });

            RowSet filteredRowSet = RowSet.FromRowKeys(key2, key3);

            filteredRowSet.RowRanges.Add(new[]
            {
                RowRange.Open(lastFoundKey, key2),       // should be converted (lastFoundKey, key2)
                RowRange.Open(lastFoundKey, key2),       // should be converted (lastFoundKey, key2)
                RowRange.OpenClosed(lastFoundKey, key2), // should be converted (lastFoundKey, key2]
                RowRange.Open(key2, key3),               // should stay
                RowRange.ClosedOpen(key2, key3)          // should stay
            });

            ReadRowsRequest originalRequest = new ReadRowsRequest {
                Rows = fullRowSet
            };
            ReadRowsRequest filteredRequest = new ReadRowsRequest {
                Rows = filteredRowSet
            };

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
            underTest.LastFoundKey = lastFoundKey;

            ReadRowsRequest originalRequestClone = originalRequest.Clone();

            // Assert that originalRequest and originalRequestClone are different objects.
            Assert.False(ReferenceEquals(originalRequest, originalRequestClone));
            // Assert that originalRequest and originalRequestClone have same value before calling BuildUpdatedRequest.
            Assert.Equal(originalRequest, originalRequestClone);

            Assert.Equal(filteredRequest, underTest.BuildUpdatedRequest());

            // Assert that BuildUpdatedRequest did not modify the original RowSet.
            Assert.Equal(originalRequest, originalRequestClone);
        }
        public void TestFilterRowsTestAllRange()
        {
            BigtableByteString key1 = "row1";

            ReadRowsRequest originalRequest = CreateRowRangeRequest(RowRange.ClosedOpen(null, null));

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            underTest.LastFoundKey = key1;
            Assert.Equal(CreateRowRangeRequest(RowRange.Open(key1, null)), underTest.BuildUpdatedRequest());
        }
        public void TestAppProfileId()
        {
            var originalRequest = new ReadRowsRequest
            {
                Rows         = RowSet.FromRowKey("a"),
                AppProfileId = "xyz"
            };

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
        }
        public void TestFilterRowsUnsignedRows()
        {
            BigtableByteString key1 = new byte[] { 0x7f };
            BigtableByteString key2 = new byte[] { 0x80 };

            ReadRowsRequest originalRequest = CreateRowKeysRequest(key1, key2);

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            underTest.LastFoundKey = key1;

            Assert.Equal(CreateRowKeysRequest(key2), underTest.BuildUpdatedRequest());
        }
        public void TestRowFilter()
        {
            var rowFilter = RowFilters.Chain(
                RowFilters.CellsPerColumnLimit(1),
                RowFilters.CellsPerRowOffset(2),
                RowFilters.CellsPerRowLimit(10));

            ReadRowsRequest originalRequest = CreateRowFilterRequest(rowFilter);

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
        }
Пример #6
0
        public void TestDefaultRequest()
        {
            BigtableByteString lastFoundKey = "row015";

            ReadRowsRequest originalRequest = new ReadRowsRequest();

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
            underTest.LastFoundKey = lastFoundKey;

            Assert.Equal(CreateRowRangeRequest(RowRange.Open(lastFoundKey, null)), underTest.BuildUpdatedRequest());
        }
        public void TestFilterRowsUnsignedRange()
        {
            BigtableByteString key1 = new byte[] { 0x7f };
            BigtableByteString key2 = new byte[] { 0x80 };

            ReadRowsRequest originalRequest = CreateRowRangeRequest(RowRange.ClosedOpen(key1, null));

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            underTest.LastFoundKey = key2;

            Assert.Equal(CreateRowRangeRequest(RowRange.Open(key2, null)),
                         underTest.BuildUpdatedRequest());
        }
        public void TestFilterRowsRowKeys()
        {
            BigtableByteString key1 = "row1";
            BigtableByteString key2 = "row2";
            BigtableByteString key3 = "row3";

            ReadRowsRequest originalRequest = CreateRowKeysRequest(key1, key2, key3);

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
            underTest.LastFoundKey = key1;

            Assert.Equal(CreateRowKeysRequest(key2, key3), underTest.BuildUpdatedRequest());
        }
        public void TestRowFilter()
        {
            var rowFilter = RowFilters.Chain(
                RowFilters.CellsPerColumnLimit(1),
                RowFilters.CellsPerRowOffset(2),
                RowFilters.CellsPerRowLimit(10));

            var originalRequest = new ReadRowsRequest
            {
                Rows   = RowSet.FromRowKey("a"),
                Filter = rowFilter
            };

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
        }
Пример #10
0
        public void TestRowsLimitOnlyRequest()
        {
            BigtableByteString lastFoundKey = "row015";

            ReadRowsRequest originalRequest = new ReadRowsRequest {
                RowsLimit = 1000
            };

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());
            underTest.LastFoundKey = lastFoundKey;
            underTest.IncrementRowsReadSoFar(10);

            ReadRowsRequest updatedRequest = CreateRowRangeRequest(RowRange.Open(lastFoundKey, null));

            updatedRequest.RowsLimit = 990;
            Assert.Equal(updatedRequest, underTest.BuildUpdatedRequest());
        }
        public void TestRowsLimit()
        {
            BigtableByteString startKeyOpenOriginal = "row050";
            BigtableByteString lastFoundKey         = "row125";
            ReadRowsRequest    originalRequest      = CreateRowRangeRequest(RowRange.OpenClosed(startKeyOpenOriginal, null));

            originalRequest.RowsLimit = 100;

            ReadRowsRequest updatedRequest = CreateRowRangeRequest(RowRange.OpenClosed(lastFoundKey, null));

            updatedRequest.RowsLimit = 25;

            BigtableReadRowsRequestManager underTest = new BigtableReadRowsRequestManager(originalRequest);

            Assert.Equal(originalRequest, underTest.BuildUpdatedRequest());

            underTest.LastFoundKey = lastFoundKey;
            underTest.IncrementRowsReadSoFar(75);
            Assert.Equal(updatedRequest, underTest.BuildUpdatedRequest());
        }