* @throws IllegalArgumentException if {@code propertyKey} is {@code null} or empty
*/
void write(String propertyKey, @Nullable String value);
+
+ /**
+ * Delete the specified property.
+ *
+ */
+ void delete(String propertyKey);
}
}
}
+ @Override
+ public void delete(String propertyKey) {
+ checkPropertyKey(propertyKey);
+ try (DbSession dbSession = dbClient.openSession(false)) {
+ dbClient.internalPropertiesDao().delete(dbSession, propertyKey);
+ dbSession.commit();
+ }
+ }
+
private static void checkPropertyKey(@Nullable String propertyKey) {
checkArgument(propertyKey != null && !propertyKey.isEmpty(), "property key can't be null nor empty");
}
values.put(propertyKey, value);
}
+ @Override
+ public void delete(String propertyKey) {
+ checkPropertyKey(propertyKey);
+ values.remove(propertyKey);
+ }
+
private static void checkPropertyKey(@Nullable String propertyKey) {
checkArgument(propertyKey != null && !propertyKey.isEmpty(), "property key can't be null nor empty");
}
verify(dbSession).commit();
}
+ @Test
+ public void delete_shouldCallDaoAndDeleteProperty() {
+ underTest.delete(SOME_KEY);
+ verify(internalPropertiesDao).delete(dbSession, SOME_KEY);
+ verify(dbSession).commit();
+ }
+
private void expectKeyNullOrEmptyIAE(ThrowingCallable callback) {
assertThatThrownBy(callback)
.isInstanceOf(IllegalArgumentException.class)