From 63267a1688118bc7f2c9f5feb10622504e0677de Mon Sep 17 00:00:00 2001 From: Tigran Babloyan Date: Tue, 14 Feb 2023 09:51:06 +0400 Subject: [PATCH] Fixed randomly failing test for get with lock. Closes #1662 Related tickets #1662 --- ...eCouchbaseTemplateKeyValueIntegrationTests.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java b/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java index e1aa3e349..76db28d72 100644 --- a/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java +++ b/src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java @@ -17,6 +17,7 @@ package org.springframework.data.couchbase.core; import static com.couchbase.client.java.query.QueryScanConsistency.REQUEST_PLUS; +import static org.awaitility.Awaitility.with; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -120,7 +121,7 @@ void findByIdWithLock() { reactiveCouchbaseTemplate.upsertById(User.class).one(user).block(); - User foundUser = reactiveCouchbaseTemplate.findById(User.class).withLock(Duration.ofSeconds(2)) + User foundUser = reactiveCouchbaseTemplate.findById(User.class).withLock(Duration.ofSeconds(4)) .one(user.getId()).block(); user.setVersion(foundUser.getVersion());// version will have changed assertEquals(user, foundUser); @@ -130,8 +131,15 @@ void findByIdWithLock() { ); assertTrue(exception.retryReasons().contains(RetryReason.KV_LOCKED), "should have been locked"); } finally { - sleepSecs(2); - reactiveCouchbaseTemplate.removeByQuery(User.class).withConsistency(REQUEST_PLUS).all().collectList().block(); + // cleanup + with() + .pollInterval(Duration.ofSeconds(1)) + .pollDelay(Duration.ofSeconds(3)) + .await() + .atMost(Duration.ofSeconds(8)) + .ignoreExceptions() + .until(() -> reactiveCouchbaseTemplate.removeByQuery(User.class).withConsistency(REQUEST_PLUS) + .all().collectList().block().size() == 1); } }