### Question:
JdbcHighWaterMark implements Serializable { public void accumulate(@Nullable final Long value) { if (value != null && (this.value == null || this.value < value)) { if (client != null) { final String highWaterMarkValue = (formatter != null) ? formatter.apply(value) : value.toString(); client.setHighWaterMarks(Collections.singletonMap(name, highWaterMarkValue)); } this.value = value; } } JdbcHighWaterMark();  JdbcHighWaterMark(@Nonnull final String highWaterMarkName, @Nonnull final KyloCatalogClient<?> client); void accumulate(@Nullable final Long value); @Override boolean equals(@Nullable final Object other); @Nullable String getName(); @Nullable Long getValue(); @Override int hashCode(); void setFormatter(@Nullable final Function1<Long, String> formatter); @Override String toString();  }### Answer:
@Test public void accumulate() { final JdbcHighWaterMark highWaterMark = new JdbcHighWaterMark(); Assert.assertNull("Expected initial high water mark value to be null", highWaterMark.getValue()); highWaterMark.accumulate(null); Assert.assertNull("Expected initial high water mark value to be null", highWaterMark.getValue()); highWaterMark.accumulate(2L); Assert.assertEquals(new Long(2L), highWaterMark.getValue()); highWaterMark.accumulate(1L); Assert.assertEquals(new Long(2L), highWaterMark.getValue()); highWaterMark.accumulate(null); Assert.assertEquals(new Long(2L), highWaterMark.getValue()); highWaterMark.accumulate(3L); Assert.assertEquals(new Long(3L), highWaterMark.getValue()); }