DATAES-908 - Fill version on an indexed entity.

Original PR: #506
This commit is contained in:
Roman Puchkovskiy
2020-08-19 23:18:44 +04:00
committed by GitHub
parent 131f0318cc
commit c82792b34d
7 changed files with 193 additions and 17 deletions

View File

@@ -37,6 +37,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -3448,6 +3449,68 @@ public abstract class ElasticsearchTemplateTests {
return ((AbstractElasticsearchTemplate) operations).getRequestFactory();
}
@Test // DATAES-908
void shouldFillVersionOnSaveOne() {
VersionedEntity saved = operations.save(new VersionedEntity());
assertThat(saved.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillVersionOnSaveIterable() {
List<VersionedEntity> iterable = Arrays.asList(new VersionedEntity(), new VersionedEntity());
Iterator<VersionedEntity> results = operations.save(iterable).iterator();
VersionedEntity saved1 = results.next();
VersionedEntity saved2 = results.next();
assertThat(saved1.getVersion()).isNotNull();
assertThat(saved2.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillVersionOnSaveArray() {
VersionedEntity[] array = {new VersionedEntity(), new VersionedEntity()};
Iterator<VersionedEntity> results = operations.save(array).iterator();
VersionedEntity saved1 = results.next();
VersionedEntity saved2= results.next();
assertThat(saved1.getVersion()).isNotNull();
assertThat(saved2.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillVersionOnIndexOne() {
VersionedEntity entity = new VersionedEntity();
IndexQuery query = new IndexQueryBuilder().withObject(entity).build();
operations.index(query, operations.getIndexCoordinatesFor(VersionedEntity.class));
assertThat(entity.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillVersionOnBulkIndex() {
VersionedEntity entity1 = new VersionedEntity();
VersionedEntity entity2= new VersionedEntity();
IndexQuery query1 = new IndexQueryBuilder().withObject(entity1).build();
IndexQuery query2 = new IndexQueryBuilder().withObject(entity2).build();
operations.bulkIndex(Arrays.asList(query1, query2), VersionedEntity.class);
assertThat(entity1.getVersion()).isNotNull();
assertThat(entity2.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillSeqNoPrimaryKeyOnBulkIndex() {
OptimisticEntity entity1 = new OptimisticEntity();
OptimisticEntity entity2 = new OptimisticEntity();
IndexQuery query1 = new IndexQueryBuilder().withObject(entity1).build();
IndexQuery query2 = new IndexQueryBuilder().withObject(entity2).build();
operations.bulkIndex(Arrays.asList(query1, query2), OptimisticEntity.class);
assertThatSeqNoPrimaryTermIsFilled(entity1);
assertThatSeqNoPrimaryTermIsFilled(entity2);
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@@ -3625,6 +3688,13 @@ public abstract class ElasticsearchTemplateTests {
@Version private Long version;
}
@Data
@Document(indexName = "test-index-versioned-entity-template")
static class VersionedEntity {
@Id private String id;
@Version private Long version;
}
@Data
@NoArgsConstructor
@AllArgsConstructor

View File

@@ -390,7 +390,9 @@ public class ReactiveElasticsearchTemplateTests {
template.search(query, SampleEntity.class) //
.map(SearchHit::getContent) //
.as(StepVerifier::create) //
.expectNext(shouldMatch) //
.assertNext(next -> {
assertThat(next.getMessage()).isEqualTo("test message");
}) //
.verifyComplete();
}
@@ -963,6 +965,36 @@ public class ReactiveElasticsearchTemplateTests {
template.save(forEdit).as(StepVerifier::create).expectNextCount(1).verifyComplete();
}
@Test // DATAES-908
void shouldFillVersionOnSaveOne() {
VersionedEntity saved = template.save(new VersionedEntity()).block();
assertThat(saved.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillVersionOnSaveAll() {
VersionedEntity saved = template.saveAll(singletonList(new VersionedEntity()), VersionedEntity.class)
.blockLast();
assertThat(saved.getVersion()).isNotNull();
}
@Test // DATAES-908
void shouldFillSeqNoPrimaryTermOnSaveOne() {
OptimisticEntity saved = template.save(new OptimisticEntity()).block();
assertThatSeqNoPrimaryTermIsFilled(saved);
}
@Test // DATAES-908
void shouldFillSeqNoPrimaryTermOnSaveAll() {
OptimisticEntity saved = template.saveAll(singletonList(new OptimisticEntity()), OptimisticEntity.class)
.blockLast();
assertThatSeqNoPrimaryTermIsFilled(saved);
}
@Data
@Document(indexName = "marvel")
static class Person {
@@ -1051,4 +1083,11 @@ public class ReactiveElasticsearchTemplateTests {
private SeqNoPrimaryTerm seqNoPrimaryTerm;
@Version private Long version;
}
@Data
@Document(indexName = "test-index-reactive-versioned-entity-template")
static class VersionedEntity {
@Id private String id;
@Version private Long version;
}
}