### Question:
SnakeCaseColumnNameMatcher implements ColumnNameMatcher { @Override public boolean columnNameMatches(String columnName, String javaName) { return removeUnderscores(columnName).equalsIgnoreCase(removeUnderscores(javaName)); }  @Override boolean columnNameMatches(String columnName, String javaName); @Override boolean columnNameStartsWith(String columnName, String prefix); @Override String toString();  }### Answer:
@Test public void testSimple() { assertThat(snake.columnNameMatches("test_property_with_cheese", "testPropertyWithCheese")).isTrue(); }
@Test public void testWithoutCheese() { assertThat(snake.columnNameMatches("test_property_with_cheese", "testPropertyWithoutCheese")).isFalse(); }
@Test public void testBeanNumbers() { assertThat(snake.columnNameMatches("test_property_2", "testProperty2")).isTrue(); }
@Test public void testNumbersDontMatch() { assertThat(snake.columnNameMatches("test_property_2", "testProperty3")).isFalse(); }