Polish "Migrate off deprecated Spring Data Cassandra API"

See gh-20662
This commit is contained in:
Stephane Nicoll
2020-03-24 18:26:33 +01:00
parent 8355d30456
commit 97bf3ecf1c
5 changed files with 61 additions and 94 deletions

View File

@@ -20,11 +20,8 @@ import java.util.Collections;
import java.util.Set;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.context.DriverContext;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.mockito.BDDMockito;
import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
import org.springframework.boot.autoconfigure.data.cassandra.city.City;
@@ -43,8 +40,6 @@ import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.ObjectUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.when;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link CassandraDataAutoConfiguration}.
@@ -66,7 +61,7 @@ class CassandraDataAutoConfigurationTests {
@Test
void templateExists() {
load(TestConfiguration.class);
load(CassandraMockConfiguration.class);
assertThat(this.context.getBeanNamesForType(CassandraTemplate.class)).hasSize(1);
}
@@ -91,7 +86,8 @@ class CassandraDataAutoConfigurationTests {
void codecRegistryShouldBeSet() {
load();
CassandraConverter cassandraConverter = this.context.getBean(CassandraConverter.class);
assertThat(BDDMockito.mockingDetails(cassandraConverter.getCodecRegistry()).isMock()).isTrue();
assertThat(cassandraConverter.getCodecRegistry())
.isSameAs(this.context.getBean(CassandraMockConfiguration.class).codecRegistry);
}
@Test
@@ -120,26 +116,12 @@ class CassandraDataAutoConfigurationTests {
if (!ObjectUtils.isEmpty(config)) {
ctx.register(config);
}
ctx.register(TestConfiguration.class, CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class);
ctx.register(CassandraMockConfiguration.class, CassandraAutoConfiguration.class,
CassandraDataAutoConfiguration.class);
ctx.refresh();
this.context = ctx;
}
@Configuration(proxyBeanMethods = false)
static class TestConfiguration {
@Bean
CqlSession cqlSession() {
CodecRegistry codecRegistry = mock(CodecRegistry.class);
DriverContext context = mock(DriverContext.class);
CqlSession cqlSession = mock(CqlSession.class);
when(context.getCodecRegistry()).thenReturn(codecRegistry);
when(cqlSession.getContext()).thenReturn(context);
return cqlSession;
}
}
@Configuration(proxyBeanMethods = false)
@EntityScan("org.springframework.boot.autoconfigure.data.cassandra.city")
static class EntityScanConfig {

View File

@@ -0,0 +1,48 @@
/*
* Copyright 2012-2020 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.data.cassandra;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.context.DriverContext;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
/**
* Test configuration that mocks access to Cassandra.
*
* @author Stephane Nicoll
*/
@Configuration(proxyBeanMethods = false)
class CassandraMockConfiguration {
final CodecRegistry codecRegistry = mock(CodecRegistry.class);
@Bean
CqlSession cqlSession() {
DriverContext context = mock(DriverContext.class);
given(context.getCodecRegistry()).willReturn(this.codecRegistry);
CqlSession cqlSession = mock(CqlSession.class);
given(cqlSession.getContext()).willReturn(context);
return cqlSession;
}
}

View File

@@ -18,9 +18,6 @@ package org.springframework.boot.autoconfigure.data.cassandra;
import java.util.Set;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.context.DriverContext;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
@@ -29,7 +26,6 @@ import org.springframework.boot.autoconfigure.data.cassandra.city.City;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.core.ReactiveCassandraTemplate;
import org.springframework.data.cassandra.core.convert.CassandraConverter;
@@ -38,8 +34,6 @@ import org.springframework.data.cassandra.core.mapping.SimpleUserTypeResolver;
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.when;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link CassandraReactiveDataAutoConfiguration}.
@@ -92,27 +86,12 @@ class CassandraReactiveDataAutoConfigurationTests {
if (config != null) {
ctx.register(config);
}
ctx.register(TestConfiguration.class, CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class,
CassandraReactiveDataAutoConfiguration.class);
ctx.register(CassandraMockConfiguration.class, CassandraAutoConfiguration.class,
CassandraDataAutoConfiguration.class, CassandraReactiveDataAutoConfiguration.class);
ctx.refresh();
this.context = ctx;
}
@Configuration(proxyBeanMethods = false)
static class TestConfiguration {
@Bean
CqlSession cqlSession() {
CodecRegistry codecRegistry = mock(CodecRegistry.class);
DriverContext context = mock(DriverContext.class);
CqlSession cqlSession = mock(CqlSession.class);
when(context.getCodecRegistry()).thenReturn(codecRegistry);
when(cqlSession.getContext()).thenReturn(context);
return cqlSession;
}
}
@Configuration(proxyBeanMethods = false)
@EntityScan("org.springframework.boot.autoconfigure.data.cassandra.city")
static class EntityScanConfig {

View File

@@ -18,10 +18,7 @@ package org.springframework.boot.autoconfigure.data.cassandra;
import java.util.Set;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
import com.datastax.oss.driver.api.core.context.DriverContext;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -34,7 +31,6 @@ import org.springframework.boot.autoconfigure.data.cassandra.city.ReactiveCityRe
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
@@ -42,8 +38,6 @@ import org.springframework.data.cassandra.repository.config.EnableReactiveCassan
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.when;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link CassandraReactiveRepositoriesAutoConfiguration}.
@@ -105,31 +99,16 @@ class CassandraReactiveRepositoriesAutoConfigurationTests {
return (Set<Class<?>>) ReflectionTestUtils.getField(mappingContext, "initialEntitySet");
}
@Configuration(proxyBeanMethods = false)
static class TestConfiguration {
@Bean
CqlSession cqlSession() {
CodecRegistry codecRegistry = mock(CodecRegistry.class);
DriverContext context = mock(DriverContext.class);
CqlSession cqlSession = mock(CqlSession.class);
when(context.getCodecRegistry()).thenReturn(codecRegistry);
when(cqlSession.getContext()).thenReturn(context);
return cqlSession;
}
}
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(EmptyDataPackage.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class EmptyConfiguration {
}
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(City.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class DefaultConfiguration {
}
@@ -137,7 +116,7 @@ class CassandraReactiveRepositoriesAutoConfigurationTests {
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(CassandraReactiveRepositoriesAutoConfigurationTests.class)
@EnableReactiveCassandraRepositories(basePackageClasses = ReactiveCityCassandraRepository.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class CustomizedConfiguration {
}

View File

@@ -18,10 +18,7 @@ package org.springframework.boot.autoconfigure.data.cassandra;
import java.util.Set;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
import com.datastax.oss.driver.api.core.context.DriverContext;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -34,7 +31,6 @@ import org.springframework.boot.autoconfigure.data.cassandra.city.CityRepository
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
@@ -42,8 +38,6 @@ import org.springframework.data.cassandra.repository.config.EnableCassandraRepos
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.when;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link CassandraRepositoriesAutoConfiguration}.
@@ -103,31 +97,16 @@ class CassandraRepositoriesAutoConfigurationTests {
return (Set<Class<?>>) ReflectionTestUtils.getField(mappingContext, "initialEntitySet");
}
@Configuration(proxyBeanMethods = false)
static class TestConfiguration {
@Bean
CqlSession cqlSession() {
CodecRegistry codecRegistry = mock(CodecRegistry.class);
DriverContext context = mock(DriverContext.class);
CqlSession cqlSession = mock(CqlSession.class);
when(context.getCodecRegistry()).thenReturn(codecRegistry);
when(cqlSession.getContext()).thenReturn(context);
return cqlSession;
}
}
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(EmptyDataPackage.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class EmptyConfiguration {
}
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(City.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class DefaultConfiguration {
}
@@ -135,7 +114,7 @@ class CassandraRepositoriesAutoConfigurationTests {
@Configuration(proxyBeanMethods = false)
@TestAutoConfigurationPackage(CassandraRepositoriesAutoConfigurationTests.class)
@EnableCassandraRepositories(basePackageClasses = CityCassandraRepository.class)
@Import(TestConfiguration.class)
@Import(CassandraMockConfiguration.class)
static class CustomizedConfiguration {
}