@Test public void all() { KeySet set = KeySet.all(); assertThat(set.isAll()).isTrue(); assertThat(set.getKeys()).isEmpty(); assertThat(set.getRanges()).isEmpty(); }
@Test public void singleKey() { KeySet set = KeySet.singleKey(Key.of("a", "b", "c")); assertThat(set.isAll()).isFalse(); assertThat(set.getKeys()).containsExactly(Key.of("a", "b", "c")); assertThat(set.getRanges()).isEmpty(); }
@Test public void prefixRange() { KeySet set = KeySet.prefixRange(Key.of("a", "b")); assertThat(set.isAll()).isFalse(); assertThat(set.getKeys()).isEmpty(); assertThat(set.getRanges()).containsExactly(KeyRange.prefix(Key.of("a", "b"))); }
@Test public void range() { KeySet set = KeySet.range(KeyRange.closedOpen(Key.of("a"), Key.of("b"))); assertThat(set.isAll()).isFalse(); assertThat(set.getKeys()).isEmpty(); assertThat(set.getRanges()).containsExactly(KeyRange.closedOpen(Key.of("a"), Key.of("b"))); }
@Test public void toBuilder() { KeySet set = KeySet.singleKey(Key.of(1)).toBuilder().addKey(Key.of(2)).build(); assertThat(set.isAll()).isFalse(); assertThat(set.getKeys()).containsExactly(Key.of(1), Key.of(2)).inOrder(); assertThat(set.getRanges()).isEmpty(); set = KeySet.range(KeyRange.closedOpen(Key.of("a"), Key.of("b"))) .toBuilder() .addRange(KeyRange.closedOpen(Key.of("c"), Key.of("d"))) .build(); assertThat(set.isAll()).isFalse(); assertThat(set.getKeys()).isEmpty(); assertThat(set.getRanges()) .containsExactly( KeyRange.closedOpen(Key.of("a"), Key.of("b")), KeyRange.closedOpen(Key.of("c"), Key.of("d"))) .inOrder(); set = KeySet.all().toBuilder().addKey(Key.of(1)).build(); assertThat(set.isAll()).isTrue(); assertThat(set.getKeys()).containsExactly(Key.of(1)); assertThat(set.getRanges()).isEmpty(); }
@Test public void builder() { KeySet set = KeySet.newBuilder() .addKey(Key.of("k1")) .addKey(Key.of("k2")) .addRange(KeyRange.closedOpen(Key.of("r1"), Key.of("rr1"))) .addRange(KeyRange.closedOpen(Key.of("r2"), Key.of("rr2"))) .build(); assertThat(set.isAll()).isFalse(); // Order isn't strictly important to the API, but it's helpful to preserve it. assertThat(set.getKeys()).containsExactly(Key.of("k1"), Key.of("k2")).inOrder(); assertThat(set.getRanges()) .containsExactly( KeyRange.closedOpen(Key.of("r1"), Key.of("rr1")), KeyRange.closedOpen(Key.of("r2"), Key.of("rr2"))) .inOrder(); assertThat(set.toString()).isEqualTo("{[k1],[k2],[[r1],[rr1]),[[r2],[rr2])}"); }