@Test
public void testGetValues() throws Throwable {

  List<CKeyValue> keys = new ArrayList<CKeyValue>();
  keys.add(new CKeyValue(new byte[] { 1 }, new byte[] { 2 },
      new byte[] { 3 }, new byte[] { 4 }));
  keys.add(new CKeyValue(new byte[] { 1 }, new byte[] { 2 },
      new byte[] { 5 }, new byte[] { 4, 1 }));
  keys.add(new CKeyValue(new byte[] { 1 }, new byte[] { 6 },
      new byte[] { 5 }, new byte[] { 4 }));
  keys.add(new CKeyValue(new byte[] { 2 }, new byte[] { 2 },
      new byte[] { 3 }, new byte[] { 4 }));
  Result result = new Result(keys.toArray(new CKeyValue[0]));
  Assert.assertArrayEquals(new byte[] { 4 },
      result.getValue(new byte[] { 2 }, new byte[] { 3 }).getValue());
  Assert.assertArrayEquals(new byte[] { 4, 1 },
      result.getValue(new byte[] { 2 }, new byte[] { 5 }).getValue());
  Assert.assertArrayEquals(new byte[] { 4 },
      result.getValue(new byte[] { 6 }, new byte[] { 5 }).getValue());
  Assert.assertArrayEquals(new byte[] { 4 },
      result.getValue(new byte[] { 2 }, new byte[] { 3 }).getValue());
  Assert.assertEquals(null,
      result.getValue(new byte[] { 2 }, new byte[] { 2 }));
}