diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java index 302774dd4..c62b320cf 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java @@ -35,6 +35,7 @@ import com.datastax.driver.core.DataType.Name; * classpath. * * @author Mark Paluch + * @author Hurelhuyag * @since 1.5 */ public abstract class CassandraJsr310Converters { diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraJsr310ConvertersUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraJsr310ConvertersUnitTests.java index f3668dbf5..aad083f5d 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraJsr310ConvertersUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraJsr310ConvertersUnitTests.java @@ -15,7 +15,7 @@ */ package org.springframework.data.cassandra.core.convert; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import java.time.LocalTime; @@ -28,21 +28,20 @@ import org.springframework.data.cassandra.core.convert.CassandraJsr310Converters * Unit tests for {@link CassandraJsr310Converters}. * * @author Mark Paluch + * @author Hurelhuyag */ public class CassandraJsr310ConvertersUnitTests { - @Test // DATACASS-302 + @Test // DATACASS-302, DATACASS-694 public void shouldConvertLongToLocalTime() { - assertThat(MillisOfDayToLocalTimeConverter.INSTANCE.convert(3_723_000_000_000L)) - .isEqualTo(LocalTime.of(1, 2, 3)); + assertThat(MillisOfDayToLocalTimeConverter.INSTANCE.convert(3_723_000_000_000L)).isEqualTo(LocalTime.of(1, 2, 3)); } - @Test // DATACASS-302 + @Test // DATACASS-302, DATACASS-694 public void shouldConvertLocalTimeToLong() { assertThat(LocalTimeToMillisOfDayConverter.INSTANCE.convert(LocalTime.MIDNIGHT)).isZero(); - assertThat(LocalTimeToMillisOfDayConverter.INSTANCE.convert(LocalTime.of(1, 2, 3))) - .isEqualTo(3_723_000_000_000L); + assertThat(LocalTimeToMillisOfDayConverter.INSTANCE.convert(LocalTime.of(1, 2, 3))).isEqualTo(3_723_000_000_000L); } } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraTypeMappingIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraTypeMappingIntegrationTests.java index 8639c198b..181ceec94 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraTypeMappingIntegrationTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/CassandraTypeMappingIntegrationTests.java @@ -15,20 +15,26 @@ */ package org.springframework.data.cassandra.core.convert; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assume.assumeTrue; +import static org.assertj.core.api.Assertions.*; +import static org.junit.Assume.*; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.math.BigInteger; import java.net.InetAddress; import java.nio.ByteBuffer; import java.time.LocalTime; -import java.util.*; - -import com.datastax.driver.core.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.UUID; import org.junit.Before; import org.junit.Ignore; @@ -43,10 +49,20 @@ import org.springframework.data.cassandra.support.CassandraVersion; import org.springframework.data.cassandra.test.util.AbstractKeyspaceCreatingIntegrationTest; import org.springframework.data.util.Version; +import com.datastax.driver.core.DataType; +import com.datastax.driver.core.Duration; +import com.datastax.driver.core.LocalDate; +import com.datastax.driver.core.ResultSet; +import com.datastax.driver.core.Row; +import com.datastax.driver.core.SimpleStatement; +import com.datastax.driver.core.TupleType; +import com.datastax.driver.core.TupleValue; + /** * Integration tests for type mapping using {@link CassandraOperations}. * * @author Mark Paluch + * @author Hurelhuyag * @soundtrack DJ THT meets Scarlet - Live 2 Dance (Extended Mix) (Zgin Remix) */ @SuppressWarnings("Since15") @@ -539,9 +555,11 @@ public class CassandraTypeMappingIntegrationTests extends AbstractKeyspaceCreati assertThat(loaded.getLocalTime()).isEqualTo(entity.getLocalTime()); } - @Test - public void shouldReadLocalTimeFromDriver(){ + @Test // DATACASS-694 + public void shouldReadLocalTimeFromDriver() { + assumeTrue(cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_10)); + AllPossibleTypes entity = new AllPossibleTypes("1"); entity.setLocalTime(java.time.LocalTime.of(1, 2, 3)); @@ -549,23 +567,21 @@ public class CassandraTypeMappingIntegrationTests extends AbstractKeyspaceCreati operations.insert(entity); ResultSet resultSet = session.execute("SELECT localTime FROM AllPossibleTypes WHERE id = '1'"); - Iterator rowIt = resultSet.iterator(); - while (rowIt.hasNext()){ - Row row = rowIt.next(); - long timeNanos = row.getTime(0); - assertThat(timeNanos).isEqualTo(3_723_000_000_000L); - } + Row row = resultSet.one(); + assertThat(row.getTime(0)).isEqualTo(3_723_000_000_000L); } - @Test - public void shouldWriteLocalTimeThroughDriver(){ + @Test // DATACASS-694 + public void shouldWriteLocalTimeThroughDriver() { + assumeTrue(cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_10)); session.execute("INSERT INTO AllPossibleTypes(id,localTime) VALUES('1','01:02:03.000')"); - AllPossibleTypes entity = operations.selectOne("SELECT localTime FROM AllPossibleTypes WHERE id = '1'", AllPossibleTypes.class); + AllPossibleTypes entity = operations.selectOne("SELECT localTime FROM AllPossibleTypes WHERE id = '1'", + AllPossibleTypes.class); - assertThat(entity).hasFieldOrProperty("localTime").isEqualTo(LocalTime.of(1, 2, 3)); + assertThat(entity.getLocalTime()).isEqualTo(LocalTime.of(1, 2, 3, 0)); } @Test // DATACASS-296, DATACASS-563 diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/UpdateMapperUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/UpdateMapperUnitTests.java index 81dbf65ab..2f98d84fb 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/UpdateMapperUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/UpdateMapperUnitTests.java @@ -239,14 +239,14 @@ public class UpdateMapperUnitTests { assertThat(update.toString()).isEqualTo("tuple = ('foo')"); } - @Test // DATACASS-302 + @Test // DATACASS-302, DATACASS-694 public void shouldMapTime() { Update update = this.updateMapper.getMappedObject(Update.empty().set("localTime", LocalTime.of(1, 2, 3)), this.persistentEntity); assertThat(update.getUpdateOperations()).hasSize(1); - assertThat(update.toString()).isEqualTo("localtime = 3723000"); + assertThat(update.toString()).isEqualTo("localtime = 3723000000000"); } @Test // DATACASS-523