Add support for deleting keys associated with an account.

This commit is contained in:
Jon Chambers 2020-09-22 12:11:48 -04:00 committed by Jon Chambers
parent 86fae58c96
commit 789af0f8a6
2 changed files with 52 additions and 0 deletions

View File

@ -106,6 +106,16 @@ public class Keys {
}));
}
public void delete(final String number) {
database.use(jdbi -> jdbi.useHandle(handle -> {
try (Timer.Context ignored = getCountTimer.time()) {
handle.createUpdate("DELETE FROM keys WHERE number = :number")
.bind("number", number)
.execute();
}
}));
}
public void vacuum() {
database.use(jdbi -> jdbi.useHandle(handle -> {
try (Timer.Context ignored = vacuumTimer.time()) {

View File

@ -271,6 +271,48 @@ public class KeysTest {
assertThat(keys.getCount("+14152222222",2)).isEqualTo(80);
}
@Test
public void testDelete() {
List<PreKey> deviceOnePreKeys = new LinkedList<>();
List<PreKey> deviceTwoPreKeys = new LinkedList<>();
List<PreKey> anotherDeviceOnePreKeys = new LinkedList<>();
List<PreKey> anotherDeviceTwoPreKeys = new LinkedList<>();
List<PreKey> anotherDeviceThreePreKeys = new LinkedList<>();
for (int i=1;i<=100;i++) {
deviceOnePreKeys.add(new PreKey(i, "+14152222222Device1PublicKey" + i));
deviceTwoPreKeys.add(new PreKey(i, "+14152222222Device2PublicKey" + i));
}
for (int i=1;i<=100;i++) {
anotherDeviceOnePreKeys.add(new PreKey(i, "+14151111111Device1PublicKey" + i));
anotherDeviceTwoPreKeys.add(new PreKey(i, "+14151111111Device2PublicKey" + i));
anotherDeviceThreePreKeys.add(new PreKey(i, "+14151111111Device3PublicKey" + i));
}
keys.store("+14152222222", 1, deviceOnePreKeys);
keys.store("+14152222222", 2, deviceTwoPreKeys);
keys.store("+14151111111", 1, anotherDeviceOnePreKeys);
keys.store("+14151111111", 2, anotherDeviceTwoPreKeys);
keys.store("+14151111111", 3, anotherDeviceThreePreKeys);
assertThat(keys.getCount("+14152222222", 1)).isEqualTo(100);
assertThat(keys.getCount("+14152222222", 2)).isEqualTo(100);
assertThat(keys.getCount("+14151111111", 1)).isEqualTo(100);
assertThat(keys.getCount("+14151111111", 2)).isEqualTo(100);
assertThat(keys.getCount("+14151111111", 3)).isEqualTo(100);
keys.delete("+14152222222");
assertThat(keys.getCount("+14152222222", 1)).isEqualTo(0);
assertThat(keys.getCount("+14152222222", 2)).isEqualTo(0);
assertThat(keys.getCount("+14151111111", 1)).isEqualTo(100);
assertThat(keys.getCount("+14151111111", 2)).isEqualTo(100);
assertThat(keys.getCount("+14151111111", 3)).isEqualTo(100);
}
@Test
public void testEmptyKeyGet() {