@Test public void builderRequiresEnd() { expectedException.expect(IllegalStateException.class); expectedException.expectMessage("end(Key)"); KeyRange.newBuilder().setStart(Key.of("a")).build(); }
@Test public void builderRequiresStart() { expectedException.expect(IllegalStateException.class); expectedException.expectMessage("start(Key)"); KeyRange.newBuilder().setEnd(Key.of("z")).build(); }
private static void checkKeyRange( KeyRange r, Key start, KeyRange.Endpoint startType, Key end, KeyRange.Endpoint endType) { assertThat(r.getStartType()).isEqualTo(startType); assertThat(r.geEndType()).isEqualTo(endType); assertThat(r.getStart()).isEqualTo(start); assertThat(r.getEnd()).isEqualTo(end); KeyRange fromBuilder = KeyRange.newBuilder() .setStart(start) .setStartType(startType) .setEnd(end) .setEndType(endType) .build(); assertThat(fromBuilder.getStartType()).isEqualTo(startType); assertThat(fromBuilder.geEndType()).isEqualTo(endType); assertThat(fromBuilder.getStart()).isEqualTo(start); assertThat(fromBuilder.getEnd()).isEqualTo(end); assertThat(fromBuilder).isEqualTo(r); assertThat(fromBuilder.hashCode()).isEqualTo(fromBuilder.hashCode()); }
@Test public void equalsAndHashCode() { EqualsTester tester = new EqualsTester(); // Test factory method vs builder with defaults vs builder with all parts explicit. tester.addEqualityGroup( KeyRange.closedOpen(Key.of(1), Key.of(2)), KeyRange.newBuilder().setStart(Key.of(1)).setEnd(Key.of(2)).build(), KeyRange.newBuilder() .setStart(Key.of(1)) .setStartType(CLOSED) .setEnd(Key.of(2)) .setEndType(OPEN) .build()); // Differing endpoint types. tester.addEqualityGroup(KeyRange.closedClosed(Key.of(1), Key.of(2))); tester.addEqualityGroup(KeyRange.openOpen(Key.of(1), Key.of(2))); tester.addEqualityGroup(KeyRange.openClosed(Key.of(1), Key.of(2))); // Differing start/end keys. tester.addEqualityGroup(KeyRange.closedOpen(Key.of(2), Key.of(1))); tester.addEqualityGroup(KeyRange.closedClosed(Key.of(), Key.of())); // Prefix range. tester.addEqualityGroup( KeyRange.prefix(Key.of(1, 2)), KeyRange.closedClosed(Key.of(1, 2), Key.of(1, 2))); tester.testEquals(); }