### Question:
RenterJdbcGateway implements RenterGateway { @Override public Renter save(final Renter renter) { jdbcTemplate.update( "INSERT INTO RENT_A_CAR.RENTER (FIRST_NAME, LAST_NAME, EMAIL, TELEPHONE_NUMBER) VALUES (?, ?, ?, ?)", renter.getFirstName(), renter.getLastName(), renter.getEmail(), renter.getTelephoneNumber()); return renter; } RenterJdbcGateway(final JdbcTemplate jdbcTemplate); @Override Renter save(final Renter renter); @Override Optional<Renter> findByEmail(final String email);  }### Answer:
@Test void test_save_noTelephoneNumber_saves() { final Renter renter = new Renter(); renter.setFirstName("John"); renter.setLastName("Doe"); renter.setEmail("john.doe@email.com"); renterGateway.save(renter); Assertions.assertNotNull(renter); }
@Test void test_save_duplicateEmail_doesNotSave() { final Renter renter = new Renter(); renter.setFirstName("John"); renter.setLastName("Doe"); renter.setEmail("john.doe@email.com"); renterGateway.save(renter); Assertions.assertThrows(DuplicateKeyException.class, () -> renterGateway.save(renter)); }