From 484e858393c33b8e9aa0ddeeb171f69c8998b096 Mon Sep 17 00:00:00 2001 From: Pete Cable Date: Mon, 26 Jan 2015 17:18:15 -0800 Subject: [PATCH] added test for BigInteger / varint mapping --- .../BigIntParamIntegrationTests.java | 48 +++++++++++++++++++ .../querymethods/bigintparam/BigThing.java | 28 +++++++++++ .../bigintparam/BigThingRepo.java | 13 +++++ 3 files changed, 89 insertions(+) create mode 100644 spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigIntParamIntegrationTests.java create mode 100644 spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThing.java create mode 100644 spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThingRepo.java diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigIntParamIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigIntParamIntegrationTests.java new file mode 100644 index 000000000..0de834747 --- /dev/null +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigIntParamIntegrationTests.java @@ -0,0 +1,48 @@ +package org.springframework.data.cassandra.test.integration.querymethods.bigintparam; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.SchemaAction; +import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; +import org.springframework.data.cassandra.test.integration.support.AbstractSpringDataEmbeddedCassandraIntegrationTest; +import org.springframework.data.cassandra.test.integration.support.IntegrationTestConfig; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigInteger; + +import static org.junit.Assert.assertNotNull; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration +public class BigIntParamIntegrationTests extends AbstractSpringDataEmbeddedCassandraIntegrationTest { + + @Configuration + @EnableCassandraRepositories(basePackageClasses = BigThingRepo.class) + public static class Config extends IntegrationTestConfig { + @Override + public String[] getEntityBasePackages() { + return new String[] { BigThing.class.getPackage().getName() }; + } + + @Override + public SchemaAction getSchemaAction() { + return SchemaAction.RECREATE_DROP_UNUSED; + } + } + + @Autowired + BigThingRepo repo; + + @Test + public void testQueryWithReference() { + BigInteger number = new BigInteger("42"); + BigThing saved = new BigThing(number); + repo.save(saved); + + BigThing found = repo.findThingByBigInteger(new BigInteger("42")); + assertNotNull(found); + } +} diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThing.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThing.java new file mode 100644 index 000000000..ce2c22129 --- /dev/null +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThing.java @@ -0,0 +1,28 @@ +package org.springframework.data.cassandra.test.integration.querymethods.bigintparam; + +import org.springframework.cassandra.core.PrimaryKeyType; +import org.springframework.data.cassandra.mapping.PrimaryKeyColumn; +import org.springframework.data.cassandra.mapping.Table; + +import java.math.BigInteger; + +@Table +public class BigThing { + + @PrimaryKeyColumn(ordinal = 0, type = PrimaryKeyType.PARTITIONED) + private BigInteger number; + + public BigThing() {} + + public BigThing(BigInteger number) { + setNumber(number); + } + + public BigInteger getNumber() { + return number; + } + + public void setNumber(BigInteger number) { + this.number = number; + } +} diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThingRepo.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThingRepo.java new file mode 100644 index 000000000..be6118efe --- /dev/null +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/querymethods/bigintparam/BigThingRepo.java @@ -0,0 +1,13 @@ +package org.springframework.data.cassandra.test.integration.querymethods.bigintparam; + +import org.springframework.data.cassandra.repository.CassandraRepository; +import org.springframework.data.cassandra.repository.Query; + +import java.math.BigInteger; + +public interface BigThingRepo extends CassandraRepository { + + @Query("SELECT * from bigthing where number = ?0") + BigThing findThingByBigInteger(BigInteger number); + +}