Fixes assertion for TTL duration in WriteOptionsBuilder.
Closes #1248 Original pull request: #1249.
This commit is contained in:
committed by
Mark Paluch
parent
56f4eba894
commit
2fbdddda4a
@@ -147,6 +147,7 @@ public class WriteOptions extends QueryOptions {
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author Lukasz Antoniak
|
||||
* @author Thomas Strauß
|
||||
* @since 1.5
|
||||
*/
|
||||
public static class WriteOptionsBuilder extends QueryOptionsBuilder {
|
||||
@@ -310,7 +311,7 @@ public class WriteOptions extends QueryOptions {
|
||||
public WriteOptionsBuilder ttl(Duration ttl) {
|
||||
|
||||
Assert.notNull(ttl, "TTL must not be null");
|
||||
Assert.isTrue(!ttl.isNegative(), "TTL must be greater than equal to zero");
|
||||
Assert.isTrue(!ttl.isNegative() && !ttl.isZero(), "TTL must be greater than equal to zero");
|
||||
|
||||
this.ttl = ttl;
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -31,6 +32,7 @@ import com.datastax.oss.driver.api.core.DefaultConsistencyLevel;
|
||||
* Unit tests for {@link WriteOptions}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author Thomas Strauß
|
||||
*/
|
||||
class WriteOptionsUnitTests {
|
||||
|
||||
@@ -89,4 +91,32 @@ class WriteOptionsUnitTests {
|
||||
assertThat(mutated.getPageSize()).isEqualTo(10);
|
||||
assertThat(mutated.getTracing()).isTrue();
|
||||
}
|
||||
|
||||
@Test // GH-1248
|
||||
void buildWriteOptionsWithTtlDurationZero() {
|
||||
try {
|
||||
WriteOptions writeOptions = WriteOptions.builder()
|
||||
.ttl(Duration.ZERO)
|
||||
.build();
|
||||
|
||||
fail("WiteOptionsBuilder must not allow zero TTL");
|
||||
}
|
||||
catch (Exception e) {
|
||||
// expected behavior
|
||||
}
|
||||
}
|
||||
|
||||
@Test // GH-1248
|
||||
void buildWriteOptionsWithTtlNegativeDuration() {
|
||||
try {
|
||||
WriteOptions writeOptions = WriteOptions.builder()
|
||||
.ttl(Duration.of(-1, ChronoUnit.MICROS))
|
||||
.build();
|
||||
|
||||
fail("WiteOptionsBuilder must not allow negative TTL");
|
||||
}
|
||||
catch (Exception e) {
|
||||
// expected behavior
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user