@Test
public void accumulate() {

    // Test initial null value
    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());
    // Test first non-null value
    highWaterMark.accumulate(2L);
    Assert.assertEquals(new Long(2L), highWaterMark.getValue());
    // Test lower value
    highWaterMark.accumulate(1L);
    Assert.assertEquals(new Long(2L), highWaterMark.getValue());
    // Test null value
    highWaterMark.accumulate(null);
    Assert.assertEquals(new Long(2L), highWaterMark.getValue());
    // Test higher value
    highWaterMark.accumulate(3L);
    Assert.assertEquals(new Long(3L), highWaterMark.getValue());
}