@Override
  public void save(Customer customer) throws SQLException {
    var sql = "insert into CUSTOMERS (name, money) values (?, ?)";
    try (var connection = dataSource.getConnection();
        var preparedStatement = connection.prepareStatement(sql)) {
      preparedStatement.setString(1, customer.getName());
      preparedStatement.setBigDecimal(2, customer.getMoney().getAmount());
      preparedStatement.executeUpdate();
    }
  }
@Test
  void shouldSaveCustomer() throws SQLException {
    customerDao.save(customer);

    try (var connection = dataSource.getConnection();
        var statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(SELECT_CUSTOMERS_SQL)) {

      assertTrue(rs.next());
      assertEquals(customer.getName(), rs.getString("name"));
      assertEquals(customer.getMoney(), Money.of(USD, rs.getBigDecimal("money")));
    }

    assertThrows(SQLException.class, () -> customerDao.save(customer));
  }