Search in sources :

Example 1 with BeforeDeleteEvent

use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by spring-cloud.

the class DatastoreTemplateTests method deleteByIdTest.

@Test
public 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)));
}
Also used : AfterDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterDeleteEvent) BeforeDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent) Key(com.google.cloud.datastore.Key) Test(org.junit.Test)

Example 2 with BeforeDeleteEvent

use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by spring-cloud.

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));
}
Also used : AfterDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterDeleteEvent) BeforeDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent)

Example 3 with BeforeDeleteEvent

use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by spring-cloud.

the class DatastoreTemplateTests method deleteAllByIdTest.

@Test
public 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)));
}
Also used : AfterDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterDeleteEvent) BeforeDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent) Key(com.google.cloud.datastore.Key) Test(org.junit.Test)

Example 4 with BeforeDeleteEvent

use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent in project spring-cloud-gcp by spring-cloud.

the class DatastoreTemplateTests method deleteAllTest.

@Test
public 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(eq(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)));
}
Also used : AfterDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterDeleteEvent) BeforeDeleteEvent(org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent) Key(com.google.cloud.datastore.Key) Test(org.junit.Test)

Aggregations

AfterDeleteEvent (org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterDeleteEvent)4 BeforeDeleteEvent (org.springframework.cloud.gcp.data.datastore.core.mapping.event.BeforeDeleteEvent)4 Key (com.google.cloud.datastore.Key)3 Test (org.junit.Test)3