From 352dfd6879ff2005cf61ce9ac04e744dfdbb0885 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 19 Apr 2017 12:08:25 +0200 Subject: [PATCH] DATACASS-431 - Disable tests for ALTER TYPE support on Apache Cassandra 3.10. Apache Cassandra does not allow altering column/field types since version 3.10. We don't run these tests anymore for version 3.10 and later. --- .../AlterTableCqlGeneratorIntegrationTests.java | 17 +++++++++++++++-- ...terUserTypeCqlGeneratorIntegrationTests.java | 15 +++++++++++++-- .../integration/support/CassandraVersion.java | 4 ++-- .../CassandraTypeMappingIntegrationTest.java | 8 ++++---- .../QueryDerivationIntegrationTests.java | 2 +- 5 files changed, 35 insertions(+), 11 deletions(-) rename {spring-data-cassandra/src/test/java/org/springframework/data => spring-cql/src/test/java/org/springframework}/cassandra/test/integration/support/CassandraVersion.java (91%) diff --git a/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGeneratorIntegrationTests.java b/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGeneratorIntegrationTests.java index a7d89da0c..5d944a209 100755 --- a/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGeneratorIntegrationTests.java +++ b/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGeneratorIntegrationTests.java @@ -16,6 +16,7 @@ package org.springframework.cassandra.core.cql.generator; import static org.assertj.core.api.Assertions.*; +import static org.junit.Assume.*; import java.util.LinkedHashMap; import java.util.Map; @@ -27,6 +28,8 @@ import org.springframework.cassandra.core.keyspace.TableOption; import org.springframework.cassandra.core.keyspace.TableOption.CachingOption; import org.springframework.cassandra.core.keyspace.TableOption.KeyCachingOption; import org.springframework.cassandra.test.integration.AbstractKeyspaceCreatingIntegrationTest; +import org.springframework.cassandra.test.integration.support.CassandraVersion; +import org.springframework.data.util.Version; import com.datastax.driver.core.ColumnMetadata; import com.datastax.driver.core.DataType; @@ -40,16 +43,24 @@ import com.datastax.driver.core.TableMetadata; */ public class AlterTableCqlGeneratorIntegrationTests extends AbstractKeyspaceCreatingIntegrationTest { + static final Version CASSANDRA_3_10 = Version.parse("3.10"); + + Version cassandraVersion; + @Before public void setUp() throws Exception { + cassandraVersion = CassandraVersion.get(session); + session.execute("DROP TABLE IF EXISTS addamsFamily;"); session.execute("DROP TABLE IF EXISTS users;"); } - @Test // DATACASS-192 + @Test // DATACASS-192, DATACASS-429 public void alterTableAlterColumnType() { + assumeTrue(cassandraVersion.isLessThan(CASSANDRA_3_10)); + session.execute( "CREATE TABLE addamsFamily (name varchar PRIMARY KEY, gender varchar,\n" + " lastknownlocation bigint);"); @@ -63,9 +74,11 @@ public class AlterTableCqlGeneratorIntegrationTests extends AbstractKeyspaceCrea assertThat(column.getType()).isEqualTo(DataType.varint()); } - @Test // DATACASS-192 + @Test // DATACASS-192, DATACASS-429 public void alterTableAlterListColumnType() { + assumeTrue(cassandraVersion.isLessThan(CASSANDRA_3_10)); + session.execute( "CREATE TABLE addamsFamily (name varchar PRIMARY KEY, gender varchar,\n" + " lastknownlocation list);"); diff --git a/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGeneratorIntegrationTests.java b/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGeneratorIntegrationTests.java index 55ec530be..157e86c81 100644 --- a/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGeneratorIntegrationTests.java +++ b/spring-cql/src/test/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGeneratorIntegrationTests.java @@ -15,25 +15,34 @@ */ package org.springframework.cassandra.core.cql.generator; +import static org.junit.Assume.*; import static org.springframework.cassandra.core.cql.generator.AlterUserTypeCqlGenerator.*; import org.junit.Before; import org.junit.Test; import org.springframework.cassandra.core.keyspace.AlterUserTypeSpecification; import org.springframework.cassandra.test.integration.AbstractKeyspaceCreatingIntegrationTest; +import org.springframework.cassandra.test.integration.support.CassandraVersion; +import org.springframework.data.util.Version; import com.datastax.driver.core.DataType; /** * Integration tests for {@link AlterUserTypeCqlGenerator}. - * + * * @author Mark Paluch */ public class AlterUserTypeCqlGeneratorIntegrationTests extends AbstractKeyspaceCreatingIntegrationTest { + static final Version CASSANDRA_3_10 = Version.parse("3.10"); + + Version cassandraVersion; + @Before public void setUp() throws Exception { + cassandraVersion = CassandraVersion.get(session); + session.execute("DROP TYPE IF EXISTS address;"); session.execute("CREATE TYPE address (zip text, state text);"); } @@ -47,9 +56,11 @@ public class AlterUserTypeCqlGeneratorIntegrationTests extends AbstractKeyspaceC session.execute(toCql(spec)); } - @Test // DATACASS-172 + @Test // DATACASS-172, DATACASS-429 public void alterTypeShouldAlterField() { + assumeTrue(cassandraVersion.isLessThan(CASSANDRA_3_10)); + AlterUserTypeSpecification spec = AlterUserTypeSpecification.alterType("address")// .alter("zip", DataType.varchar()); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/support/CassandraVersion.java b/spring-cql/src/test/java/org/springframework/cassandra/test/integration/support/CassandraVersion.java similarity index 91% rename from spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/support/CassandraVersion.java rename to spring-cql/src/test/java/org/springframework/cassandra/test/integration/support/CassandraVersion.java index 80fcd7fa5..00c8c2446 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/support/CassandraVersion.java +++ b/spring-cql/src/test/java/org/springframework/cassandra/test/integration/support/CassandraVersion.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 the original author or authors. + * Copyright 2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.cassandra.test.integration.support; +package org.springframework.cassandra.test.integration.support; import lombok.experimental.UtilityClass; diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/convert/CassandraTypeMappingIntegrationTest.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/convert/CassandraTypeMappingIntegrationTest.java index 02effac67..39898ab6f 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/convert/CassandraTypeMappingIntegrationTest.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/convert/CassandraTypeMappingIntegrationTest.java @@ -37,11 +37,11 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.springframework.cassandra.test.integration.AbstractKeyspaceCreatingIntegrationTest; +import org.springframework.cassandra.test.integration.support.CassandraVersion; import org.springframework.data.annotation.Id; import org.springframework.data.cassandra.core.CassandraOperations; import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.data.cassandra.domain.AllPossibleTypes; -import org.springframework.data.cassandra.test.integration.support.CassandraVersion; import org.springframework.data.cassandra.test.integration.support.SchemaTestUtils; import org.springframework.data.util.Version; @@ -58,7 +58,7 @@ import com.datastax.driver.core.SimpleStatement; @SuppressWarnings("Since15") public class CassandraTypeMappingIntegrationTest extends AbstractKeyspaceCreatingIntegrationTest { - static final Version VERSION_3_1 = Version.parse("3.10"); + static final Version VERSION_3_10 = Version.parse("3.10"); CassandraOperations operations; Version cassandraVersion; @@ -75,7 +75,7 @@ public class CassandraTypeMappingIntegrationTest extends AbstractKeyspaceCreatin SchemaTestUtils.truncate(AllPossibleTypes.class, operations); SchemaTestUtils.truncate(TimeEntity.class, operations); - if (cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_1)) { + if (cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_10)) { SchemaTestUtils.potentiallyCreateTableFor(WithDuration.class, operations); SchemaTestUtils.truncate(WithDuration.class, operations); @@ -633,7 +633,7 @@ public class CassandraTypeMappingIntegrationTest extends AbstractKeyspaceCreatin @Test // DATACASS-429 public void shouldReadAndWriteDuration() { - assumeTrue(cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_1)); + assumeTrue(cassandraVersion.isGreaterThanOrEqualTo(VERSION_3_10)); WithDuration withDuration = new WithDuration("foo", Duration.from("2h")); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/querymethods/derived/QueryDerivationIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/querymethods/derived/QueryDerivationIntegrationTests.java index c2962113d..64b7c9e90 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/querymethods/derived/QueryDerivationIntegrationTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/repository/querymethods/derived/QueryDerivationIntegrationTests.java @@ -27,6 +27,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cassandra.test.integration.support.CassandraVersion; import org.springframework.context.annotation.Configuration; import org.springframework.data.cassandra.config.SchemaAction; import org.springframework.data.cassandra.core.CassandraOperations; @@ -37,7 +38,6 @@ import org.springframework.data.cassandra.test.integration.repository.querymetho import org.springframework.data.cassandra.test.integration.repository.querymethods.derived.PersonRepository.PersonDto; import org.springframework.data.cassandra.test.integration.repository.querymethods.derived.PersonRepository.PersonProjection; import org.springframework.data.cassandra.test.integration.support.AbstractSpringDataEmbeddedCassandraIntegrationTest; -import org.springframework.data.cassandra.test.integration.support.CassandraVersion; import org.springframework.data.cassandra.test.integration.support.IntegrationTestConfig; import org.springframework.data.domain.Sort; import org.springframework.data.util.Version;