Skip to content

Commit e6fd16f

Browse files
committed
Test reactive repository default scan consistency.
1 parent 59f3c92 commit e6fd16f

File tree

2 files changed

+73
-11
lines changed

2 files changed

+73
-11
lines changed

src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ public void saveNotBoundedRequestPlus() {
274274
assertFalse(!airports.isEmpty(), "airports should have been empty");
275275
}
276276

277-
278277
@Test
279278
public void saveNotBoundedRequestPlusWithDefaultRepository() {
280279
ApplicationContext ac = new AnnotationConfigApplicationContext(ConfigRequestPlus.class);
@@ -303,7 +302,6 @@ public void saveNotBoundedRequestPlusWithDefaultRepository() {
303302
assertTrue(success);
304303
}
305304

306-
307305
@Test
308306
void findByTypeAlias() {
309307
Airport vie = null;

src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java

Lines changed: 73 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,32 @@
1616

1717
package org.springframework.data.couchbase.repository;
1818

19+
import static com.couchbase.client.java.query.QueryScanConsistency.REQUEST_PLUS;
1920
import static java.util.Arrays.asList;
2021
import static org.junit.jupiter.api.Assertions.assertEquals;
2122
import static org.junit.jupiter.api.Assertions.assertFalse;
2223
import static org.junit.jupiter.api.Assertions.assertThrows;
2324
import static org.junit.jupiter.api.Assertions.assertTrue;
24-
25+
import static org.springframework.data.couchbase.config.BeanNames.COUCHBASE_TEMPLATE;
26+
import static org.springframework.data.couchbase.config.BeanNames.REACTIVE_COUCHBASE_TEMPLATE;
27+
28+
import com.couchbase.client.java.query.QueryScanConsistency;
29+
import org.springframework.context.ApplicationContext;
30+
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
31+
import org.springframework.context.annotation.Bean;
32+
import org.springframework.data.auditing.DateTimeProvider;
33+
import org.springframework.data.couchbase.core.CouchbaseTemplate;
34+
import org.springframework.data.couchbase.core.ReactiveCouchbaseTemplate;
35+
import org.springframework.data.couchbase.domain.*;
36+
import org.springframework.data.couchbase.domain.time.AuditingDateTimeProvider;
37+
import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
38+
import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories;
2539
import reactor.core.publisher.Flux;
2640
import reactor.core.publisher.Mono;
2741
import reactor.test.StepVerifier;
2842

2943
import java.time.Instant;
30-
import java.util.HashSet;
31-
import java.util.List;
32-
import java.util.Set;
33-
import java.util.UUID;
44+
import java.util.*;
3445
import java.util.concurrent.Callable;
3546
import java.util.concurrent.ExecutorService;
3647
import java.util.concurrent.Executors;
@@ -44,10 +55,6 @@
4455
import org.springframework.dao.DataRetrievalFailureException;
4556
import org.springframework.data.couchbase.CouchbaseClientFactory;
4657
import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;
47-
import org.springframework.data.couchbase.domain.Airport;
48-
import org.springframework.data.couchbase.domain.ReactiveAirportRepository;
49-
import org.springframework.data.couchbase.domain.ReactiveUserRepository;
50-
import org.springframework.data.couchbase.domain.User;
5158
import org.springframework.data.couchbase.repository.config.EnableReactiveCouchbaseRepositories;
5259
import org.springframework.data.couchbase.util.Capabilities;
5360
import org.springframework.data.couchbase.util.ClusterType;
@@ -249,6 +256,34 @@ void deleteAll() {
249256
}
250257
}
251258

259+
@Test
260+
public void saveNotBoundedRequestPlusWithDefaultRepository() {
261+
ApplicationContext ac = new AnnotationConfigApplicationContext(ConfigRequestPlus.class);
262+
// the Config class has been modified, these need to be loaded again
263+
ReactiveCouchbaseTemplate couchbaseTemplateRP = (ReactiveCouchbaseTemplate) ac.getBean(REACTIVE_COUCHBASE_TEMPLATE);
264+
ReactiveAirportDefaultConsistencyRepository airportRepositoryRP = (ReactiveAirportDefaultConsistencyRepository) ac.getBean("reactiveAirportDefaultConsistencyRepository");
265+
266+
List<Airport> sizeBeforeTest = airportRepositoryRP.findAll().collectList().block();
267+
assertEquals(0, sizeBeforeTest.size());
268+
269+
List<String> idsToRemove = new ArrayList<>(100);
270+
for (int i = 1; i <= 100; i++) {
271+
Airport vie = new Airport("airports::vie" + i, "vie" + i, "low9");
272+
Airport saved = airportRepositoryRP.save(vie).block();
273+
idsToRemove.add(saved.getId());
274+
}
275+
276+
List<Airport> allSaved = airportRepositoryRP.findAll().collectList().block();
277+
278+
boolean success = allSaved.size() == 100;
279+
280+
for (String idToRemove : idsToRemove) {
281+
couchbaseTemplateRP.removeById().one(idToRemove);
282+
}
283+
284+
assertTrue(success);
285+
}
286+
252287
@Configuration
253288
@EnableReactiveCouchbaseRepositories("org.springframework.data.couchbase")
254289
static class Config extends AbstractCouchbaseConfiguration {
@@ -275,4 +310,33 @@ public String getBucketName() {
275310

276311
}
277312

313+
@Configuration
314+
@EnableReactiveCouchbaseRepositories("org.springframework.data.couchbase")
315+
static class ConfigRequestPlus extends AbstractCouchbaseConfiguration {
316+
317+
@Override
318+
public String getConnectionString() {
319+
return connectionString();
320+
}
321+
322+
@Override
323+
public String getUserName() {
324+
return config().adminUsername();
325+
}
326+
327+
@Override
328+
public String getPassword() {
329+
return config().adminPassword();
330+
}
331+
332+
@Override
333+
public String getBucketName() {
334+
return bucketName();
335+
}
336+
337+
@Override
338+
public QueryScanConsistency getDefaultConsistency() {
339+
return REQUEST_PLUS;
340+
}
341+
}
278342
}

0 commit comments

Comments
 (0)