@Test
public void longJson() throws LoadException {

  // GIVEN
  String json = //
      "[ { \"a\": 0,\"b\": 30 }," + //
          "{ \"a\": 1,\"b\": 23 }," + //
          "{ \"a\": 2,\"b\": 55 }," + //
          "{ \"a\": 3,\"b\": 26 }," + //
          "{ \"a\": 4,\"b\": 39 }," + //
          "{ \"a\": 5,\"b\": 36 }," + //
          "{ \"a\": 6,\"b\": 55 }," + //
          "{ \"a\": 7,\"b\": 39 }," + //
          "{ \"a\": 8,\"b\": 10 }," + //
          "{ \"a\": 9,\"b\": 25 }]";
  // WHEN
  TableShard tableShard =
      Iterables.getOnlyElement(loader.load(0L, new BigByteBuffer(json.getBytes()), TABLE, colInfo));
  // THEN
  Assert.assertEquals(tableShard.getLongColumns().size(), 2, "Expected both long columns to be available");
  Set<Pair<Long, Long>> expectedValues = new HashSet<>();
  expectedValues.add(new Pair<>(0L, 30L));
  expectedValues.add(new Pair<>(1L, 23L));
  expectedValues.add(new Pair<>(2L, 55L));
  expectedValues.add(new Pair<>(3L, 26L));
  expectedValues.add(new Pair<>(4L, 39L));
  expectedValues.add(new Pair<>(5L, 36L));
  expectedValues.add(new Pair<>(6L, 55L));
  expectedValues.add(new Pair<>(7L, 39L));
  expectedValues.add(new Pair<>(8L, 10L));
  expectedValues.add(new Pair<>(9L, 25L));
  Set<Pair<Long, Long>> actualValues = new HashSet<>();
  LongStandardColumnShard colA = tableShard.getLongColumns().get("a");
  LongStandardColumnShard colB = tableShard.getLongColumns().get("b");
  for (long i = tableShard.getLowestRowId(); i < tableShard.getLowestRowId()
      + tableShard.getNumberOfRowsInShard(); i++) {
    Long valueA = resolveSingleRowValue(colA, i);
    Long valueB = resolveSingleRowValue(colB, i);
    actualValues.add(new Pair<>(valueA, valueB));
  }
  Assert.assertEquals(actualValues, expectedValues, "Expected correct values to be encoded");
}