@Test public void testPutSingleRowFirstColumn() { AbstractTransaction transaction = mock(AbstractTransaction.class); putSingleRowFirstColumn(transaction, TEST_ROW_KEY, TEST_VALUE_LONG); ArgumentCaptor<Map> argument = ArgumentCaptor.forClass(Map.class); verify(transaction, times(1)).put(eq(tableRef), argument.capture()); Map<Cell, byte[]> foundMap = argument.getValue(); Cell expectedCell = getCell(TEST_ROW_KEY, FIRST_COL_SHORT_NAME); assertThat(Iterables.getOnlyElement(foundMap.keySet())).isEqualTo(expectedCell); assertThat(Iterables.getOnlyElement(foundMap.values())) .usingComparator(UnsignedBytes.lexicographicalComparator()) .isEqualTo(encodeLong(TEST_VALUE_LONG)); }
@Test public void testGetSingleRowFirstColumn() { AbstractTransaction transaction = mock(AbstractTransaction.class); SortedMap<byte[], RowResult<byte[]>> resultsMap = new TreeMap<>(UnsignedBytes.lexicographicalComparator()); addToResultsMap(resultsMap, TEST_ROW_KEY, FIRST_COL_SHORT_NAME, encodeLong(TEST_VALUE_LONG)); when(transaction.getRows(eq(tableRef), any(), eq(FIRST_COLUMN_SELECTION))).thenReturn(resultsMap); long value = getSingleRowFirstColumn(transaction, TEST_ROW_KEY); assertThat(value).isEqualTo(TEST_VALUE_LONG); ArgumentCaptor<Iterable> argument = ArgumentCaptor.forClass(Iterable.class); verify(transaction, times(1)) .getRows(eq(tableRef), argument.capture(), eq(FIRST_COLUMN_SELECTION)); Iterable<byte[]> argumentRows = argument.getValue(); assertThat(Iterables.getOnlyElement(argumentRows)) .usingComparator(UnsignedBytes.lexicographicalComparator()) .isEqualTo(PtBytes.toBytes(TEST_ROW_KEY)); }
@Test public void testGetMultipleRowsFirstColumn() { AbstractTransaction transaction = mock(AbstractTransaction.class); SortedMap<byte[], RowResult<byte[]>> resultsMap = new TreeMap<>(UnsignedBytes.lexicographicalComparator()); addToResultsMap(resultsMap, TEST_ROW_KEY, FIRST_COL_SHORT_NAME, encodeLong(TEST_VALUE_LONG)); addToResultsMap(resultsMap, TEST_ROW_KEY2, FIRST_COL_SHORT_NAME, encodeLong(TEST_VALUE_LONG2)); when(transaction.getRows(eq(tableRef), any(), eq(FIRST_COLUMN_SELECTION))).thenReturn(resultsMap); Map<String, Long> result = getMultipleRowsFirstColumn(transaction, Arrays.asList(TEST_ROW_KEY, TEST_ROW_KEY2)); assertThat(result).isEqualTo(ImmutableMap.of(TEST_ROW_KEY, TEST_VALUE_LONG, TEST_ROW_KEY2, TEST_VALUE_LONG2)); ArgumentCaptor<Iterable> argument = ArgumentCaptor.forClass(Iterable.class); verify(transaction, times(1)) .getRows(eq(tableRef), argument.capture(), eq(FIRST_COLUMN_SELECTION)); List<byte[]> argumentRows = Lists.newArrayList(argument.getValue()); assertThat(argumentRows.size()).isEqualTo(2); assertThat(argumentRows.get(0)) .usingComparator(UnsignedBytes.lexicographicalComparator()) .isEqualTo(PtBytes.toBytes(TEST_ROW_KEY)); assertThat(argumentRows.get(1)) .usingComparator(UnsignedBytes.lexicographicalComparator()) .isEqualTo(PtBytes.toBytes(TEST_ROW_KEY2)); }