use of com.google.cloud.spring.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by GoogleCloudPlatform.
the class DatastoreTemplate method performDelete.
private void performDelete(Key[] keys, Iterable ids, Iterable entities, Class entityClass) {
maybeEmitEvent(new BeforeDeleteEvent(keys, entityClass, ids, entities));
SliceUtil.sliceAndExecute(keys, this.maxWriteSize, getDatastoreReadWriter()::delete);
maybeEmitEvent(new AfterDeleteEvent(keys, entityClass, ids, entities));
}
use of com.google.cloud.spring.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by GoogleCloudPlatform.
the class DatastoreTemplateTests method deleteByIdTest.
@Test
void deleteByIdTest() {
when(this.objectToKeyFactory.getKeyFromId(same(this.key1), any())).thenReturn(this.key1);
verifyBeforeAndAfterEvents(new BeforeDeleteEvent(new Key[] { this.key1 }, TestEntity.class, Collections.singletonList(this.key1), null), new AfterDeleteEvent(new Key[] { this.key1 }, TestEntity.class, Collections.singletonList(this.key1), null), () -> this.datastoreTemplate.deleteById(this.key1, TestEntity.class), x -> x.verify(this.datastore, times(1)).delete(same(this.key1)));
}
use of com.google.cloud.spring.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by GoogleCloudPlatform.
the class DatastoreTemplateTests method deleteAllTest.
@Test
void deleteAllTest() {
QueryResults<Key> queryResults = mock(QueryResults.class);
when(queryResults.getResultClass()).thenReturn((Class) Key.class);
doAnswer(invocation -> {
Arrays.asList(this.key1, this.key2).iterator().forEachRemaining(invocation.getArgument(0));
return null;
}).when(queryResults).forEachRemaining(any());
when(this.datastore.run(Query.newKeyQueryBuilder().setKind("custom_test_kind").build())).thenReturn(queryResults);
verifyBeforeAndAfterEvents(new BeforeDeleteEvent(new Key[] { this.key1, this.key2 }, TestEntity.class, null, null), new AfterDeleteEvent(new Key[] { this.key1, this.key2 }, TestEntity.class, null, null), () -> assertThat(this.datastoreTemplate.deleteAll(TestEntity.class)).isEqualTo(2), x -> x.verify(this.datastore, times(1)).delete(same(this.key1), same(this.key2)));
}
use of com.google.cloud.spring.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by GoogleCloudPlatform.
the class DatastoreTemplateTests method deleteAllByIdTest.
@Test
void deleteAllByIdTest() {
when(this.objectToKeyFactory.getKeyFromId(same(this.key1), any())).thenReturn(this.key1);
when(this.objectToKeyFactory.getKeyFromId(same(this.key2), any())).thenReturn(this.key2);
verifyBeforeAndAfterEvents(new BeforeDeleteEvent(new Key[] { this.key2, this.key1 }, TestEntity.class, Arrays.asList(this.key1, this.key2), null), new AfterDeleteEvent(new Key[] { this.key2, this.key1 }, TestEntity.class, Arrays.asList(this.key1, this.key2), null), () -> this.datastoreTemplate.deleteAllById(Arrays.asList(this.key1, this.key2), TestEntity.class), x -> x.verify(this.datastore, times(1)).delete(same(this.key2), same(this.key1)));
}
Aggregations