From 46ab6b4c945fa5eef1acc000c9d9735a715c8f31 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 6 Mar 2020 11:33:40 +0100 Subject: [PATCH] DATAMONGO-2481 - Polishing. Migrate more tests to JUnit 5. Rearrange methods. Reduce method visibility according to JUnit 5 requirements. Remove Java 11 build and only use Java 8 and 13. Original pull request: #838. --- Jenkinsfile | 36 -- spring-data-mongodb/pom.xml | 6 - .../ConfigClassInDefaultPackageUnitTests.java | 4 +- .../data/mongodb/DependencyTests.java | 12 +- .../mongodb/MongoDatabaseUtilsUnitTests.java | 82 +++-- .../MongoTransactionManagerUnitTests.java | 29 +- .../ReactiveMongoDatabaseUtilsUnitTests.java | 39 +-- ...ctiveMongoTransactionManagerUnitTests.java | 49 +-- ...essionAwareMethodInterceptorUnitTests.java | 13 +- .../AbstractMongoConfigurationUnitTests.java | 3 +- ...ctReactiveMongoConfigurationUnitTests.java | 2 +- .../config/AuditingIntegrationTests.java | 2 +- ...gMongoConverterParserIntegrationTests.java | 2 +- .../MongoAuditingRegistrarUnitTests.java | 16 +- .../MongoClientParserIntegrationTests.java | 6 +- .../MongoDbFactoryParserIntegrationTests.java | 6 +- .../config/MongoParserIntegrationTests.java | 10 +- ...ReadPreferencePropertyEditorUnitTests.java | 6 +- ...tringToWriteConcernConverterUnitTests.java | 2 +- .../WriteConcernPropertyEditorUnitTests.java | 6 +- .../core/ChangeStreamOptionsUnitTests.java | 2 +- ...oseableIterableCursorAdapterUnitTests.java | 51 +-- .../data/mongodb/core/CollationUnitTests.java | 2 +- .../mongodb/core/CountQueryUnitTests.java | 6 +- .../core/DefaultBulkOperationsUnitTests.java | 53 +-- .../core/DefaultIndexOperationsUnitTests.java | 33 +- ...faultReactiveIndexOperationsUnitTests.java | 29 +- .../DefaultScriptOperationsUnitTests.java | 36 +- .../core/EntityOperationUnitTests.java | 7 +- ...eAggregationOperationSupportUnitTests.java | 37 +- ...utableInsertOperationSupportUnitTests.java | 49 +-- ...bleMapReduceOperationSupportUnitTests.java | 38 ++- .../core/GeoCommandStatisticsUnitTests.java | 2 +- ...appingMongoJsonSchemaCreatorUnitTests.java | 6 +- ...ntSettingsFactoryBeanIntegrationTests.java | 2 +- ...ngoClientSettingsFactoryBeanUnitTests.java | 3 +- ...ngoEncryptionSettingsFactoryBeanTests.java | 2 +- .../MongoExceptionTranslatorUnitTests.java | 6 +- .../data/mongodb/core/MongoTemplateTests.java | 3 +- .../core/QueryCursorPreparerUnitTests.java | 35 +- ...eAggregationOperationSupportUnitTests.java | 30 +- ...ChangeStreamOperationSupportUnitTests.java | 32 +- ...activeInsertOperationSupportUnitTests.java | 32 +- ...iveMapReduceOperationSupportUnitTests.java | 41 ++- .../core/ReactiveMongoTemplateIndexTests.java | 20 +- .../core/ReactiveMongoTemplateTests.java | 214 ++++++------ .../core/SerializationUtilsUnitTests.java | 2 +- ...leMongoClientDatabaseFactoryUnitTests.java | 20 +- ...ReactiveMongoDatabaseFactoryUnitTests.java | 14 +- .../aggregation/AggregationOptionsTests.java | 6 +- .../AggregationUpdateUnitTests.java | 2 +- .../aggregation/ArrayOperatorsUnitTests.java | 2 +- .../BucketAutoOperationUnitTests.java | 2 +- .../aggregation/BucketOperationUnitTests.java | 2 +- .../ConvertOperatorsUnitTests.java | 2 +- .../aggregation/CountOperationUnitTests.java | 2 +- .../aggregation/ExposedFieldsUnitTests.java | 2 +- .../core/aggregation/FieldsUnitTests.java | 2 +- .../FilterExpressionUnitTests.java | 25 +- .../GeoNearOperationUnitTests.java | 2 +- .../GraphLookupOperationUnitTests.java | 2 +- .../aggregation/GroupOperationUnitTests.java | 2 +- .../aggregation/LookupOperationUnitTests.java | 2 +- .../aggregation/ObjectOperatorsUnitTests.java | 2 +- .../aggregation/OutOperationUnitTest.java | 2 +- .../ProjectionOperationUnitTests.java | 2 +- .../ReactiveAggregationUnitTests.java | 41 +-- .../ReplaceRootOperationUnitTests.java | 2 +- .../ReplaceWithOperationUnitTests.java | 2 +- .../aggregation/SampleOperationUnitTests.java | 2 +- .../aggregation/SetOperationUnitTests.java | 2 +- .../aggregation/SkipOperationUnitTests.java | 2 +- .../SortByCountOperationUnitTests.java | 2 +- .../aggregation/SortOperationUnitTests.java | 2 +- .../aggregation/StringOperatorsUnitTests.java | 2 +- ...dAggregationOperationContextUnitTests.java | 16 +- .../aggregation/UnsetOperationUnitTests.java | 2 +- .../aggregation/UnwindOperationUnitTests.java | 2 +- .../auditing/MongoTemplateAuditingTests.java | 2 +- .../AbstractMongoConverterUnitTests.java | 2 +- .../convert/CustomConvertersUnitTests.java | 46 ++- .../core/convert/DataMongo273Tests.java | 10 +- .../DbRefMappingMongoConverterUnitTests.java | 12 +- .../DefaultDbRefResolverUnitTests.java | 38 ++- .../DefaultMongoTypeMapperUnitTests.java | 6 +- .../convert/DocumentAccessorUnitTests.java | 2 +- .../core/convert/GeoConvertersUnitTests.java | 2 +- .../convert/GeoJsonConverterUnitTests.java | 2 +- .../LazyLoadingInterceptorUnitTests.java | 8 +- .../MappingMongoConverterUnitTests.java | 320 +++++++++--------- .../convert/MongoConvertersUnitTests.java | 3 +- .../MongoCustomConversionsUnitTests.java | 7 +- .../convert/MongoExampleMapperUnitTests.java | 12 +- .../MongoJsonSchemaMapperUnitTests.java | 6 +- .../NamedMongoScriptConvertsUnitTests.java | 2 +- .../core/convert/ObjectPathUnitTests.java | 6 +- .../TermToStringConverterUnitTests.java | 2 +- .../core/convert/UpdateMapperUnitTests.java | 185 +++++----- .../core/geo/AbstractGeoSpatialTests.java | 2 +- .../core/geo/GeoJsonModuleUnitTests.java | 6 +- .../core/index/IndexFieldUnitTests.java | 2 +- .../core/index/IndexInfoUnitTests.java | 2 +- ...PersistentEntityIndexCreatorUnitTests.java | 56 +-- ...ersistentEntityIndexResolverUnitTests.java | 2 +- ...PersistentEntityIndexCreatorUnitTests.java | 29 +- .../BasicMongoPersistentEntityUnitTests.java | 62 ++-- ...BasicMongoPersistentPropertyUnitTests.java | 6 +- .../core/mapping/GenericMappingTests.java | 26 +- .../mapping/MongoMappingContextUnitTests.java | 42 +-- ...PersistentPropertyComparatorUnitTests.java | 12 +- .../AbstractMongoEventListenerUnitTests.java | 2 +- .../AuditingEntityCallbackUnitTests.java | 34 +- .../event/AuditingEventListenerUnitTests.java | 35 +- .../event/LoggingEventListenerTests.java | 10 +- .../ValidatingMongoEventListenerTests.java | 19 +- .../mapreduce/MapReduceCountsUnitTests.java | 2 +- .../core/mapreduce/MapReduceOptionsTests.java | 2 +- .../mapreduce/MapReduceResultsUnitTests.java | 2 +- .../messaging/ChangeStreamTaskUnitTests.java | 31 +- .../core/messaging/ChangeStreamTests.java | 54 +-- .../messaging/CursorReadingTaskUnitTests.java | 17 +- ...aultMessageListenerContainerUnitTests.java | 41 +-- .../TailableCursorRequestUnitTests.java | 3 +- .../core/messaging/TaskFactoryUnitTests.java | 31 +- .../core/query/BasicQueryUnitTests.java | 2 +- .../mongodb/core/query/FieldUnitTests.java | 2 +- .../mongodb/core/query/IndexUnitTests.java | 2 +- .../core/query/MetricConversionUnitTests.java | 2 +- .../core/query/NearQueryUnitTests.java | 2 +- .../data/mongodb/core/query/SortTests.java | 2 +- .../core/query/TextCriteriaUnitTests.java | 2 +- .../core/query/TextQueryUnitTests.java | 2 +- .../query/UntypedExampleMatcherUnitTests.java | 7 +- .../data/mongodb/core/query/UpdateTests.java | 2 +- .../schema/JsonSchemaObjectUnitTests.java | 2 +- .../schema/JsonSchemaPropertyUnitTests.java | 2 +- .../core/schema/MongoJsonSchemaUnitTests.java | 24 +- .../ExecutableMongoScriptUnitTests.java | 43 +-- .../script/NamedMongoScriptUnitTests.java | 2 +- .../core/spel/ExpressionNodeUnitTests.java | 20 +- .../CriteriaValidatorUnitTests.java | 2 +- .../data/mongodb/gridfs/AntPathUnitTests.java | 2 +- .../gridfs/GridFsResourceUnitTests.java | 2 +- .../mongodb/performance/PerformanceTests.java | 6 +- .../performance/ReactivePerformanceTests.java | 7 +- ...tractPersonRepositoryIntegrationTests.java | 16 +- .../data/mongodb/repository/Contact.java | 4 + .../cdi/CdiExtensionIntegrationTests.java | 10 +- ...sitoryConfigurationExtensionUnitTests.java | 2 +- ...sitoryConfigurationExtensionUnitTests.java | 2 +- .../query/AbstractMongoQueryUnitTests.java | 89 ++--- .../AbstractReactiveMongoQueryUnitTests.java | 57 ++-- .../ConvertingParameterAccessorUnitTests.java | 12 +- ...appingMongoEntityInformationUnitTests.java | 8 +- ...oParametersParameterAccessorUnitTests.java | 2 +- .../query/MongoParametersUnitTests.java | 54 +-- .../query/MongoQueryExecutionUnitTests.java | 58 ++-- .../query/PartTreeMongoQueryUnitTests.java | 12 +- .../ReactiveMongoQueryExecutionUnitTests.java | 8 +- ...activeStringBasedAggregationUnitTests.java | 12 +- ...eactiveStringBasedMongoQueryUnitTests.java | 12 +- .../StringBasedAggregationUnitTests.java | 13 +- .../query/StringBasedMongoQueryUnitTests.java | 13 +- ...nsuringQueryCreationListenerUnitTests.java | 31 +- .../MongoRepositoryFactoryBeanUnitTests.java | 8 +- .../MongoRepositoryFactoryUnitTests.java | 12 +- .../SimpleMongoRepositoryUnitTests.java | 12 +- ...leMongoRepositoryVersionedEntityTests.java | 28 +- ...impleReactiveMongoRepositoryUnitTests.java | 45 +-- ...veMongoRepositoryVersionedEntityTests.java | 4 +- .../SpringDataMongodbSerializerUnitTests.java | 13 +- .../mongodb/test/util/CleanMongoDBTests.java | 38 ++- .../test/util/MongoClientExtension.java | 5 +- .../test/util/MongoTemplateExtension.java | 164 +++++---- .../test/util/ReactiveMongoTestTemplate.java | 6 +- .../data/mongodb/test/util/Template.java | 11 +- 176 files changed, 1701 insertions(+), 1676 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d7b972c25..ca8038866 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -46,22 +46,6 @@ pipeline { } } } - stage('Publish JDK 11 + MongoDB 4.2') { - when { - changeset "ci/openjdk11-mongodb-4.2/**" - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-openjdk11-with-mongodb-4.2.0", "ci/openjdk11-mongodb-4.2/") - docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - image.push() - } - } - } - } stage('Publish JDK 13 + MongoDB 4.2') { when { changeset "ci/openjdk13-mongodb-4.2/**" @@ -155,26 +139,6 @@ pipeline { } } - stage("test: baseline (jdk11)") { - agent { - docker { - image 'springci/spring-data-openjdk11-with-mongodb-4.2.0:latest' - label 'data' - args '-v $HOME:/tmp/jenkins-home' - } - } - options { timeout(time: 30, unit: 'MINUTES') } - steps { - sh 'rm -rf ?' - sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' - sh 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' - sh 'sleep 10' - sh 'mongo --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"' - sh 'sleep 15' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -Pjava11 clean dependency:list test -Duser.name=jenkins -Dsort -U -B' - } - } - stage("test: baseline (jdk13)") { agent { docker { diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 76df2c09e..872db5d42 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -344,12 +344,6 @@ src/test/resources/logging.properties true - - - listener - org.springframework.data.mongodb.test.util.CleanMongoDBJunitRunListener - - diff --git a/spring-data-mongodb/src/test/java/ConfigClassInDefaultPackageUnitTests.java b/spring-data-mongodb/src/test/java/ConfigClassInDefaultPackageUnitTests.java index 48450f141..2ba51d37c 100644 --- a/spring-data-mongodb/src/test/java/ConfigClassInDefaultPackageUnitTests.java +++ b/spring-data-mongodb/src/test/java/ConfigClassInDefaultPackageUnitTests.java @@ -13,7 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.junit.Test; + +import org.junit.jupiter.api.Test; + import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/DependencyTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/DependencyTests.java index d1d92aaca..166ae9029 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/DependencyTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/DependencyTests.java @@ -16,11 +16,11 @@ package org.springframework.data.mongodb; import static de.schauderhaft.degraph.check.JCheck.*; -import static org.junit.Assert.*; +import static org.hamcrest.MatcherAssert.*; import de.schauderhaft.degraph.configuration.NamedPattern; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests package dependency constraints. @@ -28,10 +28,10 @@ import org.junit.Test; * @author Jens Schauder * @author Oliver Gierke */ -public class DependencyTests { +class DependencyTests { @Test - public void noInternalPackageCycles() { + void noInternalPackageCycles() { assertThat(classpath() // .noJars() // @@ -43,7 +43,7 @@ public class DependencyTests { } @Test - public void onlyConfigMayUseRepository() { + void onlyConfigMayUseRepository() { assertThat(classpath() // .including("org.springframework.data.**") // @@ -60,7 +60,7 @@ public class DependencyTests { } @Test - public void commonsInternaly() { + void commonsInternaly() { assertThat(classpath() // .noJars() // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoDatabaseUtilsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoDatabaseUtilsUnitTests.java index 700b6f6a6..b51468e3f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoDatabaseUtilsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoDatabaseUtilsUnitTests.java @@ -22,12 +22,11 @@ import static org.mockito.Mockito.*; import javax.transaction.Status; import javax.transaction.UserTransaction; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.jta.JtaTransactionManager; @@ -42,8 +41,8 @@ import com.mongodb.session.ServerSession; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class MongoDatabaseUtilsUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoDatabaseUtilsUnitTests { @Mock ClientSession session; @Mock ServerSession serverSession; @@ -52,23 +51,8 @@ public class MongoDatabaseUtilsUnitTests { @Mock UserTransaction userTransaction; - @Before - public void setUp() { - - when(dbFactory.getSession(any())).thenReturn(session); - - when(dbFactory.withSession(session)).thenReturn(dbFactory); - - when(dbFactory.getMongoDatabase()).thenReturn(db); - - when(session.getServerSession()).thenReturn(serverSession); - when(session.hasActiveTransaction()).thenReturn(true); - - when(serverSession.isClosed()).thenReturn(false); - } - - @After - public void verifyTransactionSynchronizationManagerState() { + @AfterEach + void verifyTransactionSynchronizationManagerState() { assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue(); assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse(); @@ -79,7 +63,7 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2130 - public void isTransactionActiveShouldDetectTxViaFactory() { + void isTransactionActiveShouldDetectTxViaFactory() { when(dbFactory.isTransactionActive()).thenReturn(true); @@ -87,7 +71,7 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2130 - public void isTransactionActiveShouldReturnFalseIfNoTxActive() { + void isTransactionActiveShouldReturnFalseIfNoTxActive() { when(dbFactory.isTransactionActive()).thenReturn(false); @@ -95,7 +79,12 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2130 - public void isTransactionActiveShouldLookupTxForActiveTransactionSynchronizationViaTxManager() { + void isTransactionActiveShouldLookupTxForActiveTransactionSynchronizationViaTxManager() { + + when(dbFactory.getSession(any())).thenReturn(session); + when(session.getServerSession()).thenReturn(serverSession); + when(session.hasActiveTransaction()).thenReturn(true); + when(serverSession.isClosed()).thenReturn(false); when(dbFactory.isTransactionActive()).thenReturn(false); @@ -112,7 +101,7 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldNotStartSessionWhenNoTransactionOngoing() { + void shouldNotStartSessionWhenNoTransactionOngoing() { MongoDatabaseUtils.getDatabase(dbFactory, SessionSynchronization.ON_ACTUAL_TRANSACTION); @@ -121,7 +110,14 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldParticipateInOngoingJtaTransactionWithCommitWhenSessionSychronizationIsAny() throws Exception { + void shouldParticipateInOngoingJtaTransactionWithCommitWhenSessionSychronizationIsAny() throws Exception { + + when(dbFactory.getSession(any())).thenReturn(session); + when(dbFactory.withSession(session)).thenReturn(dbFactory); + when(dbFactory.getMongoDatabase()).thenReturn(db); + when(session.getServerSession()).thenReturn(serverSession); + when(session.hasActiveTransaction()).thenReturn(true); + when(serverSession.isClosed()).thenReturn(false); when(userTransaction.getStatus()).thenReturn(Status.STATUS_NO_TRANSACTION, Status.STATUS_ACTIVE, Status.STATUS_ACTIVE); @@ -152,7 +148,14 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldParticipateInOngoingJtaTransactionWithRollbackWhenSessionSychronizationIsAny() throws Exception { + void shouldParticipateInOngoingJtaTransactionWithRollbackWhenSessionSychronizationIsAny() throws Exception { + + when(dbFactory.getSession(any())).thenReturn(session); + when(dbFactory.withSession(session)).thenReturn(dbFactory); + when(dbFactory.getMongoDatabase()).thenReturn(db); + when(session.getServerSession()).thenReturn(serverSession); + when(session.hasActiveTransaction()).thenReturn(true); + when(serverSession.isClosed()).thenReturn(false); when(userTransaction.getStatus()).thenReturn(Status.STATUS_NO_TRANSACTION, Status.STATUS_ACTIVE, Status.STATUS_ACTIVE); @@ -185,8 +188,7 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldNotParticipateInOngoingJtaTransactionWithRollbackWhenSessionSychronizationIsNative() - throws Exception { + void shouldNotParticipateInOngoingJtaTransactionWithRollbackWhenSessionSychronizationIsNative() throws Exception { when(userTransaction.getStatus()).thenReturn(Status.STATUS_NO_TRANSACTION, Status.STATUS_ACTIVE, Status.STATUS_ACTIVE); @@ -219,7 +221,13 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldParticipateInOngoingMongoTransactionWhenSessionSychronizationIsNative() { + void shouldParticipateInOngoingMongoTransactionWhenSessionSychronizationIsNative() { + + when(dbFactory.getSession(any())).thenReturn(session); + when(dbFactory.withSession(session)).thenReturn(dbFactory); + when(dbFactory.getMongoDatabase()).thenReturn(db); + when(session.getServerSession()).thenReturn(serverSession); + when(serverSession.isClosed()).thenReturn(false); MongoTransactionManager txManager = new MongoTransactionManager(dbFactory); TransactionTemplate txTemplate = new TransactionTemplate(txManager); @@ -245,7 +253,13 @@ public class MongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-1920 - public void shouldParticipateInOngoingMongoTransactionWhenSessionSychronizationIsAny() { + void shouldParticipateInOngoingMongoTransactionWhenSessionSynchronizationIsAny() { + + when(dbFactory.getSession(any())).thenReturn(session); + when(dbFactory.withSession(session)).thenReturn(dbFactory); + when(dbFactory.getMongoDatabase()).thenReturn(db); + when(session.getServerSession()).thenReturn(serverSession); + when(serverSession.isClosed()).thenReturn(false); MongoTransactionManager txManager = new MongoTransactionManager(dbFactory); TransactionTemplate txTemplate = new TransactionTemplate(txManager); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoTransactionManagerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoTransactionManagerUnitTests.java index e391866ae..338d35ada 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoTransactionManagerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/MongoTransactionManagerUnitTests.java @@ -18,12 +18,12 @@ package org.springframework.data.mongodb; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.transaction.TransactionDefinition; @@ -41,7 +41,7 @@ import com.mongodb.session.ServerSession; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MongoTransactionManagerUnitTests { @Mock ClientSession session; @@ -52,24 +52,16 @@ public class MongoTransactionManagerUnitTests { @Mock MongoDatabase db; @Mock MongoDatabase db2; - @Before + @BeforeEach public void setUp() { when(dbFactory.getSession(any())).thenReturn(session, session2); - when(dbFactory.withSession(session)).thenReturn(dbFactory); - when(dbFactory.withSession(session2)).thenReturn(dbFactory2); - when(dbFactory.getMongoDatabase()).thenReturn(db); - when(dbFactory2.getMongoDatabase()).thenReturn(db2); - when(session.getServerSession()).thenReturn(serverSession); - when(session2.getServerSession()).thenReturn(serverSession); - - when(serverSession.isClosed()).thenReturn(false); } - @After + @AfterEach public void verifyTransactionSynchronizationManager() { assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue(); @@ -238,6 +230,11 @@ public class MongoTransactionManagerUnitTests { @Test // DATAMONGO-1920 public void suspendTransactionWhilePropagationRequiresNew() { + when(dbFactory.withSession(session2)).thenReturn(dbFactory2); + when(dbFactory2.getMongoDatabase()).thenReturn(db2); + when(session2.getServerSession()).thenReturn(serverSession); + when(serverSession.isClosed()).thenReturn(false); + MongoTransactionManager txManager = new MongoTransactionManager(dbFactory); TransactionStatus txStatus = txManager.getTransaction(new DefaultTransactionDefinition()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoDatabaseUtilsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoDatabaseUtilsUnitTests.java index 9a46ff82a..f05e1c676 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoDatabaseUtilsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoDatabaseUtilsUnitTests.java @@ -22,11 +22,10 @@ import static org.mockito.Mockito.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.transaction.reactive.TransactionSynchronizationManager; import org.springframework.transaction.reactive.TransactionalOperator; @@ -42,26 +41,16 @@ import com.mongodb.session.ServerSession; * @author Mark Paluch * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class ReactiveMongoDatabaseUtilsUnitTests { +@ExtendWith(MockitoExtension.class) +class ReactiveMongoDatabaseUtilsUnitTests { @Mock ClientSession session; @Mock ServerSession serverSession; @Mock ReactiveMongoDatabaseFactory databaseFactory; @Mock MongoDatabase db; - @Before - public void setUp() { - - when(databaseFactory.getSession(any())).thenReturn(Mono.just(session)); - when(databaseFactory.getMongoDatabase()).thenReturn(db); - - when(session.getServerSession()).thenReturn(serverSession); - when(session.hasActiveTransaction()).thenReturn(true); - } - @Test // DATAMONGO-2265 - public void isTransactionActiveShouldDetectTxViaFactory() { + void isTransactionActiveShouldDetectTxViaFactory() { when(databaseFactory.isTransactionActive()).thenReturn(true); @@ -71,7 +60,7 @@ public class ReactiveMongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2265 - public void isTransactionActiveShouldReturnFalseIfNoTxActive() { + void isTransactionActiveShouldReturnFalseIfNoTxActive() { when(databaseFactory.isTransactionActive()).thenReturn(false); @@ -81,8 +70,11 @@ public class ReactiveMongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2265 - public void isTransactionActiveShouldLookupTxForActiveTransactionSynchronizationViaTxManager() { + void isTransactionActiveShouldLookupTxForActiveTransactionSynchronizationViaTxManager() { + when(session.getServerSession()).thenReturn(serverSession); + when(session.hasActiveTransaction()).thenReturn(true); + when(databaseFactory.getSession(any())).thenReturn(Mono.just(session)); when(databaseFactory.isTransactionActive()).thenReturn(false); when(session.commitTransaction()).thenReturn(Mono.empty()); @@ -96,7 +88,9 @@ public class ReactiveMongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2265 - public void shouldNotStartSessionWhenNoTransactionOngoing() { + void shouldNotStartSessionWhenNoTransactionOngoing() { + + when(databaseFactory.getMongoDatabase()).thenReturn(db); ReactiveMongoDatabaseUtils.getDatabase(databaseFactory, SessionSynchronization.ON_ACTUAL_TRANSACTION) // .as(StepVerifier::create) // @@ -108,7 +102,10 @@ public class ReactiveMongoDatabaseUtilsUnitTests { } @Test // DATAMONGO-2265 - public void shouldParticipateInOngoingMongoTransactionWhenSessionSychronizationIsNative() { + void shouldParticipateInOngoingMongoTransactionWhenSessionSychronizationIsNative() { + + when(session.getServerSession()).thenReturn(serverSession); + when(databaseFactory.getSession(any())).thenReturn(Mono.just(session)); ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); when(session.abortTransaction()).thenReturn(Mono.empty()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoTransactionManagerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoTransactionManagerUnitTests.java index a0feccb79..d04db2529 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoTransactionManagerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveMongoTransactionManagerUnitTests.java @@ -15,24 +15,21 @@ */ package org.springframework.data.mongodb; -import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.reactive.TransactionalOperator; import org.springframework.transaction.support.DefaultTransactionDefinition; -import org.springframework.transaction.support.TransactionSynchronizationManager; import com.mongodb.reactivestreams.client.ClientSession; import com.mongodb.reactivestreams.client.MongoDatabase; @@ -44,8 +41,8 @@ import com.mongodb.session.ServerSession; * @author Mark Paluch * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class ReactiveMongoTransactionManagerUnitTests { +@ExtendWith(MockitoExtension.class) +class ReactiveMongoTransactionManagerUnitTests { @Mock ClientSession session; @Mock ClientSession session2; @@ -55,30 +52,16 @@ public class ReactiveMongoTransactionManagerUnitTests { @Mock MongoDatabase db; @Mock MongoDatabase db2; - @Before - public void setUp() { - + @BeforeEach + void setUp() { when(databaseFactory.getSession(any())).thenReturn(Mono.just(session), Mono.just(session2)); - when(databaseFactory.withSession(session)).thenReturn(databaseFactory); - when(databaseFactory.withSession(session2)).thenReturn(databaseFactory2); - when(databaseFactory.getMongoDatabase()).thenReturn(db); - when(databaseFactory2.getMongoDatabase()).thenReturn(db2); - when(session.getServerSession()).thenReturn(serverSession); - when(session2.getServerSession()).thenReturn(serverSession); - } - - @After - public void verifyTransactionSynchronizationManager() { - - assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue(); - assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse(); } @Test // DATAMONGO-2265 - public void triggerCommitCorrectly() { + void triggerCommitCorrectly() { ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); @@ -103,7 +86,7 @@ public class ReactiveMongoTransactionManagerUnitTests { } @Test // DATAMONGO-2265 - public void participateInOnGoingTransactionWithCommit() { + void participateInOnGoingTransactionWithCommit() { ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); @@ -131,7 +114,7 @@ public class ReactiveMongoTransactionManagerUnitTests { } @Test // DATAMONGO-2265 - public void participateInOnGoingTransactionWithRollbackOnly() { + void participateInOnGoingTransactionWithRollbackOnly() { ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); @@ -156,7 +139,7 @@ public class ReactiveMongoTransactionManagerUnitTests { } @Test // DATAMONGO-2265 - public void suspendTransactionWhilePropagationNotSupported() { + void suspendTransactionWhilePropagationNotSupported() { ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); @@ -195,7 +178,11 @@ public class ReactiveMongoTransactionManagerUnitTests { } @Test // DATAMONGO-2265 - public void suspendTransactionWhilePropagationRequiresNew() { + void suspendTransactionWhilePropagationRequiresNew() { + + when(databaseFactory.withSession(session2)).thenReturn(databaseFactory2); + when(databaseFactory2.getMongoDatabase()).thenReturn(db2); + when(session2.getServerSession()).thenReturn(serverSession); ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); @@ -237,7 +224,7 @@ public class ReactiveMongoTransactionManagerUnitTests { } @Test // DATAMONGO-2265 - public void readonlyShouldInitiateASessionStartAndCommitTransaction() { + void readonlyShouldInitiateASessionStartAndCommitTransaction() { ReactiveMongoTransactionManager txManager = new ReactiveMongoTransactionManager(databaseFactory); ReactiveMongoTemplate template = new ReactiveMongoTemplate(databaseFactory); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/SessionAwareMethodInterceptorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/SessionAwareMethodInterceptorUnitTests.java index 85711d834..e27eb7de5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/SessionAwareMethodInterceptorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/SessionAwareMethodInterceptorUnitTests.java @@ -24,11 +24,12 @@ import java.lang.reflect.Method; import java.lang.reflect.Proxy; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.aop.framework.ProxyFactory; import org.springframework.data.mongodb.SessionAwareMethodInterceptor.MethodCache; import org.springframework.test.util.ReflectionTestUtils; @@ -44,7 +45,7 @@ import com.mongodb.client.MongoDatabase; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class SessionAwareMethodInterceptorUnitTests { @Mock ClientSession session; @@ -54,7 +55,7 @@ public class SessionAwareMethodInterceptorUnitTests { MongoCollection collection; MongoDatabase database; - @Before + @BeforeEach public void setUp() { collection = createProxyInstance(session, targetCollection, MongoCollection.class); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java index 50debf50b..d51b6d234 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java @@ -25,7 +25,8 @@ import java.util.Collection; import java.util.Collections; import java.util.Set; -import org.junit.Test; +import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java index 6cef594d6..a89bdd299 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java @@ -25,7 +25,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Set; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingIntegrationTests.java index 14712ebcf..d97d97dae 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingIntegrationTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; import org.joda.time.DateTime; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MappingMongoConverterParserIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MappingMongoConverterParserIntegrationTests.java index 551819050..df7080bed 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MappingMongoConverterParserIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MappingMongoConverterParserIntegrationTests.java @@ -21,7 +21,7 @@ import java.util.Collections; import java.util.Set; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanReference; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoAuditingRegistrarUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoAuditingRegistrarUnitTests.java index b4cdc51f9..202264895 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoAuditingRegistrarUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoAuditingRegistrarUnitTests.java @@ -17,10 +17,10 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.core.type.AnnotationMetadata; @@ -30,21 +30,21 @@ import org.springframework.core.type.AnnotationMetadata; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class MongoAuditingRegistrarUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoAuditingRegistrarUnitTests { - MongoAuditingRegistrar registrar = new MongoAuditingRegistrar(); + private MongoAuditingRegistrar registrar = new MongoAuditingRegistrar(); @Mock AnnotationMetadata metadata; @Mock BeanDefinitionRegistry registry; @Test // DATAMONGO-792 - public void rejectsNullAnnotationMetadata() { + void rejectsNullAnnotationMetadata() { assertThatIllegalArgumentException().isThrownBy(() -> registrar.registerBeanDefinitions(null, registry)); } @Test // DATAMONGO-792 - public void rejectsNullBeanDefinitionRegistry() { + void rejectsNullBeanDefinitionRegistry() { assertThatIllegalArgumentException().isThrownBy(() -> registrar.registerBeanDefinitions(metadata, null)); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoClientParserIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoClientParserIntegrationTests.java index 62a89ef08..e76740e23 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoClientParserIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoClientParserIntegrationTests.java @@ -19,8 +19,8 @@ import static org.assertj.core.api.Assertions.*; import java.util.concurrent.TimeUnit; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.BeanDefinitionReader; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; @@ -47,7 +47,7 @@ public class MongoClientParserIntegrationTests { DefaultListableBeanFactory factory; BeanDefinitionReader reader; - @Before + @BeforeEach public void setUp() { this.factory = new DefaultListableBeanFactory(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java index 51c8aefd6..129eafc92 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java @@ -17,8 +17,8 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.ConstructorArgumentValues; @@ -51,7 +51,7 @@ public class MongoDbFactoryParserIntegrationTests { DefaultListableBeanFactory factory; BeanDefinitionReader reader; - @Before + @BeforeEach public void setUp() { factory = new DefaultListableBeanFactory(); reader = new XmlBeanDefinitionReader(factory); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoParserIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoParserIntegrationTests.java index f37eb7ebd..b030622a5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoParserIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoParserIntegrationTests.java @@ -19,9 +19,9 @@ import static org.assertj.core.api.Assertions.*; import java.util.List; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.PropertyValue; import org.springframework.beans.factory.config.BeanDefinition; @@ -44,7 +44,7 @@ public class MongoParserIntegrationTests { DefaultListableBeanFactory factory; BeanDefinitionReader reader; - @Before + @BeforeEach public void setUp() { this.factory = new DefaultListableBeanFactory(); @@ -52,7 +52,7 @@ public class MongoParserIntegrationTests { } @Test - @Ignore + @Disabled public void readsMongoAttributesCorrectly() { reader.loadBeanDefinitions(new ClassPathResource("namespace/mongo-bean.xml")); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReadPreferencePropertyEditorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReadPreferencePropertyEditorUnitTests.java index 3053e955c..3aed67e9e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReadPreferencePropertyEditorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReadPreferencePropertyEditorUnitTests.java @@ -17,8 +17,8 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.mongodb.ReadPreference; @@ -31,7 +31,7 @@ public class ReadPreferencePropertyEditorUnitTests { ReadPreferencePropertyEditor editor; - @Before + @BeforeEach public void setUp() { editor = new ReadPreferencePropertyEditor(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/StringToWriteConcernConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/StringToWriteConcernConverterUnitTests.java index ade0f678a..5842fd147 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/StringToWriteConcernConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/StringToWriteConcernConverterUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.mongodb.WriteConcern; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/WriteConcernPropertyEditorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/WriteConcernPropertyEditorUnitTests.java index ad937d3d3..482339804 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/WriteConcernPropertyEditorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/WriteConcernPropertyEditorUnitTests.java @@ -17,8 +17,8 @@ package org.springframework.data.mongodb.config; import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.mongodb.WriteConcern; @@ -32,7 +32,7 @@ public class WriteConcernPropertyEditorUnitTests { WriteConcernPropertyEditor editor; - @Before + @BeforeEach public void setUp() { editor = new WriteConcernPropertyEditor(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ChangeStreamOptionsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ChangeStreamOptionsUnitTests.java index 2f03056ce..635951448 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ChangeStreamOptionsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ChangeStreamOptionsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; import org.bson.BsonDocument; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link ChangeStreamOptions}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CloseableIterableCursorAdapterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CloseableIterableCursorAdapterUnitTests.java index 4db0adf31..37417f1c5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CloseableIterableCursorAdapterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CloseableIterableCursorAdapterUnitTests.java @@ -15,14 +15,16 @@ */ package org.springframework.data.mongodb.core; +import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.dao.support.PersistenceExceptionTranslator; import org.springframework.data.mongodb.core.MongoTemplate.CloseableIterableCursorAdapter; import org.springframework.data.mongodb.core.MongoTemplate.DocumentCallback; @@ -35,40 +37,39 @@ import com.mongodb.client.MongoCursor; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class CloseableIterableCursorAdapterUnitTests { +@ExtendWith(MockitoExtension.class) +class CloseableIterableCursorAdapterUnitTests { @Mock PersistenceExceptionTranslator exceptionTranslator; @Mock DocumentCallback callback; - MongoCursor cursor; - CloseableIterator adapter; + private MongoCursor cursor; + private CloseableIterator adapter; - @Before - public void setUp() { - - this.cursor = doThrow(IllegalArgumentException.class).when(mock(MongoCursor.class)); - this.adapter = new CloseableIterableCursorAdapter(cursor, exceptionTranslator, callback); + @BeforeEach + void setUp() { + this.cursor = mock(MongoCursor.class); + this.adapter = new CloseableIterableCursorAdapter<>(cursor, exceptionTranslator, callback); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1276 - public void propagatesOriginalExceptionFromAdapterDotNext() { + @Test // DATAMONGO-1276 + void propagatesOriginalExceptionFromAdapterDotNext() { - cursor.next(); - adapter.next(); + doThrow(IllegalArgumentException.class).when(cursor).next(); + assertThatIllegalArgumentException().isThrownBy(() -> adapter.next()); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1276 - public void propagatesOriginalExceptionFromAdapterDotHasNext() { + @Test // DATAMONGO-1276 + void propagatesOriginalExceptionFromAdapterDotHasNext() { - cursor.hasNext(); - adapter.hasNext(); + doThrow(IllegalArgumentException.class).when(cursor).hasNext(); + assertThatIllegalArgumentException().isThrownBy(() -> adapter.hasNext()); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1276 - public void propagatesOriginalExceptionFromAdapterDotClose() { + @Test // DATAMONGO-1276 + void propagatesOriginalExceptionFromAdapterDotClose() { - cursor.close(); - adapter.close(); + doThrow(IllegalArgumentException.class).when(cursor).close(); + assertThatIllegalArgumentException().isThrownBy(() -> adapter.close()); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CollationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CollationUnitTests.java index 316160857..9179f829c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CollationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CollationUnitTests.java @@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Locale; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.core.query.Collation.Alternate; import org.springframework.data.mongodb.core.query.Collation.CaseFirst; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CountQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CountQueryUnitTests.java index 58b8e368f..054ba2678 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CountQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/CountQueryUnitTests.java @@ -20,8 +20,8 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; import static org.springframework.data.mongodb.test.util.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.MongoDatabaseFactory; @@ -47,7 +47,7 @@ public class CountQueryUnitTests { MongoDatabaseFactory factory = mock(MongoDatabaseFactory.class); - @Before + @BeforeEach public void setUp() { this.context = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsUnitTests.java index 8034447cc..98fc767f0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsUnitTests.java @@ -30,14 +30,15 @@ import java.util.Optional; import org.bson.BsonDocument; import org.bson.BsonString; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Answers; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.context.ApplicationEventPublisher; import org.springframework.dao.DataAccessException; import org.springframework.dao.support.PersistenceExceptionTranslator; @@ -83,22 +84,22 @@ import com.mongodb.client.model.WriteModel; * @author Minsu Kim * @author Jens Schauder */ -@RunWith(MockitoJUnitRunner.class) -public class DefaultBulkOperationsUnitTests { +@ExtendWith(MockitoExtension.class) +class DefaultBulkOperationsUnitTests { - MongoTemplate template; + private MongoTemplate template; @Mock MongoDatabase database; @Mock(answer = Answers.RETURNS_DEEP_STUBS) MongoCollection collection; @Mock MongoDatabaseFactory factory; @Mock DbRefResolver dbRefResolver; @Captor ArgumentCaptor>> captor; - MongoConverter converter; - MongoMappingContext mappingContext; + private MongoConverter converter; + private MongoMappingContext mappingContext; - DefaultBulkOperations ops; + private DefaultBulkOperations ops; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(factory.getMongoDatabase()).thenReturn(database); when(factory.getExceptionTranslator()).thenReturn(new NullExceptionTranslator()); @@ -117,7 +118,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-1518 - public void updateOneShouldUseCollationWhenPresent() { + void updateOneShouldUseCollationWhenPresent() { ops.updateOne(new BasicQuery("{}").collation(Collation.of("de")), new Update().set("lastName", "targaryen")) .execute(); @@ -130,7 +131,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-1518 - public void updateManyShouldUseCollationWhenPresent() { + void updateManyShouldUseCollationWhenPresent() { ops.updateMulti(new BasicQuery("{}").collation(Collation.of("de")), new Update().set("lastName", "targaryen")) .execute(); @@ -143,7 +144,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-1518 - public void removeShouldUseCollationWhenPresent() { + void removeShouldUseCollationWhenPresent() { ops.remove(new BasicQuery("{}").collation(Collation.of("de"))).execute(); @@ -155,7 +156,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2218 - public void replaceOneShouldUseCollationWhenPresent() { + void replaceOneShouldUseCollationWhenPresent() { ops.replaceOne(new BasicQuery("{}").collation(Collation.of("de")), new SomeDomainType()).execute(); @@ -167,7 +168,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-1678 - public void bulkUpdateShouldMapQueryAndUpdateCorrectly() { + void bulkUpdateShouldMapQueryAndUpdateCorrectly() { ops.updateOne(query(where("firstName").is("danerys")), Update.update("firstName", "queen danerys")).execute(); @@ -179,7 +180,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-1678 - public void bulkRemoveShouldMapQueryCorrectly() { + void bulkRemoveShouldMapQueryCorrectly() { ops.remove(query(where("firstName").is("danerys"))).execute(); @@ -190,7 +191,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2218 - public void bulkReplaceOneShouldMapQueryCorrectly() { + void bulkReplaceOneShouldMapQueryCorrectly() { SomeDomainType replacement = new SomeDomainType(); replacement.firstName = "Minsu"; @@ -207,7 +208,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2261 - public void bulkInsertInvokesEntityCallbacks() { + void bulkInsertInvokesEntityCallbacks() { BeforeConvertPersonCallback beforeConvertCallback = spy(new BeforeConvertPersonCallback()); BeforeSavePersonCallback beforeSaveCallback = spy(new BeforeSavePersonCallback()); @@ -235,7 +236,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2290 - public void bulkReplaceOneEmitsEventsCorrectly() { + void bulkReplaceOneEmitsEventsCorrectly() { ApplicationEventPublisher eventPublisher = mock(ApplicationEventPublisher.class); @@ -256,7 +257,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2290 - public void bulkInsertEmitsEventsCorrectly() { + void bulkInsertEmitsEventsCorrectly() { ApplicationEventPublisher eventPublisher = mock(ApplicationEventPublisher.class); @@ -277,7 +278,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2290 - public void noAfterSaveEventOnFailure() { + void noAfterSaveEventOnFailure() { ApplicationEventPublisher eventPublisher = mock(ApplicationEventPublisher.class); when(collection.bulkWrite(anyList(), any())).thenThrow(new MongoWriteException( @@ -302,7 +303,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2330 - public void writeConcernNotAppliedWhenNotSet() { + void writeConcernNotAppliedWhenNotSet() { ops.updateOne(new BasicQuery("{}").collation(Collation.of("de")), new Update().set("lastName", "targaryen")) .execute(); @@ -311,7 +312,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2330 - public void writeConcernAppliedCorrectlyWhenSet() { + void writeConcernAppliedCorrectlyWhenSet() { ops.setDefaultWriteConcern(WriteConcern.MAJORITY); @@ -322,7 +323,7 @@ public class DefaultBulkOperationsUnitTests { } @Test // DATAMONGO-2450 - public void appliesArrayFilterWhenPresent() { + void appliesArrayFilterWhenPresent() { ops.updateOne(new BasicQuery("{}"), new Update().filterArray(Criteria.where("element").gte(100))).execute(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java index 7d7c8ff8f..ad5d68dab 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java @@ -21,12 +21,13 @@ import static org.mockito.Mockito.*; import lombok.Data; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; @@ -46,21 +47,21 @@ import com.mongodb.client.model.IndexOptions; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class DefaultIndexOperationsUnitTests { - MongoTemplate template; + private MongoTemplate template; @Mock MongoDatabaseFactory factory; @Mock MongoDatabase db; @Mock MongoCollection collection; - MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator(); - MappingMongoConverter converter; - MongoMappingContext mappingContext; + private MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator(); + private MappingMongoConverter converter; + private MongoMappingContext mappingContext; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(factory.getMongoDatabase()).thenReturn(db); when(factory.getExceptionTranslator()).thenReturn(exceptionTranslator); @@ -73,7 +74,7 @@ public class DefaultIndexOperationsUnitTests { } @Test // DATAMONGO-1183 - public void indexOperationsMapFieldNameCorrectly() { + void indexOperationsMapFieldNameCorrectly() { indexOpsFor(Jedi.class).ensureIndex(new Index("name", Direction.DESC)); @@ -81,7 +82,7 @@ public class DefaultIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexDoesNotSetCollectionIfNoDefaultDefined() { + void ensureIndexDoesNotSetCollectionIfNoDefaultDefined() { indexOpsFor(Jedi.class).ensureIndex(new Index("firstname", Direction.DESC)); @@ -92,7 +93,7 @@ public class DefaultIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexUsesDefaultCollationIfNoneDefinedInOptions() { + void ensureIndexUsesDefaultCollationIfNoneDefinedInOptions() { indexOpsFor(Sith.class).ensureIndex(new Index("firstname", Direction.DESC)); @@ -104,7 +105,7 @@ public class DefaultIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexDoesNotUseDefaultCollationIfExplicitlySpecifiedInTheIndex() { + void ensureIndexDoesNotUseDefaultCollationIfExplicitlySpecifiedInTheIndex() { indexOpsFor(Sith.class).ensureIndex(new Index("firstname", Direction.DESC).collation(Collation.of("en_US"))); @@ -116,7 +117,7 @@ public class DefaultIndexOperationsUnitTests { } @Test // DATAMONGO-1183 - public void shouldCreateHashedIndexCorrectly() { + void shouldCreateHashedIndexCorrectly() { indexOpsFor(Jedi.class).ensureIndex(HashedIndex.hashed("name")); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsUnitTests.java index 7659f495f..2121f6f30 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsUnitTests.java @@ -21,13 +21,14 @@ import static org.mockito.Mockito.*; import lombok.Data; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.reactivestreams.Publisher; + import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -45,22 +46,22 @@ import com.mongodb.reactivestreams.client.MongoDatabase; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class DefaultReactiveIndexOperationsUnitTests { - ReactiveMongoTemplate template; + private ReactiveMongoTemplate template; @Mock ReactiveMongoDatabaseFactory factory; @Mock MongoDatabase db; @Mock MongoCollection collection; @Mock Publisher publisher; - MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator(); - MappingMongoConverter converter; - MongoMappingContext mappingContext; + private MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator(); + private MappingMongoConverter converter; + private MongoMappingContext mappingContext; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(factory.getMongoDatabase()).thenReturn(db); when(factory.getExceptionTranslator()).thenReturn(exceptionTranslator); @@ -73,7 +74,7 @@ public class DefaultReactiveIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexDoesNotSetCollectionIfNoDefaultDefined() { + void ensureIndexDoesNotSetCollectionIfNoDefaultDefined() { indexOpsFor(Jedi.class).ensureIndex(new Index("firstname", Direction.DESC)).subscribe(); @@ -84,7 +85,7 @@ public class DefaultReactiveIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexUsesDefaultCollationIfNoneDefinedInOptions() { + void ensureIndexUsesDefaultCollationIfNoneDefinedInOptions() { indexOpsFor(Sith.class).ensureIndex(new Index("firstname", Direction.DESC)).subscribe(); @@ -96,7 +97,7 @@ public class DefaultReactiveIndexOperationsUnitTests { } @Test // DATAMONGO-1854 - public void ensureIndexDoesNotUseDefaultCollationIfExplicitlySpecifiedInTheIndex() { + void ensureIndexDoesNotUseDefaultCollationIfExplicitlySpecifiedInTheIndex() { indexOpsFor(Sith.class).ensureIndex(new Index("firstname", Direction.DESC).collation(Collation.of("en_US"))) .subscribe(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsUnitTests.java index 0bac222ec..13e49494a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsUnitTests.java @@ -18,12 +18,12 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.script.ExecutableMongoScript; import org.springframework.data.mongodb.core.script.NamedMongoScript; @@ -35,29 +35,29 @@ import org.springframework.data.mongodb.core.script.NamedMongoScript; * @author Oliver Gierke * @since 1.7 */ -@RunWith(MockitoJUnitRunner.class) -public class DefaultScriptOperationsUnitTests { +@ExtendWith(MockitoExtension.class) +class DefaultScriptOperationsUnitTests { - DefaultScriptOperations scriptOps; + private DefaultScriptOperations scriptOps; @Mock MongoOperations mongoOperations; - @Before - public void setUp() { + @BeforeEach + void setUp() { this.scriptOps = new DefaultScriptOperations(mongoOperations); } @Test // DATAMONGO-479 - public void rejectsNullExecutableMongoScript() { + void rejectsNullExecutableMongoScript() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.register((ExecutableMongoScript) null)); } @Test // DATAMONGO-479 - public void rejectsNullNamedMongoScript() { + void rejectsNullNamedMongoScript() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.register((NamedMongoScript) null)); } @Test // DATAMONGO-479 - public void saveShouldUseCorrectCollectionName() { + void saveShouldUseCorrectCollectionName() { scriptOps.register(new NamedMongoScript("foo", "function...")); @@ -65,7 +65,7 @@ public class DefaultScriptOperationsUnitTests { } @Test // DATAMONGO-479 - public void saveShouldGenerateScriptNameForExecutableMongoScripts() { + void saveShouldGenerateScriptNameForExecutableMongoScripts() { scriptOps.register(new ExecutableMongoScript("function...")); @@ -76,27 +76,27 @@ public class DefaultScriptOperationsUnitTests { } @Test // DATAMONGO-479 - public void executeShouldThrowExceptionWhenScriptIsNull() { + void executeShouldThrowExceptionWhenScriptIsNull() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.execute(null)); } @Test // DATAMONGO-479 - public void existsShouldThrowExceptionWhenScriptNameIsNull() { + void existsShouldThrowExceptionWhenScriptNameIsNull() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.exists(null)); } @Test // DATAMONGO-479 - public void existsShouldThrowExceptionWhenScriptNameIsEmpty() { + void existsShouldThrowExceptionWhenScriptNameIsEmpty() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.exists("")); } @Test // DATAMONGO-479 - public void callShouldThrowExceptionWhenScriptNameIsNull() { + void callShouldThrowExceptionWhenScriptNameIsNull() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.call(null)); } @Test // DATAMONGO-479 - public void callShouldThrowExceptionWhenScriptNameIsEmpty() { + void callShouldThrowExceptionWhenScriptNameIsEmpty() { assertThatIllegalArgumentException().isThrownBy(() -> scriptOps.call("")); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationUnitTests.java index 23bf06549..b7680e434 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/EntityOperationUnitTests.java @@ -17,8 +17,9 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.data.annotation.Id; @@ -34,7 +35,7 @@ public class EntityOperationUnitTests { MongoMappingContext mappingContext = new MongoMappingContext(); ConversionService conversionService = new DefaultConversionService(); - @Before + @BeforeEach public void setUp() { ops = new EntityOperations(mappingContext); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupportUnitTests.java index 34fa6a6da..90decac3a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableAggregationOperationSupportUnitTests.java @@ -20,12 +20,13 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.mongodb.core.aggregation.Aggregation; /** @@ -33,40 +34,40 @@ import org.springframework.data.mongodb.core.aggregation.Aggregation; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ExecutableAggregationOperationSupportUnitTests { @Mock MongoTemplate template; - ExecutableAggregationOperationSupport opSupport; + private ExecutableAggregationOperationSupport opSupport; - @Before - public void setUp() { + @BeforeEach + void setUp() { opSupport = new ExecutableAggregationOperationSupport(template); } @Test // DATAMONGO-1563 - public void throwsExceptionOnNullDomainType() { + void throwsExceptionOnNullDomainType() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(null)); } @Test // DATAMONGO-1563 - public void throwsExceptionOnNullCollectionWhenUsed() { + void throwsExceptionOnNullCollectionWhenUsed() { assertThatIllegalArgumentException() .isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).inCollection(null)); } @Test // DATAMONGO-1563 - public void throwsExceptionOnEmptyCollectionWhenUsed() { + void throwsExceptionOnEmptyCollectionWhenUsed() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).inCollection("")); } @Test // DATAMONGO-1563 - public void throwsExceptionOnNullAggregation() { + void throwsExceptionOnNullAggregation() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).by(null)); } @Test // DATAMONGO-1563 - public void aggregateWithUntypedAggregationAndExplicitCollection() { + void aggregateWithUntypedAggregationAndExplicitCollection() { opSupport.aggregateAndReturn(Person.class).inCollection("star-wars").by(newAggregation(project("foo"))).all(); @@ -76,7 +77,7 @@ public class ExecutableAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void aggregateWithUntypedAggregation() { + void aggregateWithUntypedAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); @@ -91,7 +92,7 @@ public class ExecutableAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void aggregateWithTypeAggregation() { + void aggregateWithTypeAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); @@ -106,7 +107,7 @@ public class ExecutableAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void aggregateStreamWithUntypedAggregationAndExplicitCollection() { + void aggregateStreamWithUntypedAggregationAndExplicitCollection() { opSupport.aggregateAndReturn(Person.class).inCollection("star-wars").by(newAggregation(project("foo"))).stream(); @@ -116,7 +117,7 @@ public class ExecutableAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void aggregateStreamWithUntypedAggregation() { + void aggregateStreamWithUntypedAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); @@ -131,7 +132,7 @@ public class ExecutableAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void aggregateStreamWithTypeAggregation() { + void aggregateStreamWithTypeAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupportUnitTests.java index dfe871d13..90b1d758a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableInsertOperationSupportUnitTests.java @@ -23,12 +23,13 @@ import lombok.Data; import java.util.Arrays; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.BulkOperations.BulkMode; @@ -38,7 +39,7 @@ import org.springframework.data.mongodb.core.BulkOperations.BulkMode; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ExecutableInsertOperationSupportUnitTests { private static final String STAR_WARS = "star-wars"; @@ -46,16 +47,12 @@ public class ExecutableInsertOperationSupportUnitTests { @Mock MongoTemplate template; @Mock BulkOperations bulkOperations; - ExecutableInsertOperationSupport ops; + private ExecutableInsertOperationSupport ops; - Person luke, han; + private Person luke, han; - @Before - public void setUp() { - - when(template.bulkOps(any(), any(), any())).thenReturn(bulkOperations); - when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); - when(bulkOperations.insert(anyList())).thenReturn(bulkOperations); + @BeforeEach + void setUp() { ops = new ExecutableInsertOperationSupport(template); @@ -69,17 +66,19 @@ public class ExecutableInsertOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void nullCollectionShouldThrowException() { + void nullCollectionShouldThrowException() { assertThatIllegalArgumentException().isThrownBy(() -> ops.insert(Person.class).inCollection(null)); } @Test // DATAMONGO-1563 - public void nullBulkModeShouldThrowException() { + void nullBulkModeShouldThrowException() { assertThatIllegalArgumentException().isThrownBy(() -> ops.insert(Person.class).withBulkMode(null)); } @Test // DATAMONGO-1563 - public void insertShouldUseDerivedCollectionName() { + void insertShouldUseDerivedCollectionName() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); ops.insert(Person.class).one(luke); @@ -92,7 +91,7 @@ public class ExecutableInsertOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void insertShouldUseExplicitCollectionName() { + void insertShouldUseExplicitCollectionName() { ops.insert(Person.class).inCollection(STAR_WARS).one(luke); @@ -101,7 +100,9 @@ public class ExecutableInsertOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void insertCollectionShouldDelegateCorrectly() { + void insertCollectionShouldDelegateCorrectly() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); ops.insert(Person.class).all(Arrays.asList(luke, han)); @@ -110,7 +111,11 @@ public class ExecutableInsertOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void bulkInsertCollectionShouldDelegateCorrectly() { + void bulkInsertCollectionShouldDelegateCorrectly() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); + when(template.bulkOps(any(), any(), any())).thenReturn(bulkOperations); + when(bulkOperations.insert(anyList())).thenReturn(bulkOperations); ops.insert(Person.class).bulk(Arrays.asList(luke, han)); @@ -123,7 +128,11 @@ public class ExecutableInsertOperationSupportUnitTests { } @Test // DATAMONGO-1563 - public void bulkInsertWithBulkModeShouldDelegateCorrectly() { + void bulkInsertWithBulkModeShouldDelegateCorrectly() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); + when(template.bulkOps(any(), any(), any())).thenReturn(bulkOperations); + when(bulkOperations.insert(anyList())).thenReturn(bulkOperations); ops.insert(Person.class).withBulkMode(BulkMode.UNORDERED).bulk(Arrays.asList(luke, han)); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableMapReduceOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableMapReduceOperationSupportUnitTests.java index cdc66c884..6bc43225f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableMapReduceOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableMapReduceOperationSupportUnitTests.java @@ -23,11 +23,12 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions; @@ -40,7 +41,7 @@ import org.springframework.data.mongodb.core.query.Query; * @author Christoph Strobl * @currentRead Beyond the Shadows - Brent Weeks */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ExecutableMapReduceOperationSupportUnitTests { private static final String STAR_WARS = "star-wars"; @@ -49,29 +50,27 @@ public class ExecutableMapReduceOperationSupportUnitTests { @Mock MongoTemplate template; - ExecutableMapReduceOperationSupport mapReduceOpsSupport; - - @Before - public void setUp() { - - when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); + private ExecutableMapReduceOperationSupport mapReduceOpsSupport; + @BeforeEach + void setUp() { mapReduceOpsSupport = new ExecutableMapReduceOperationSupport(template); } @Test // DATAMONGO-1929 - public void throwsExceptionOnNullTemplate() { + void throwsExceptionOnNullTemplate() { assertThatIllegalArgumentException().isThrownBy(() -> new ExecutableMapReduceOperationSupport(null)); } @Test // DATAMONGO-1929 - public void throwsExceptionOnNullDomainType() { + void throwsExceptionOnNullDomainType() { assertThatIllegalArgumentException().isThrownBy(() -> mapReduceOpsSupport.mapReduce(null)); } @Test // DATAMONGO-1929 - public void usesExtractedCollectionName() { + void usesExtractedCollectionName() { + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).all(); verify(template).mapReduce(any(Query.class), eq(Person.class), eq(STAR_WARS), eq(MAP_FUNCTION), eq(REDUCE_FUNCTION), @@ -79,7 +78,7 @@ public class ExecutableMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesExplicitCollectionName() { + void usesExplicitCollectionName() { mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION) .inCollection("the-night-angel").all(); @@ -89,8 +88,9 @@ public class ExecutableMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesMapReduceOptionsWhenPresent() { + void usesMapReduceOptionsWhenPresent() { + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); MapReduceOptions options = MapReduceOptions.options(); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).with(options).all(); @@ -99,8 +99,9 @@ public class ExecutableMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesQueryWhenPresent() { + void usesQueryWhenPresent() { + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); Query query = new BasicQuery("{ 'lastname' : 'skywalker' }"); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).matching(query).all(); @@ -109,8 +110,9 @@ public class ExecutableMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesProjectionWhenPresent() { + void usesProjectionWhenPresent() { + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).as(Jedi.class).all(); verify(template).mapReduce(any(Query.class), eq(Person.class), eq(STAR_WARS), eq(MAP_FUNCTION), eq(REDUCE_FUNCTION), diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/GeoCommandStatisticsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/GeoCommandStatisticsUnitTests.java index 34e511d91..fe1a5ee64 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/GeoCommandStatisticsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/GeoCommandStatisticsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link GeoCommandStatistics}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreatorUnitTests.java index c2017e325..b5c2731de 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreatorUnitTests.java @@ -23,8 +23,8 @@ import java.util.List; import java.util.Map; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.annotation.Transient; import org.springframework.data.convert.WritingConverter; @@ -49,7 +49,7 @@ public class MappingMongoJsonSchemaCreatorUnitTests { MongoMappingContext mappingContext; MappingMongoJsonSchemaCreator schemaCreator; - @Before + @BeforeEach public void setUp() { mappingContext = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanIntegrationTests.java index 9d884a38f..61fa339a2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanIntegrationTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanUnitTests.java index 98732af8d..921a0660a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBeanUnitTests.java @@ -18,7 +18,8 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; import org.bson.UuidRepresentation; -import org.junit.Test; +import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.data.mongodb.config.ReadConcernPropertyEditor; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoEncryptionSettingsFactoryBeanTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoEncryptionSettingsFactoryBeanTests.java index e9596901a..ca3fe1ec0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoEncryptionSettingsFactoryBeanTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoEncryptionSettingsFactoryBeanTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.test.util.ReflectionTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoExceptionTranslatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoExceptionTranslatorUnitTests.java index 3acd334f5..04cd781ac 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoExceptionTranslatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoExceptionTranslatorUnitTests.java @@ -20,8 +20,8 @@ import static org.assertj.core.api.Assertions.*; import java.net.UnknownHostException; import org.bson.BsonDocument; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.core.NestedRuntimeException; import org.springframework.dao.DataAccessException; @@ -50,7 +50,7 @@ public class MongoExceptionTranslatorUnitTests { MongoExceptionTranslator translator; - @Before + @BeforeEach public void setUp() { translator = new MongoExceptionTranslator(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java index af65ca01f..e332fdf23 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java @@ -43,6 +43,7 @@ import org.joda.time.DateTime; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.core.convert.converter.Converter; @@ -56,7 +57,6 @@ import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.data.annotation.Version; import org.springframework.data.auditing.IsNewAwareAuditingHandler; -import org.springframework.data.convert.CustomConversions; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; @@ -64,7 +64,6 @@ import org.springframework.data.mapping.MappingException; import org.springframework.data.mongodb.InvalidMongoDbApiUsageException; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.LazyLoadingProxy; -import org.springframework.data.mongodb.core.convert.MongoCustomConversions; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.index.Index; import org.springframework.data.mongodb.core.index.IndexField; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryCursorPreparerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryCursorPreparerUnitTests.java index 7e5951f79..1d48242d2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryCursorPreparerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryCursorPreparerUnitTests.java @@ -22,11 +22,13 @@ import static org.springframework.data.mongodb.core.query.Query.*; import java.util.concurrent.TimeUnit; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate.QueryCursorPreparer; @@ -44,15 +46,16 @@ import com.mongodb.client.FindIterable; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class QueryCursorPreparerUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class QueryCursorPreparerUnitTests { @Mock MongoDatabaseFactory factory; @Mock MongoExceptionTranslator exceptionTranslatorMock; @Mock FindIterable cursor; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(factory.getExceptionTranslator()).thenReturn(exceptionTranslatorMock); when(factory.getCodecRegistry()).thenReturn(MongoClientSettings.getDefaultCodecRegistry()); @@ -65,7 +68,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-185 - public void appliesHintsCorrectly() { + void appliesHintsCorrectly() { Query query = query(where("foo").is("bar")).withHint("{ age: 1 }"); prepare(query); @@ -74,7 +77,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-2365 - public void appliesIndexNameAsHintCorrectly() { + void appliesIndexNameAsHintCorrectly() { Query query = query(where("foo").is("bar")).withHint("idx-1"); prepare(query); @@ -83,7 +86,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-2319 - public void appliesDocumentHintsCorrectly() { + void appliesDocumentHintsCorrectly() { Query query = query(where("foo").is("bar")).withHint(Document.parse("{ age: 1 }")); prepare(query); @@ -113,7 +116,7 @@ public class QueryCursorPreparerUnitTests { // } @Test // DATAMONGO-957 - public void appliesMaxTimeCorrectly() { + void appliesMaxTimeCorrectly() { Query query = query(where("foo").is("bar")).maxTime(1, TimeUnit.SECONDS); prepare(query); @@ -122,7 +125,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-957 - public void appliesCommentCorrectly() { + void appliesCommentCorrectly() { Query query = query(where("foo").is("bar")).comment("spring data"); prepare(query); @@ -141,7 +144,7 @@ public class QueryCursorPreparerUnitTests { // } @Test // DATAMONGO-1480 - public void appliesNoCursorTimeoutCorrectly() { + void appliesNoCursorTimeoutCorrectly() { Query query = query(where("foo").is("bar")).noCursorTimeout(); @@ -151,7 +154,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-1518 - public void appliesCollationCorrectly() { + void appliesCollationCorrectly() { prepare(new BasicQuery("{}").collation(Collation.of("fr"))); @@ -159,7 +162,7 @@ public class QueryCursorPreparerUnitTests { } @Test // DATAMONGO-1311 - public void appliesBatchSizeCorrectly() { + void appliesBatchSizeCorrectly() { prepare(new BasicQuery("{}").cursorBatchSize(100)); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveAggregationOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveAggregationOperationSupportUnitTests.java index 909cb204e..5060485cf 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveAggregationOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveAggregationOperationSupportUnitTests.java @@ -20,12 +20,12 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.aggregation.Aggregation; @@ -34,40 +34,40 @@ import org.springframework.data.mongodb.core.aggregation.Aggregation; * * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveAggregationOperationSupportUnitTests { @Mock ReactiveMongoTemplate template; - ReactiveAggregationOperationSupport opSupport; + private ReactiveAggregationOperationSupport opSupport; - @Before - public void setUp() { + @BeforeEach + void setUp() { opSupport = new ReactiveAggregationOperationSupport(template); } @Test // DATAMONGO-1719 - public void throwsExceptionOnNullDomainType() { + void throwsExceptionOnNullDomainType() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(null)); } @Test // DATAMONGO-1719 - public void throwsExceptionOnNullCollectionWhenUsed() { + void throwsExceptionOnNullCollectionWhenUsed() { assertThatIllegalArgumentException() .isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).inCollection(null)); } @Test // DATAMONGO-1719 - public void throwsExceptionOnEmptyCollectionWhenUsed() { + void throwsExceptionOnEmptyCollectionWhenUsed() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).inCollection("")); } @Test // DATAMONGO-1719 - public void throwsExceptionOnNullAggregation() { + void throwsExceptionOnNullAggregation() { assertThatIllegalArgumentException().isThrownBy(() -> opSupport.aggregateAndReturn(Person.class).by(null)); } @Test // DATAMONGO-1719 - public void aggregateWithUntypedAggregationAndExplicitCollection() { + void aggregateWithUntypedAggregationAndExplicitCollection() { opSupport.aggregateAndReturn(Person.class).inCollection("star-wars").by(newAggregation(project("foo"))).all(); @@ -77,7 +77,7 @@ public class ReactiveAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1719 - public void aggregateWithUntypedAggregation() { + void aggregateWithUntypedAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); @@ -92,7 +92,7 @@ public class ReactiveAggregationOperationSupportUnitTests { } @Test // DATAMONGO-1719 - public void aggregateWithTypeAggregation() { + void aggregateWithTypeAggregation() { when(template.getCollectionName(any(Class.class))).thenReturn("person"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportUnitTests.java index b11aa8bfe..bb60f5f1d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportUnitTests.java @@ -30,12 +30,12 @@ import java.util.Collections; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.TypedAggregation; @@ -47,20 +47,20 @@ import org.springframework.data.mongodb.core.query.Criteria; * @author Christoph Strobl * @currentRead Dawn Cook - The Decoy Princess */ -@RunWith(MockitoJUnitRunner.class) -public class ReactiveChangeStreamOperationSupportUnitTests { +@ExtendWith(MockitoExtension.class) +class ReactiveChangeStreamOperationSupportUnitTests { @Mock ReactiveMongoTemplate template; - ReactiveChangeStreamOperationSupport changeStreamSupport; + private ReactiveChangeStreamOperationSupport changeStreamSupport; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(template.changeStream(any(), any(), any())).thenReturn(Flux.empty()); changeStreamSupport = new ReactiveChangeStreamOperationSupport(template); } @Test // DATAMONGO-2089 - public void listenWithoutDomainTypeUsesDocumentAsDefault() { + void listenWithoutDomainTypeUsesDocumentAsDefault() { changeStreamSupport.changeStream(Document.class).listen().subscribe(); @@ -68,7 +68,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void listenWithDomainTypeUsesSourceAsTarget() { + void listenWithDomainTypeUsesSourceAsTarget() { changeStreamSupport.changeStream(Person.class).listen().subscribe(); @@ -76,7 +76,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void collectionNameIsPassedOnCorrectly() { + void collectionNameIsPassedOnCorrectly() { changeStreamSupport.changeStream(Person.class).watchCollection("star-wars").listen().subscribe(); @@ -84,7 +84,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void listenWithDomainTypeCreatesTypedAggregation() { + void listenWithDomainTypeCreatesTypedAggregation() { Criteria criteria = where("operationType").is("insert"); changeStreamSupport.changeStream(Person.class).filter(criteria).listen().subscribe(); @@ -104,7 +104,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void listenWithoutDomainTypeCreatesUntypedAggregation() { + void listenWithoutDomainTypeCreatesUntypedAggregation() { Criteria criteria = where("operationType").is("insert"); changeStreamSupport.changeStream(Document.class).filter(criteria).listen().subscribe(); @@ -125,7 +125,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void optionsShouldBePassedOnCorrectly() { + void optionsShouldBePassedOnCorrectly() { Document filter = new Document("$match", new Document("operationType", "insert")); @@ -142,7 +142,7 @@ public class ReactiveChangeStreamOperationSupportUnitTests { } @Test // DATAMONGO-2089 - public void optionsShouldBeCombinedCorrectly() { + void optionsShouldBeCombinedCorrectly() { Document filter = new Document("$match", new Document("operationType", "insert")); Instant resumeTimestamp = Instant.now(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveInsertOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveInsertOperationSupportUnitTests.java index 5387a1259..00e0c01f1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveInsertOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveInsertOperationSupportUnitTests.java @@ -24,12 +24,12 @@ import lombok.Data; import java.util.Arrays; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.annotation.Id; @@ -38,21 +38,19 @@ import org.springframework.data.annotation.Id; * * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveInsertOperationSupportUnitTests { private static final String STAR_WARS = "star-wars"; @Mock ReactiveMongoTemplate template; - ReactiveInsertOperationSupport ops; + private ReactiveInsertOperationSupport ops; - Person luke, han; + private Person luke, han; - @Before - public void setUp() { - - when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); + @BeforeEach + void setUp() { ops = new ReactiveInsertOperationSupport(template); @@ -66,12 +64,14 @@ public class ReactiveInsertOperationSupportUnitTests { } @Test // DATAMONGO-1719 - public void nullCollectionShouldThrowException() { + void nullCollectionShouldThrowException() { assertThatIllegalArgumentException().isThrownBy(() -> ops.insert(Person.class).inCollection(null)); } @Test // DATAMONGO-1719 - public void insertShouldUseDerivedCollectionName() { + void insertShouldUseDerivedCollectionName() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); ops.insert(Person.class).one(luke); @@ -84,7 +84,7 @@ public class ReactiveInsertOperationSupportUnitTests { } @Test // DATAMONGO-1719 - public void insertShouldUseExplicitCollectionName() { + void insertShouldUseExplicitCollectionName() { ops.insert(Person.class).inCollection(STAR_WARS).one(luke); @@ -93,7 +93,9 @@ public class ReactiveInsertOperationSupportUnitTests { } @Test // DATAMONGO-1719 - public void insertCollectionShouldDelegateCorrectly() { + void insertCollectionShouldDelegateCorrectly() { + + when(template.getCollectionName(any(Class.class))).thenReturn(STAR_WARS); ops.insert(Person.class).all(Arrays.asList(luke, han)); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMapReduceOperationSupportUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMapReduceOperationSupportUnitTests.java index 18c2fd56d..07e0b743b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMapReduceOperationSupportUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMapReduceOperationSupportUnitTests.java @@ -23,11 +23,11 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; @@ -41,7 +41,7 @@ import org.springframework.data.mongodb.core.query.Query; * @author Christoph Strobl * @currentRead Beyond the Shadows - Brent Weeks */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveMapReduceOperationSupportUnitTests { private static final String STAR_WARS = "star-wars"; @@ -50,28 +50,27 @@ public class ReactiveMapReduceOperationSupportUnitTests { @Mock ReactiveMongoTemplate template; - ReactiveMapReduceOperationSupport mapReduceOpsSupport; - - @Before - public void setUp() { - - when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); + private ReactiveMapReduceOperationSupport mapReduceOpsSupport; + @BeforeEach + void setUp() { mapReduceOpsSupport = new ReactiveMapReduceOperationSupport(template); } @Test // DATAMONGO-1929 - public void throwsExceptionOnNullTemplate() { + void throwsExceptionOnNullTemplate() { assertThatIllegalArgumentException().isThrownBy(() -> new ExecutableMapReduceOperationSupport(null)); } @Test // DATAMONGO-1929 - public void throwsExceptionOnNullDomainType() { + void throwsExceptionOnNullDomainType() { assertThatIllegalArgumentException().isThrownBy(() -> mapReduceOpsSupport.mapReduce(null)); } @Test // DATAMONGO-1929 - public void usesExtractedCollectionName() { + void usesExtractedCollectionName() { + + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).all(); @@ -80,7 +79,7 @@ public class ReactiveMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesExplicitCollectionName() { + void usesExplicitCollectionName() { mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION) .inCollection("the-night-angel").all(); @@ -90,7 +89,9 @@ public class ReactiveMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesMapReduceOptionsWhenPresent() { + void usesMapReduceOptionsWhenPresent() { + + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); MapReduceOptions options = MapReduceOptions.options(); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).with(options).all(); @@ -100,7 +101,9 @@ public class ReactiveMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesQueryWhenPresent() { + void usesQueryWhenPresent() { + + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); Query query = new BasicQuery("{ 'lastname' : 'skywalker' }"); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).matching(query).all(); @@ -110,7 +113,9 @@ public class ReactiveMapReduceOperationSupportUnitTests { } @Test // DATAMONGO-1929 - public void usesProjectionWhenPresent() { + void usesProjectionWhenPresent() { + + when(template.getCollectionName(eq(Person.class))).thenReturn(STAR_WARS); mapReduceOpsSupport.mapReduce(Person.class).map(MAP_FUNCTION).reduce(REDUCE_FUNCTION).as(Jedi.class).all(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java index a956372c4..b1f678bda 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java @@ -57,13 +57,13 @@ import com.mongodb.reactivestreams.client.MongoClient; @ExtendWith(MongoClientExtension.class) public class ReactiveMongoTemplateIndexTests { - static @Client MongoClient client; + private static @Client MongoClient client; - SimpleReactiveMongoDatabaseFactory factory; - ReactiveMongoTemplate template; + private SimpleReactiveMongoDatabaseFactory factory; + private ReactiveMongoTemplate template; @BeforeEach - public void setUp() { + void setUp() { factory = new SimpleReactiveMongoDatabaseFactory(client, "reactive-template-index-tests"); template = new ReactiveMongoTemplate(factory); @@ -74,11 +74,11 @@ public class ReactiveMongoTemplateIndexTests { } @AfterEach - public void cleanUp() {} + void cleanUp() {} @Test // DATAMONGO-1444 @RepeatFailedTest(3) - public void testEnsureIndexShouldCreateIndex() { + void testEnsureIndexShouldCreateIndex() { Person p1 = new Person("Oliver"); p1.setAge(25); @@ -114,7 +114,7 @@ public class ReactiveMongoTemplateIndexTests { @Test // DATAMONGO-1444 @RepeatFailedTest(3) - public void getIndexInfoShouldReturnCorrectIndex() { + void getIndexInfoShouldReturnCorrectIndex() { Person p1 = new Person("Oliver"); p1.setAge(25); @@ -145,7 +145,7 @@ public class ReactiveMongoTemplateIndexTests { @Test // DATAMONGO-1444, DATAMONGO-2264 @RepeatFailedTest(3) - public void testReadIndexInfoForIndicesCreatedViaMongoShellCommands() { + void testReadIndexInfoForIndicesCreatedViaMongoShellCommands() { template.indexOps(Person.class).dropAllIndexes() // .as(StepVerifier::create) // @@ -197,7 +197,7 @@ public class ReactiveMongoTemplateIndexTests { @Test // DATAMONGO-1928 @RepeatFailedTest(3) - public void shouldCreateIndexOnAccess() { + void shouldCreateIndexOnAccess() { StepVerifier.create(template.getCollection("indexedSample").listIndexes(Document.class)).expectNextCount(0) .verifyComplete(); @@ -213,7 +213,7 @@ public class ReactiveMongoTemplateIndexTests { @Test // DATAMONGO-1928, DATAMONGO-2264 @RepeatFailedTest(3) - public void indexCreationShouldFail() throws InterruptedException { + void indexCreationShouldFail() throws InterruptedException { Flux.from(factory.getMongoDatabase().getCollection("indexfail") // .createIndex(new Document("field", 1), new IndexOptions().name("foo").unique(true).sparse(true))) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java index 0cd95d6a4..6b125629c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java @@ -47,10 +47,11 @@ import org.bson.BsonDocument; import org.bson.BsonTimestamp; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.dao.DataIntegrityViolationException; @@ -96,11 +97,11 @@ import com.mongodb.reactivestreams.client.MongoClient; @ExtendWith({ MongoClientExtension.class, MongoServerCondition.class }) public class ReactiveMongoTemplateTests { - public static final String DB_NAME = "reactive-mongo-template-tests"; - static @Client MongoClient client; + private static final String DB_NAME = "reactive-mongo-template-tests"; + private static @Client MongoClient client; - ConfigurableApplicationContext context = new GenericApplicationContext(); - ReactiveMongoTestTemplate template = new ReactiveMongoTestTemplate(cfg -> { + private ConfigurableApplicationContext context = new GenericApplicationContext(); + private ReactiveMongoTestTemplate template = new ReactiveMongoTestTemplate(cfg -> { cfg.configureDatabaseFactory(it -> { @@ -113,19 +114,21 @@ public class ReactiveMongoTemplateTests { }); }); - ReactiveMongoDatabaseFactory factory = template.getDatabaseFactory(); + @BeforeEach + void setUp() { - @AfterEach - public void setUp() { + template + .flush(Person.class, MyPerson.class, Sample.class, Venue.class, PersonWithVersionPropertyOfTypeInteger.class) // + .as(StepVerifier::create) // + .verifyComplete(); - template.flush().as(StepVerifier::create).verifyComplete(); - template.flush("people", "collection").as(StepVerifier::create).verifyComplete(); - template.dropCollection(Person.class).as(StepVerifier::create).verifyComplete(); - template.dropCollection("personX").as(StepVerifier::create).verifyComplete(); + template.flush("people", "collection", "personX", "unique_person").as(StepVerifier::create).verifyComplete(); } + private ReactiveMongoDatabaseFactory factory = template.getDatabaseFactory(); + @Test // DATAMONGO-1444 - public void insertSetsId() { + void insertSetsId() { PersonWithAList person = new PersonWithAList(); assert person.getId() == null; @@ -139,7 +142,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void insertAllSetsId() { + void insertAllSetsId() { PersonWithAList person = new PersonWithAList(); @@ -152,7 +155,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void insertCollectionSetsId() { + void insertCollectionSetsId() { PersonWithAList person = new PersonWithAList(); @@ -165,7 +168,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void saveSetsId() { + void saveSetsId() { PersonWithAList person = new PersonWithAList(); assert person.getId() == null; @@ -179,7 +182,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void insertsSimpleEntityCorrectly() { + void insertsSimpleEntityCorrectly() { Person person = new Person("Mark"); person.setAge(35); @@ -195,7 +198,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void simpleInsertDoesNotAllowArrays() { + void simpleInsertDoesNotAllowArrays() { Person person = new Person("Mark"); person.setAge(35); @@ -204,7 +207,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void simpleInsertDoesNotAllowCollections() { + void simpleInsertDoesNotAllowCollections() { Person person = new Person("Mark"); person.setAge(35); @@ -213,7 +216,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void insertsSimpleEntityWithSuppliedCollectionNameCorrectly() { + void insertsSimpleEntityWithSuppliedCollectionNameCorrectly() { Person person = new Person("Homer"); person.setAge(35); @@ -229,7 +232,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void insertBatchCorrectly() { + void insertBatchCorrectly() { List people = Arrays.asList(new Person("Dick", 22), new Person("Harry", 23), new Person("Tom", 21)); @@ -240,12 +243,12 @@ public class ReactiveMongoTemplateTests { template.find(new Query().with(Sort.by("firstname")), Person.class) // .as(StepVerifier::create) // - .expectNextSequence(people) // + .expectNextCount(3) /// .verifyComplete(); } @Test // DATAMONGO-1444 - public void insertBatchWithSuppliedCollectionNameCorrectly() { + void insertBatchWithSuppliedCollectionNameCorrectly() { List people = Arrays.asList(new Person("Dick", 22), new Person("Harry", 23), new Person("Tom", 21)); @@ -256,12 +259,12 @@ public class ReactiveMongoTemplateTests { template.find(new Query().with(Sort.by("firstname")), Person.class, "people") // .as(StepVerifier::create) // - .expectNextSequence(people) // + .expectNextCount(3) // .verifyComplete(); } @Test // DATAMONGO-1444 - public void insertBatchWithSuppliedEntityTypeCorrectly() { + void insertBatchWithSuppliedEntityTypeCorrectly() { List people = Arrays.asList(new Person("Dick", 22), new Person("Harry", 23), new Person("Tom", 21)); @@ -272,12 +275,12 @@ public class ReactiveMongoTemplateTests { template.find(new Query().with(Sort.by("firstname")), Person.class) // .as(StepVerifier::create) // - .expectNextSequence(people) // + .expectNextCount(3) // .verifyComplete(); } @Test // DATAMONGO-1444 - public void testAddingToList() { + void testAddingToList() { PersonWithAList person = createPersonWithAList("Sven", 22); template.insert(person) // @@ -322,7 +325,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void testFindOneWithSort() { + void testFindOneWithSort() { PersonWithAList sven = createPersonWithAList("Sven", 22); PersonWithAList erik = createPersonWithAList("Erik", 21); @@ -346,7 +349,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void bogusUpdateDoesNotTriggerException() { + void bogusUpdateDoesNotTriggerException() { ReactiveMongoTemplate mongoTemplate = new ReactiveMongoTemplate(factory); mongoTemplate.setWriteResultChecking(WriteResultChecking.EXCEPTION); @@ -367,7 +370,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void updateFirstByEntityTypeShouldUpdateObject() { + void updateFirstByEntityTypeShouldUpdateObject() { Person person = new Person("Oliver2", 25); template.insert(person) // @@ -381,7 +384,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void updateFirstByCollectionNameShouldUpdateObjects() { + void updateFirstByCollectionNameShouldUpdateObjects() { Person person = new Person("Oliver2", 25); template.insert(person, "people") // @@ -395,7 +398,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void updateMultiByEntityTypeShouldUpdateObjects() { + void updateMultiByEntityTypeShouldUpdateObjects() { Query query = new Query( new Criteria().orOperator(where("firstName").is("Walter Jr"), where("firstName").is("Walter"))); @@ -411,7 +414,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void updateMultiByCollectionNameShouldUpdateObject() { + void updateMultiByCollectionNameShouldUpdateObject() { Query query = new Query( new Criteria().orOperator(where("firstName").is("Walter Jr"), where("firstName").is("Walter"))); @@ -432,7 +435,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void throwsExceptionForDuplicateIds() { + void throwsExceptionForDuplicateIds() { ReactiveMongoTemplate template = new ReactiveMongoTemplate(factory); template.setWriteResultChecking(WriteResultChecking.EXCEPTION); @@ -452,7 +455,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void throwsExceptionForUpdateWithInvalidPushOperator() { + void throwsExceptionForUpdateWithInvalidPushOperator() { ReactiveMongoTemplate template = new ReactiveMongoTemplate(factory); template.setWriteResultChecking(WriteResultChecking.EXCEPTION); @@ -475,7 +478,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void rejectsDuplicateIdInInsertAll() { + void rejectsDuplicateIdInInsertAll() { ReactiveMongoTemplate template = new ReactiveMongoTemplate(factory); template.setWriteResultChecking(WriteResultChecking.EXCEPTION); @@ -490,7 +493,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void testFindAndUpdate() { + void testFindAndUpdate() { template.insertAll(Arrays.asList(new Person("Tom", 21), new Person("Dick", 22), new Person("Harry", 23))) // .as(StepVerifier::create) // @@ -527,7 +530,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldReplaceDocument() { + void findAndReplaceShouldReplaceDocument() { org.bson.Document doc = new org.bson.Document("foo", "bar"); template.save(doc, "findandreplace").as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -548,7 +551,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldErrorOnIdPresent() { + void findAndReplaceShouldErrorOnIdPresent() { template.save(new MyPerson("Walter")).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -561,21 +564,21 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldErrorOnSkip() { + void findAndReplaceShouldErrorOnSkip() { assertThatIllegalArgumentException().isThrownBy(() -> template .findAndReplace(query(where("name").is("Walter")).skip(10), new MyPerson("Heisenberg")).subscribe()); } @Test // DATAMONGO-1827 - public void findAndReplaceShouldErrorOnLimit() { + void findAndReplaceShouldErrorOnLimit() { assertThatIllegalArgumentException().isThrownBy(() -> template .findAndReplace(query(where("name").is("Walter")).limit(10), new MyPerson("Heisenberg")).subscribe()); } @Test // DATAMONGO-1827 - public void findAndReplaceShouldConsiderSortAndUpdateFirstIfMultipleFound() { + void findAndReplaceShouldConsiderSortAndUpdateFirstIfMultipleFound() { MyPerson walter1 = new MyPerson("Walter 1"); MyPerson walter2 = new MyPerson("Walter 2"); @@ -592,7 +595,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldReplaceObject() { + void findAndReplaceShouldReplaceObject() { MyPerson person = new MyPerson("Walter"); template.save(person) // @@ -611,7 +614,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldConsiderFields() { + void findAndReplaceShouldConsiderFields() { MyPerson person = new MyPerson("Walter"); person.address = new Address("TX", "Austin"); @@ -633,7 +636,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceNonExistingWithUpsertFalse() { + void findAndReplaceNonExistingWithUpsertFalse() { template.findAndReplace(query(where("name").is("Walter")), new MyPerson("Heisenberg")) // .as(StepVerifier::create) // @@ -643,7 +646,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceNonExistingWithUpsertTrue() { + void findAndReplaceNonExistingWithUpsertTrue() { template .findAndReplace(query(where("name").is("Walter")), new MyPerson("Heisenberg"), @@ -655,7 +658,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldProjectReturnedObjectCorrectly() { + void findAndReplaceShouldProjectReturnedObjectCorrectly() { MyPerson person = new MyPerson("Walter"); template.save(person) // @@ -673,7 +676,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1827 - public void findAndReplaceShouldReplaceObjectReturingNew() { + void findAndReplaceShouldReplaceObjectReturingNew() { MyPerson person = new MyPerson("Walter"); template.save(person) // @@ -691,7 +694,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void testFindAllAndRemoveFullyReturnsAndRemovesDocuments() { + void testFindAllAndRemoveFullyReturnsAndRemovesDocuments() { Sample spring = new Sample("100", "spring"); Sample data = new Sample("200", "data"); @@ -716,7 +719,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-2219 - public void testFindAllAndRemoveReturnsEmptyWithoutMatches() { + void testFindAllAndRemoveReturnsEmptyWithoutMatches() { Query qry = query(where("field").in("spring", "mongodb")); template.findAllAndRemove(qry, Sample.class) // @@ -729,7 +732,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1774 - public void testFindAllAndRemoveByCollectionReturnsAndRemovesDocuments() { + void testFindAllAndRemoveByCollectionReturnsAndRemovesDocuments() { Sample spring = new Sample("100", "spring"); Sample data = new Sample("200", "data"); @@ -754,12 +757,12 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1774 - public void removeWithNullShouldThrowError() { + void removeWithNullShouldThrowError() { assertThatIllegalArgumentException().isThrownBy(() -> template.remove((Object) null).subscribe()); } @Test // DATAMONGO-1774 - public void removeWithEmptyMonoShouldDoNothing() { + void removeWithEmptyMonoShouldDoNothing() { Sample spring = new Sample("100", "spring"); Sample data = new Sample("200", "data"); @@ -778,7 +781,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1774 - public void removeWithMonoShouldDeleteElement() { + void removeWithMonoShouldDeleteElement() { Sample spring = new Sample("100", "spring"); Sample data = new Sample("200", "data"); @@ -794,7 +797,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1774 - public void removeWithMonoAndCollectionShouldDeleteElement() { + void removeWithMonoAndCollectionShouldDeleteElement() { Sample spring = new Sample("100", "spring"); Sample data = new Sample("200", "data"); @@ -812,7 +815,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-2195 - public void removeVersionedEntityConsidersVersion() { + void removeVersionedEntityConsidersVersion() { PersonWithVersionPropertyOfTypeInteger person = new PersonWithVersionPropertyOfTypeInteger(); person.firstName = "Dave"; @@ -842,7 +845,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void optimisticLockingHandling() { + void optimisticLockingHandling() { // Init version PersonWithVersionPropertyOfTypeInteger person = new PersonWithVersionPropertyOfTypeInteger(); @@ -887,7 +890,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void doesNotFailOnVersionInitForUnversionedEntity() { + void doesNotFailOnVersionInitForUnversionedEntity() { Document dbObject = new Document(); dbObject.put("firstName", "Oliver"); @@ -900,7 +903,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void removesObjectFromExplicitCollection() { + void removesObjectFromExplicitCollection() { String collectionName = "explicit"; template.remove(new Query(), collectionName).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -923,7 +926,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void savesMapCorrectly() { + void savesMapCorrectly() { Map map = new HashMap<>(); map.put("key", "value"); @@ -936,12 +939,12 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1444, DATAMONGO-1730, DATAMONGO-2150 - public void savesMongoPrimitiveObjectCorrectly() { + void savesMongoPrimitiveObjectCorrectly() { assertThatExceptionOfType(MappingException.class).isThrownBy(() -> template.save(new Object(), "collection")); } @Test // DATAMONGO-1444 - public void savesPlainDbObjectCorrectly() { + void savesPlainDbObjectCorrectly() { Document dbObject = new Document("foo", "bar"); @@ -954,7 +957,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444, DATAMONGO-1730 - public void rejectsPlainObjectWithOutExplicitCollection() { + void rejectsPlainObjectWithOutExplicitCollection() { Document dbObject = new Document("foo", "bar"); @@ -968,7 +971,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void readsPlainDbObjectById() { + void readsPlainDbObjectById() { Document dbObject = new Document("foo", "bar"); template.save(dbObject, "collection") // @@ -986,7 +989,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void geoNear() { + void geoNear() { List venues = Arrays.asList(TestEntities.geolocation().pennStation(), // TestEntities.geolocation().tenGenOffice(), // @@ -1017,7 +1020,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void writesPlainString() { + void writesPlainString() { template.save("{ 'foo' : 'bar' }", "collection") // .as(StepVerifier::create) // @@ -1026,12 +1029,12 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444, DATAMONGO-2150 - public void rejectsNonJsonStringForSave() { + void rejectsNonJsonStringForSave() { assertThatExceptionOfType(MappingException.class).isThrownBy(() -> template.save("Foobar!", "collection")); } @Test // DATAMONGO-1444 - public void initializesVersionOnInsert() { + void initializesVersionOnInsert() { PersonWithVersionPropertyOfTypeInteger person = new PersonWithVersionPropertyOfTypeInteger(); person.firstName = "Dave"; @@ -1045,7 +1048,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void initializesVersionOnBatchInsert() { + void initializesVersionOnBatchInsert() { PersonWithVersionPropertyOfTypeInteger person = new PersonWithVersionPropertyOfTypeInteger(); person.firstName = "Dave"; @@ -1059,7 +1062,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1992 - public void initializesIdAndVersionAndOfImmutableObject() { + void initializesIdAndVersionAndOfImmutableObject() { ImmutableVersioned versioned = new ImmutableVersioned(); @@ -1078,7 +1081,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void queryCanBeNull() { + void queryCanBeNull() { template.findAll(PersonWithIdPropertyOfTypeObjectId.class) // .as(StepVerifier::create) // @@ -1090,7 +1093,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void versionsObjectIntoDedicatedCollection() { + void versionsObjectIntoDedicatedCollection() { PersonWithVersionPropertyOfTypeInteger person = new PersonWithVersionPropertyOfTypeInteger(); person.firstName = "Dave"; @@ -1109,7 +1112,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void correctlySetsLongVersionProperty() { + void correctlySetsLongVersionProperty() { PersonWithVersionPropertyOfTypeLong person = new PersonWithVersionPropertyOfTypeLong(); person.firstName = "Dave"; @@ -1122,11 +1125,11 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void throwsExceptionForIndexViolationIfConfigured() { + void throwsExceptionForIndexViolationIfConfigured() { ReactiveMongoTemplate template = new ReactiveMongoTemplate(factory); template.setWriteResultChecking(WriteResultChecking.EXCEPTION); - template.indexOps(Person.class) // + template.indexOps("unique_person") // .ensureIndex(new Index().on("firstName", Direction.DESC).unique()) // .as(StepVerifier::create) // .expectNextCount(1) // @@ -1135,7 +1138,7 @@ public class ReactiveMongoTemplateTests { Person person = new Person(new ObjectId(), "Amol"); person.setAge(28); - template.save(person) // + template.save(person, "unique_person") // .as(StepVerifier::create) // .expectNextCount(1) // .verifyComplete(); @@ -1143,13 +1146,16 @@ public class ReactiveMongoTemplateTests { person = new Person(new ObjectId(), "Amol"); person.setAge(28); - template.save(person) // + template.save(person, "unique_person") // .as(StepVerifier::create) // .verifyError(DataIntegrityViolationException.class); + + // safeguard to clean up previous state + template.dropCollection(Person.class).as(StepVerifier::create).verifyComplete(); } @Test // DATAMONGO-1444 - public void preventsDuplicateInsert() { + void preventsDuplicateInsert() { template.setWriteConcern(WriteConcern.MAJORITY); @@ -1169,7 +1175,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void countAndFindWithoutTypeInformation() { + void countAndFindWithoutTypeInformation() { Person person = new Person(); template.save(person) // @@ -1192,7 +1198,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void nullsPropertiesForVersionObjectUpdates() { + void nullsPropertiesForVersionObjectUpdates() { VersionedPerson person = new VersionedPerson(); person.firstname = "Dave"; @@ -1221,7 +1227,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void nullsValuesForUpdatesOfUnversionedEntity() { + void nullsValuesForUpdatesOfUnversionedEntity() { Person person = new Person("Dave"); template.save(person). // @@ -1245,7 +1251,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void savesJsonStringCorrectly() { + void savesJsonStringCorrectly() { Document dbObject = new Document().append("first", "first").append("second", "second"); @@ -1264,7 +1270,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void executesExistsCorrectly() { + void executesExistsCorrectly() { Sample sample = new Sample(); template.save(sample).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1287,7 +1293,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void tailStreamsData() throws InterruptedException { + void tailStreamsData() throws InterruptedException { template.dropCollection("capped").then(template.createCollection("capped", // CollectionOptions.empty().size(1000).maxDocuments(10).capped())) @@ -1309,7 +1315,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1444 - public void tailStreamsDataUntilCancellation() throws InterruptedException { + void tailStreamsDataUntilCancellation() throws InterruptedException { template.dropCollection("capped").then(template.createCollection("capped", // CollectionOptions.empty().size(1000).maxDocuments(10).capped())) @@ -1345,7 +1351,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1761 - public void testDistinct() { + void testDistinct() { Person person1 = new Person("Christoph", 38); Person person2 = new Person("Christine", 39); @@ -1365,7 +1371,7 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1803 @Disabled("Heavily relying on timing assumptions. Cannot test message resumption properly. Too much race for too little time in between.") @EnableIfReplicaSetAvailable - public void changeStreamEventsShouldBeEmittedCorrectly() throws InterruptedException { + void changeStreamEventsShouldBeEmittedCorrectly() throws InterruptedException { template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1397,7 +1403,7 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1803 @Disabled("Heavily relying on timing assumptions. Cannot test message resumption properly. Too much race for too little time in between.") @EnableIfReplicaSetAvailable - public void changeStreamEventsShouldBeConvertedCorrectly() throws InterruptedException { + void changeStreamEventsShouldBeConvertedCorrectly() throws InterruptedException { template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1429,7 +1435,7 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1803 @Disabled("Heavily relying on timing assumptions. Cannot test message resumption properly. Too much race for too little time in between.") @EnableIfReplicaSetAvailable - public void changeStreamEventsShouldBeFilteredCorrectly() throws InterruptedException { + void changeStreamEventsShouldBeFilteredCorrectly() throws InterruptedException { template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1461,8 +1467,9 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1803 @EnableIfReplicaSetAvailable - public void mapsReservedWordsCorrectly() throws InterruptedException { + void mapsReservedWordsCorrectly() throws InterruptedException { + template.dropCollection(Person.class).onErrorResume(it -> Mono.empty()).as(StepVerifier::create).verifyComplete(); template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); BlockingQueue> documents = new LinkedBlockingQueue<>(100); @@ -1504,7 +1511,7 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-1803 @Disabled("Heavily relying on timing assumptions. Cannot test message resumption properly. Too much race for too little time in between.") @EnableIfReplicaSetAvailable - public void changeStreamEventsShouldBeResumedCorrectly() throws InterruptedException { + void changeStreamEventsShouldBeResumedCorrectly() throws InterruptedException { template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1545,7 +1552,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1870 - public void removeShouldConsiderLimit() { + void removeShouldConsiderLimit() { List samples = IntStream.range(0, 100) // .mapToObj(i -> new Sample("id-" + i, i % 2 == 0 ? "stark" : "lannister")) // @@ -1562,7 +1569,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-1870 - public void removeShouldConsiderSkipAndSort() { + void removeShouldConsiderSkipAndSort() { List samples = IntStream.range(0, 100) // .mapToObj(i -> new Sample("id-" + i, i % 2 == 0 ? "stark" : "lannister")) // @@ -1581,7 +1588,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-2189 - public void afterSaveEventContainsSavedObjectUsingInsert() { + void afterSaveEventContainsSavedObjectUsingInsert() { AtomicReference saved = createAfterSaveReference(); ImmutableVersioned source = new ImmutableVersioned(); @@ -1596,7 +1603,7 @@ public class ReactiveMongoTemplateTests { } @Test // DATAMONGO-2189 - public void afterSaveEventContainsSavedObjectUsingInsertAll() { + void afterSaveEventContainsSavedObjectUsingInsertAll() { AtomicReference saved = createAfterSaveReference(); ImmutableVersioned source = new ImmutableVersioned(); @@ -1613,8 +1620,10 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-2012 @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @EnableIfReplicaSetAvailable - public void watchesDatabaseCorrectly() throws InterruptedException { + void watchesDatabaseCorrectly() throws InterruptedException { + template.dropCollection(Person.class).onErrorResume(it -> Mono.empty()).as(StepVerifier::create).verifyComplete(); + template.dropCollection("personX").onErrorResume(it -> Mono.empty()).as(StepVerifier::create).verifyComplete(); template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); template.createCollection("personX").as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1654,8 +1663,9 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-2012, DATAMONGO-2113 @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @EnableIfReplicaSetAvailable - public void resumesAtTimestampCorrectly() throws InterruptedException { + void resumesAtTimestampCorrectly() throws InterruptedException { + template.dropCollection(Person.class).onErrorResume(it -> Mono.empty()).as(StepVerifier::create).verifyComplete(); template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); BlockingQueue> documents = new LinkedBlockingQueue<>(100); @@ -1704,7 +1714,7 @@ public class ReactiveMongoTemplateTests { @Test // DATAMONGO-2115 @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @EnableIfReplicaSetAvailable - public void resumesAtBsonTimestampCorrectly() throws InterruptedException { + void resumesAtBsonTimestampCorrectly() throws InterruptedException { template.createCollection(Person.class).as(StepVerifier::create).expectNextCount(1).verifyComplete(); @@ -1774,7 +1784,7 @@ public class ReactiveMongoTemplateTests { final @Id String id; final @Version Long version; - public ImmutableVersioned() { + ImmutableVersioned() { id = null; version = null; } @@ -1786,9 +1796,9 @@ public class ReactiveMongoTemplateTests { @Id String id; String field; - public Sample() {} + Sample() {} - public Sample(String id, String field) { + Sample(String id, String field) { this.id = id; this.field = field; } @@ -1803,7 +1813,7 @@ public class ReactiveMongoTemplateTests { String name; Address address; - public MyPerson(String name) { + MyPerson(String name) { this.name = name; } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java index aad1244fc..868816605 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java @@ -22,7 +22,7 @@ import java.util.Arrays; import java.util.Map; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.query.SerializationUtils; import com.mongodb.BasicDBList; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleMongoClientDatabaseFactoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleMongoClientDatabaseFactoryUnitTests.java index 794e40794..c97f30247 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleMongoClientDatabaseFactoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleMongoClientDatabaseFactoryUnitTests.java @@ -21,10 +21,10 @@ import static org.mockito.Mockito.*; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.aop.framework.AopProxyUtils; import org.springframework.data.mongodb.MongoDatabaseFactory; @@ -42,15 +42,15 @@ import com.mongodb.client.MongoDatabase; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class SimpleMongoClientDatabaseFactoryUnitTests { +@ExtendWith(MockitoExtension.class) +class SimpleMongoClientDatabaseFactoryUnitTests { @Mock MongoClient mongo; @Mock ClientSession clientSession; @Mock MongoDatabase database; @Test // DATADOC-254, DATAMONGO-1903 - public void rejectsIllegalDatabaseNames() { + void rejectsIllegalDatabaseNames() { rejectsDatabaseName("foo.bar"); rejectsDatabaseName("foo$bar"); @@ -61,14 +61,14 @@ public class SimpleMongoClientDatabaseFactoryUnitTests { } @Test // DATADOC-254 - public void allowsDatabaseNames() { + void allowsDatabaseNames() { new SimpleMongoClientDatabaseFactory(mongo, "foo-bar"); new SimpleMongoClientDatabaseFactory(mongo, "foo_bar"); new SimpleMongoClientDatabaseFactory(mongo, "foo01231bar"); } @Test // DATADOC-295 - public void mongoUriConstructor() { + void mongoUriConstructor() { ConnectionString mongoURI = new ConnectionString( "mongodb://myUsername:myPassword@localhost/myDatabase.myCollection"); @@ -78,7 +78,7 @@ public class SimpleMongoClientDatabaseFactoryUnitTests { } @Test // DATAMONGO-1158 - public void constructsMongoClientAccordingToMongoUri() { + void constructsMongoClientAccordingToMongoUri() { ConnectionString uri = new ConnectionString( "mongodb://myUserName:myPassWord@127.0.0.1:27017/myDataBase.myCollection"); @@ -88,7 +88,7 @@ public class SimpleMongoClientDatabaseFactoryUnitTests { } @Test // DATAMONGO-1880 - public void cascadedWithSessionUsesRootFactory() { + void cascadedWithSessionUsesRootFactory() { when(mongo.getDatabase("foo")).thenReturn(database); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactoryUnitTests.java index 5ffb3f77f..feaa9890c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactoryUnitTests.java @@ -21,10 +21,10 @@ import static org.mockito.Mockito.*; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.aop.framework.AopProxyUtils; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; @@ -39,15 +39,15 @@ import com.mongodb.reactivestreams.client.MongoDatabase; * * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class SimpleReactiveMongoDatabaseFactoryUnitTests { +@ExtendWith(MockitoExtension.class) +class SimpleReactiveMongoDatabaseFactoryUnitTests { @Mock MongoClient mongoClient; @Mock ClientSession clientSession; @Mock MongoDatabase database; @Test // DATAMONGO-1880 - public void cascadedWithSessionUsesRootFactory() { + void cascadedWithSessionUsesRootFactory() { when(mongoClient.getDatabase("foo")).thenReturn(database); @@ -63,7 +63,7 @@ public class SimpleReactiveMongoDatabaseFactoryUnitTests { } @Test // DATAMONGO-1903 - public void rejectsIllegalDatabaseNames() { + void rejectsIllegalDatabaseNames() { rejectsDatabaseName("foo.bar"); rejectsDatabaseName("foo$bar"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationOptionsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationOptionsTests.java index 1585705c1..1e46b4836 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationOptionsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationOptionsTests.java @@ -19,8 +19,8 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link AggregationOptions}. @@ -34,7 +34,7 @@ public class AggregationOptionsTests { AggregationOptions aggregationOptions; - @Before + @BeforeEach public void setup() { aggregationOptions = newAggregationOptions().explain(true) // .cursorBatchSize(1) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUpdateUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUpdateUnitTests.java index e898591bf..0d7a1d15a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUpdateUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUpdateUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link AggregationUpdate}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArrayOperatorsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArrayOperatorsUnitTests.java index 51a38ec6d..001dd8004 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArrayOperatorsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArrayOperatorsUnitTests.java @@ -22,7 +22,7 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.ArrayOperators.ArrayToObject; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketAutoOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketAutoOperationUnitTests.java index 82057f961..1b83a12b5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketAutoOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketAutoOperationUnitTests.java @@ -20,7 +20,7 @@ import static org.springframework.data.mongodb.core.DocumentTestUtils.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.BucketAutoOperation.Granularities; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketOperationUnitTests.java index 909616461..6e9507c07 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/BucketOperationUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link BucketOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ConvertOperatorsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ConvertOperatorsUnitTests.java index 89a553e59..781737fb7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ConvertOperatorsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ConvertOperatorsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link ConvertOperators}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CountOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CountOperationUnitTests.java index c5b5992b2..eee66ee20 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CountOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CountOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link CountOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ExposedFieldsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ExposedFieldsUnitTests.java index 0e73dc434..d7ec8874f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ExposedFieldsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ExposedFieldsUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.ExposedFields.ExposedField; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FieldsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FieldsUnitTests.java index 5a4f958d3..f3d438944 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FieldsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FieldsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.aggregation.Fields.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.Fields.*; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java index 4285a592b..1580b4efb 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java @@ -22,11 +22,12 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.DocumentTestUtils; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; @@ -37,16 +38,16 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class FilterExpressionUnitTests { +@ExtendWith(MockitoExtension.class) +class FilterExpressionUnitTests { @Mock MongoDatabaseFactory mongoDbFactory; private AggregationOperationContext aggregationContext; private MongoMappingContext mappingContext; - @Before - public void setUp() { + @BeforeEach + void setUp() { mappingContext = new MongoMappingContext(); aggregationContext = new TypeBasedAggregationOperationContext(Sales.class, mappingContext, @@ -54,7 +55,7 @@ public class FilterExpressionUnitTests { } @Test // DATAMONGO-1491 - public void shouldConstructFilterExpressionCorrectly() { + void shouldConstructFilterExpressionCorrectly() { TypedAggregation agg = Aggregation.newAggregation(Sales.class, Aggregation.project() @@ -72,7 +73,7 @@ public class FilterExpressionUnitTests { } @Test // DATAMONGO-1491 - public void shouldConstructFilterExpressionCorrectlyWhenUsingFilterOnProjectionBuilder() { + void shouldConstructFilterExpressionCorrectlyWhenUsingFilterOnProjectionBuilder() { TypedAggregation agg = Aggregation.newAggregation(Sales.class, Aggregation.project().and("items") .filter("item", AggregationFunctionExpressions.GTE.of(Fields.field("item.price"), 100)).as("items")); @@ -88,7 +89,7 @@ public class FilterExpressionUnitTests { } @Test // DATAMONGO-1491 - public void shouldConstructFilterExpressionCorrectlyWhenInputMapToArray() { + void shouldConstructFilterExpressionCorrectlyWhenInputMapToArray() { TypedAggregation agg = Aggregation.newAggregation(Sales.class, Aggregation.project().and(filter(Arrays. asList(1, "a", 2, null, 3.1D, 4, "5")).as("num") @@ -105,7 +106,7 @@ public class FilterExpressionUnitTests { } @Test // DATAMONGO-2320 - public void shouldConstructFilterExpressionCorrectlyWhenConditionContainsFieldReference() { + void shouldConstructFilterExpressionCorrectlyWhenConditionContainsFieldReference() { Aggregation agg = Aggregation.newAggregation(Aggregation.project().and((ctx) -> new Document()).as("field-1") .and(filter("items").as("item").by(ComparisonOperators.valueOf("item.price").greaterThan("field-1"))) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GeoNearOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GeoNearOperationUnitTests.java index 2fe72368a..720eb4c13 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GeoNearOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GeoNearOperationUnitTests.java @@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.annotation.Id; import org.springframework.data.geo.Distance; import org.springframework.data.mongodb.core.DocumentTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GraphLookupOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GraphLookupOperationUnitTests.java index 09b01fa5b..62a85692a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GraphLookupOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GraphLookupOperationUnitTests.java @@ -20,7 +20,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.Person; import org.springframework.data.mongodb.core.query.Criteria; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GroupOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GroupOperationUnitTests.java index 33404d897..6239b3d10 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GroupOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/GroupOperationUnitTests.java @@ -22,7 +22,7 @@ import static org.springframework.data.mongodb.core.aggregation.Fields.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; import org.springframework.data.mongodb.core.query.Criteria; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/LookupOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/LookupOperationUnitTests.java index 5e4bd6eb2..94ed8cd6b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/LookupOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/LookupOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ObjectOperatorsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ObjectOperatorsUnitTests.java index 0742ac937..3c5a8f237 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ObjectOperatorsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ObjectOperatorsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.Aggregation.SystemVariable; import org.springframework.data.mongodb.core.aggregation.ObjectOperators.MergeObjects; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/OutOperationUnitTest.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/OutOperationUnitTest.java index e3e70a958..8cc45db02 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/OutOperationUnitTest.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/OutOperationUnitTest.java @@ -21,7 +21,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link OutOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ProjectionOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ProjectionOperationUnitTests.java index 84e35119f..3a7ca1f5d 100755 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ProjectionOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ProjectionOperationUnitTests.java @@ -28,7 +28,7 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Range; import org.springframework.data.domain.Range.Bound; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReactiveAggregationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReactiveAggregationUnitTests.java index b83480de0..40aab9daa 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReactiveAggregationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReactiveAggregationUnitTests.java @@ -23,11 +23,13 @@ import static org.mockito.Mockito.anyList; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; @@ -43,20 +45,21 @@ import com.mongodb.reactivestreams.client.MongoDatabase; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class ReactiveAggregationUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class ReactiveAggregationUnitTests { - static final String INPUT_COLLECTION = "collection-1"; + private static final String INPUT_COLLECTION = "collection-1"; - ReactiveMongoTemplate template; - ReactiveMongoDatabaseFactory factory; + private ReactiveMongoTemplate template; + private ReactiveMongoDatabaseFactory factory; @Mock MongoClient mongoClient; @Mock MongoDatabase db; @Mock MongoCollection collection; @Mock AggregatePublisher publisher; - @Before - public void setUp() { + @BeforeEach + void setUp() { factory = new SimpleReactiveMongoDatabaseFactory(mongoClient, "db"); template = new ReactiveMongoTemplate(factory); @@ -69,23 +72,23 @@ public class ReactiveAggregationUnitTests { } @Test // DATAMONGO-1646 - public void shouldHandleMissingInputCollection() { + void shouldHandleMissingInputCollection() { assertThatIllegalArgumentException() .isThrownBy(() -> template.aggregate(newAggregation(), (String) null, TagCount.class)); } @Test // DATAMONGO-1646 - public void shouldHandleMissingAggregationPipeline() { + void shouldHandleMissingAggregationPipeline() { assertThatIllegalArgumentException().isThrownBy(() -> template.aggregate(null, INPUT_COLLECTION, TagCount.class)); } @Test // DATAMONGO-1646 - public void shouldHandleMissingEntityClass() { + void shouldHandleMissingEntityClass() { assertThatIllegalArgumentException().isThrownBy(() -> template.aggregate(newAggregation(), INPUT_COLLECTION, null)); } @Test // DATAMONGO-1646 - public void errorsOnExplainUsage() { + void errorsOnExplainUsage() { assertThatIllegalArgumentException().isThrownBy(() -> template.aggregate(newAggregation(Product.class, // project("name", "netPrice")) // .withOptions(AggregationOptions.builder().explain(true).build()), @@ -93,7 +96,7 @@ public class ReactiveAggregationUnitTests { } @Test // DATAMONGO-1646, DATAMONGO-1311 - public void appliesBatchSizeWhenPresent() { + void appliesBatchSizeWhenPresent() { when(publisher.batchSize(anyInt())).thenReturn(publisher); @@ -107,7 +110,7 @@ public class ReactiveAggregationUnitTests { } @Test // DATAMONGO-1646 - public void appliesCollationCorrectlyWhenPresent() { + void appliesCollationCorrectlyWhenPresent() { template.aggregate(newAggregation(Product.class, // project("name", "netPrice")) // @@ -118,7 +121,7 @@ public class ReactiveAggregationUnitTests { } @Test // DATAMONGO-1646 - public void doesNotSetCollationWhenNotPresent() { + void doesNotSetCollationWhenNotPresent() { template.aggregate(newAggregation(Product.class, // project("name", "netPrice")) // @@ -129,7 +132,7 @@ public class ReactiveAggregationUnitTests { } @Test // DATAMONGO-1646 - public void appliesDiskUsageCorrectly() { + void appliesDiskUsageCorrectly() { template.aggregate(newAggregation(Product.class, // project("name", "netPrice")) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceRootOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceRootOperationUnitTests.java index 25b231d6b..6cf1a3630 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceRootOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceRootOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.aggregation.ReplaceRootOperation.ReplaceRootDocumentOperation; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceWithOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceWithOperationUnitTests.java index 6fb94db7e..7e6a55721 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceWithOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ReplaceWithOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link ReplaceRootOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SampleOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SampleOperationUnitTests.java index b3a40dcec..35b6a13b0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SampleOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SampleOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link SampleOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetOperationUnitTests.java index b5b2d22ab..a3c3203fa 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetOperationUnitTests.java @@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.List; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver; import org.springframework.data.mongodb.core.convert.QueryMapper; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SkipOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SkipOperationUnitTests.java index cd9a9a772..fd5647e99 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SkipOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SkipOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link SkipOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortByCountOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortByCountOperationUnitTests.java index 393ff4dab..41a73972d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortByCountOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortByCountOperationUnitTests.java @@ -21,7 +21,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link SortByCountOperation}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortOperationUnitTests.java index d6a27fcfa..3d8c38b5a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SortOperationUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.DocumentTestUtils.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/StringOperatorsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/StringOperatorsUnitTests.java index a04afd586..02a2f5f10 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/StringOperatorsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/StringOperatorsUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit test for {@link StringOperators}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java index db281d0e4..44fbc6ff3 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/TypeBasedAggregationOperationContextUnitTests.java @@ -27,11 +27,11 @@ import java.util.List; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.core.convert.converter.Converter; import org.springframework.core.convert.support.GenericConversionService; @@ -57,7 +57,7 @@ import org.springframework.data.mongodb.core.query.Criteria; * @author Mark Paluch * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class TypeBasedAggregationOperationContextUnitTests { MongoMappingContext context; @@ -66,7 +66,7 @@ public class TypeBasedAggregationOperationContextUnitTests { @Mock DbRefResolver dbRefResolver; - @Before + @BeforeEach public void setUp() { this.context = new MongoMappingContext(); @@ -283,7 +283,7 @@ public class TypeBasedAggregationOperationContextUnitTests { assertThat(definition.get("something_totally_different")).isEqualTo(1); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1326 + @Test // DATAMONGO-1326 public void lookupGroupAggregationShouldFailInvalidFieldReference() { TypeBasedAggregationOperationContext context = getContext(MeterData.class); @@ -291,7 +291,7 @@ public class TypeBasedAggregationOperationContextUnitTests { lookup("OtherCollection", "resourceId", "otherId", "lookup"), group().min("lookup.otherkey").as("something_totally_different"), sort(Direction.ASC, "resourceId")); - agg.toDocument("meterData", context); + assertThatIllegalArgumentException().isThrownBy(() -> agg.toDocument("meterData", context)); } @Test // DATAMONGO-861 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnsetOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnsetOperationUnitTests.java index cf7e960ef..9bbb598b7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnsetOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnsetOperationUnitTests.java @@ -22,7 +22,7 @@ import java.util.Collection; import java.util.Collections; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnwindOperationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnwindOperationUnitTests.java index b6b1762a7..f398b4b54 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnwindOperationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/UnwindOperationUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.aggregation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java index 20289bfa2..26f6e9b8e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java @@ -20,13 +20,13 @@ import static org.assertj.core.api.Assertions.*; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.annotation.Id; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverterUnitTests.java index fe7dc0878..feff80ebf 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverterUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.convert; import static org.mockito.Mockito.*; import org.bson.conversions.Bson; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.data.mapping.context.MappingContext; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/CustomConvertersUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/CustomConvertersUnitTests.java index c7657bd1b..530938900 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/CustomConvertersUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/CustomConvertersUnitTests.java @@ -22,11 +22,13 @@ import java.util.Arrays; import java.util.HashSet; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.core.convert.converter.Converter; import org.springframework.data.annotation.Id; @@ -39,20 +41,20 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class CustomConvertersUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class CustomConvertersUnitTests { - MappingMongoConverter converter; + private MappingMongoConverter converter; @Mock BarToDocumentConverter barToDocumentConverter; @Mock DocumentToBarConverter documentToBarConverter; @Mock MongoDatabaseFactory mongoDbFactory; - MongoMappingContext context; + private MongoMappingContext context; - @Before - @SuppressWarnings("unchecked") - public void setUp() throws Exception { + @BeforeEach + void setUp() { when(barToDocumentConverter.convert(any(Bar.class))).thenReturn(new Document()); when(documentToBarConverter.convert(any(Document.class))).thenReturn(new Bar()); @@ -61,7 +63,7 @@ public class CustomConvertersUnitTests { Arrays.asList(barToDocumentConverter, documentToBarConverter)); context = new MongoMappingContext(); - context.setInitialEntitySet(new HashSet>(Arrays.asList(Foo.class, Bar.class))); + context.setInitialEntitySet(new HashSet<>(Arrays.asList(Foo.class, Bar.class))); context.setSimpleTypeHolder(conversions.getSimpleTypeHolder()); context.initialize(); @@ -71,7 +73,7 @@ public class CustomConvertersUnitTests { } @Test // DATADOC-101 - public void nestedToDocumentConverterGetsInvoked() { + void nestedToDocumentConverterGetsInvoked() { Foo foo = new Foo(); foo.bar = new Bar(); @@ -81,7 +83,7 @@ public class CustomConvertersUnitTests { } @Test // DATADOC-101 - public void nestedFromDocumentConverterGetsInvoked() { + void nestedFromDocumentConverterGetsInvoked() { Document document = new Document(); document.put("bar", new Document()); @@ -91,25 +93,25 @@ public class CustomConvertersUnitTests { } @Test // DATADOC-101 - public void toDocumentConverterGetsInvoked() { + void toDocumentConverterGetsInvoked() { converter.write(new Bar(), new Document()); verify(barToDocumentConverter).convert(any(Bar.class)); } @Test // DATADOC-101 - public void fromDocumentConverterGetsInvoked() { + void fromDocumentConverterGetsInvoked() { converter.read(Bar.class, new Document()); verify(documentToBarConverter).convert(any(Document.class)); } @Test // DATADOC-101 - public void foo() { + void foo() { Document document = new Document(); document.put("foo", null); - assertThat(document.containsKey("foo")).isEqualTo(true); + assertThat(document).containsKey("foo"); } public static class Foo { @@ -122,11 +124,7 @@ public class CustomConvertersUnitTests { public String foo; } - private interface BarToDocumentConverter extends Converter { + private interface BarToDocumentConverter extends Converter {} - } - - private interface DocumentToBarConverter extends Converter { - - } + private interface DocumentToBarConverter extends Converter {} } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DataMongo273Tests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DataMongo273Tests.java index 5697a48cb..2311161d5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DataMongo273Tests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DataMongo273Tests.java @@ -24,9 +24,9 @@ import java.util.List; import java.util.Map; import org.bson.Document; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; @@ -40,7 +40,7 @@ public class DataMongo273Tests { MappingMongoConverter converter; - @Before + @BeforeEach public void setupMongoConverter() { MongoMappingContext mappingContext = new MongoMappingContext(); @@ -74,7 +74,7 @@ public class DataMongo273Tests { } @Test // DATAMONGO-294 - @Ignore("TODO: Mongo3 - this is no longer supported as DBList is no Bson type :/") + @Disabled("TODO: Mongo3 - this is no longer supported as DBList is no Bson type :/") @SuppressWarnings({ "rawtypes", "unchecked" }) public void convertListOfThings() { Plane plane = new Plane("Boeing", 4); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DbRefMappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DbRefMappingMongoConverterUnitTests.java index 41c7ec1c7..3ab96d603 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DbRefMappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DbRefMappingMongoConverterUnitTests.java @@ -34,12 +34,12 @@ import java.util.Set; import org.bson.Document; import org.bson.conversions.Bson; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.annotation.AccessType; import org.springframework.data.annotation.AccessType.Type; @@ -69,7 +69,7 @@ import com.mongodb.client.MongoDatabase; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class DbRefMappingMongoConverterUnitTests { MappingMongoConverter converter; @@ -78,7 +78,7 @@ public class DbRefMappingMongoConverterUnitTests { @Mock MongoDatabaseFactory dbFactory; DefaultDbRefResolver dbRefResolver; - @Before + @BeforeEach public void setUp() { when(dbFactory.getExceptionTranslator()).thenReturn(new MongoExceptionTranslator()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolverUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolverUnitTests.java index 8cb385242..e11528ae1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolverUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolverUnitTests.java @@ -24,13 +24,15 @@ import java.util.Collections; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.mongodb.MongoDatabaseFactory; @@ -47,17 +49,18 @@ import com.mongodb.client.MongoDatabase; * @author Christoph Strobl * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class DefaultDbRefResolverUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class DefaultDbRefResolverUnitTests { @Mock MongoDatabaseFactory factoryMock; @Mock MongoDatabase dbMock; @Mock MongoCollection collectionMock; @Mock FindIterable cursorMock; - DefaultDbRefResolver resolver; + private DefaultDbRefResolver resolver; - @Before - public void setUp() { + @BeforeEach + void setUp() { when(factoryMock.getMongoDatabase()).thenReturn(dbMock); when(dbMock.getCollection(anyString(), any(Class.class))).thenReturn(collectionMock); @@ -68,7 +71,7 @@ public class DefaultDbRefResolverUnitTests { @Test // DATAMONGO-1194 @SuppressWarnings("unchecked") - public void bulkFetchShouldLoadDbRefsCorrectly() { + void bulkFetchShouldLoadDbRefsCorrectly() { DBRef ref1 = new DBRef("collection-1", new ObjectId()); DBRef ref2 = new DBRef("collection-1", new ObjectId()); @@ -85,25 +88,26 @@ public class DefaultDbRefResolverUnitTests { assertThat($in).hasSize(2); } - @Test(expected = InvalidDataAccessApiUsageException.class) // DATAMONGO-1194 - public void bulkFetchShouldThrowExceptionWhenUsingDifferntCollectionsWithinSetOfReferences() { + @Test // DATAMONGO-1194 + void bulkFetchShouldThrowExceptionWhenUsingDifferntCollectionsWithinSetOfReferences() { DBRef ref1 = new DBRef("collection-1", new ObjectId()); DBRef ref2 = new DBRef("collection-2", new ObjectId()); - resolver.bulkFetch(Arrays.asList(ref1, ref2)); + assertThatThrownBy(() -> resolver.bulkFetch(Arrays.asList(ref1, ref2))) + .isInstanceOf(InvalidDataAccessApiUsageException.class); } @Test // DATAMONGO-1194 - public void bulkFetchShouldReturnEarlyForEmptyLists() { + void bulkFetchShouldReturnEarlyForEmptyLists() { - resolver.bulkFetch(Collections. emptyList()); + resolver.bulkFetch(Collections.emptyList()); verify(collectionMock, never()).find(Mockito.any(Document.class)); } @Test // DATAMONGO-1194 - public void bulkFetchShouldRestoreOriginalOrder() { + void bulkFetchShouldRestoreOriginalOrder() { Document o1 = new Document("_id", new ObjectId()); Document o2 = new Document("_id", new ObjectId()); @@ -117,7 +121,7 @@ public class DefaultDbRefResolverUnitTests { } @Test // DATAMONGO-1765 - public void bulkFetchContainsDuplicates() { + void bulkFetchContainsDuplicates() { Document document = new Document("_id", new ObjectId()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultMongoTypeMapperUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultMongoTypeMapperUnitTests.java index 4f86746f8..f09265ba6 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultMongoTypeMapperUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DefaultMongoTypeMapperUnitTests.java @@ -22,8 +22,8 @@ import java.util.Collections; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.convert.ConfigurableTypeInformationMapper; import org.springframework.data.convert.SimpleTypeInformationMapper; @@ -42,7 +42,7 @@ public class DefaultMongoTypeMapperUnitTests { DefaultMongoTypeMapper typeMapper; - @Before + @BeforeEach public void setUp() { configurableTypeInformationMapper = new ConfigurableTypeInformationMapper( diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DocumentAccessorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DocumentAccessorUnitTests.java index c928e951c..ec90b254b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DocumentAccessorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/DocumentAccessorUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import org.bson.BsonDocument; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; import org.springframework.data.mongodb.core.mapping.Field; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoConvertersUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoConvertersUnitTests.java index 14263d6b6..f94472370 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoConvertersUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoConvertersUnitTests.java @@ -21,7 +21,7 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.geo.Box; import org.springframework.data.geo.Circle; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoJsonConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoJsonConverterUnitTests.java index 826e5e934..3948927f0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoJsonConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/GeoJsonConverterUnitTests.java @@ -20,7 +20,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/LazyLoadingInterceptorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/LazyLoadingInterceptorUnitTests.java index f8de117a7..080d5eb1e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/LazyLoadingInterceptorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/LazyLoadingInterceptorUnitTests.java @@ -18,10 +18,10 @@ package org.springframework.data.mongodb.core.convert; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.dao.DataAccessException; import org.springframework.dao.support.PersistenceExceptionTranslator; @@ -36,7 +36,7 @@ import com.mongodb.DBRef; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LazyLoadingInterceptorUnitTests { @Mock MongoPersistentProperty propertyMock; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java index 7722044ba..c2af8c856 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java @@ -34,13 +34,14 @@ import org.bson.types.Code; import org.bson.types.Decimal128; import org.bson.types.ObjectId; import org.joda.time.LocalDate; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.aop.framework.ProxyFactory; import org.springframework.beans.ConversionNotSupportedException; import org.springframework.beans.factory.annotation.Value; @@ -90,16 +91,16 @@ import com.mongodb.DBRef; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MappingMongoConverterUnitTests { - MappingMongoConverter converter; - MongoMappingContext mappingContext; + private MappingMongoConverter converter; + private MongoMappingContext mappingContext; @Mock ApplicationContext context; @Mock DbRefResolver resolver; - @Before - public void setUp() { + @BeforeEach + void setUp() { MongoCustomConversions conversions = new MongoCustomConversions(); @@ -116,7 +117,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void convertsAddressCorrectly() { + void convertsAddressCorrectly() { Address address = new Address(); address.city = "New York"; @@ -131,7 +132,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void convertsJodaTimeTypesCorrectly() { + void convertsJodaTimeTypesCorrectly() { converter = new MappingMongoConverter(resolver, mappingContext); converter.afterPropertiesSet(); @@ -149,7 +150,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void convertsCustomTypeOnConvertToMongoType() { + void convertsCustomTypeOnConvertToMongoType() { converter = new MappingMongoConverter(resolver, mappingContext); converter.afterPropertiesSet(); @@ -159,7 +160,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-130 - public void writesMapTypeCorrectly() { + void writesMapTypeCorrectly() { Map map = Collections.singletonMap(Locale.US, "Foo"); @@ -170,7 +171,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-130 - public void readsMapWithCustomKeyTypeCorrectly() { + void readsMapWithCustomKeyTypeCorrectly() { org.bson.Document mapObject = new org.bson.Document(Locale.US.toString(), "Value"); org.bson.Document document = new org.bson.Document("map", mapObject); @@ -180,7 +181,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-128 - public void usesDocumentsStoredTypeIfSubtypeOfRequest() { + void usesDocumentsStoredTypeIfSubtypeOfRequest() { org.bson.Document document = new org.bson.Document(); document.put("birthDate", new LocalDate()); @@ -190,7 +191,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-128 - public void ignoresDocumentsStoredTypeIfCompletelyDifferentTypeRequested() { + void ignoresDocumentsStoredTypeIfCompletelyDifferentTypeRequested() { org.bson.Document document = new org.bson.Document(); document.put("birthDate", new LocalDate()); @@ -200,7 +201,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void writesTypeDiscriminatorIntoRootObject() { + void writesTypeDiscriminatorIntoRootObject() { Person person = new Person(); @@ -212,7 +213,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-136 - public void writesEnumsCorrectly() { + void writesEnumsCorrectly() { ClassWithEnumProperty value = new ClassWithEnumProperty(); value.sampleEnum = SampleEnum.FIRST; @@ -225,7 +226,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-209 - public void writesEnumCollectionCorrectly() { + void writesEnumCollectionCorrectly() { ClassWithEnumProperty value = new ClassWithEnumProperty(); value.enums = Arrays.asList(SampleEnum.FIRST); @@ -241,7 +242,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-136 - public void readsEnumsCorrectly() { + void readsEnumsCorrectly() { org.bson.Document document = new org.bson.Document("sampleEnum", "FIRST"); ClassWithEnumProperty result = converter.read(ClassWithEnumProperty.class, document); @@ -249,7 +250,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-209 - public void readsEnumCollectionsCorrectly() { + void readsEnumCollectionsCorrectly() { BasicDBList enums = new BasicDBList(); enums.add("FIRST"); @@ -263,7 +264,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-144 - public void considersFieldNameWhenWriting() { + void considersFieldNameWhenWriting() { Person person = new Person(); person.firstname = "Oliver"; @@ -276,7 +277,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-144 - public void considersFieldNameWhenReading() { + void considersFieldNameWhenReading() { org.bson.Document document = new org.bson.Document("foo", "Oliver"); Person result = converter.read(Person.class, document); @@ -285,7 +286,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void resolvesNestedComplexTypeForConstructorCorrectly() { + void resolvesNestedComplexTypeForConstructorCorrectly() { org.bson.Document address = new org.bson.Document("street", "110 Southwark Street"); address.put("city", "London"); @@ -301,7 +302,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-145 - public void writesCollectionWithInterfaceCorrectly() { + void writesCollectionWithInterfaceCorrectly() { Person person = new Person(); person.firstname = "Oliver"; @@ -321,7 +322,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-145 - public void readsCollectionWithInterfaceCorrectly() { + void readsCollectionWithInterfaceCorrectly() { org.bson.Document person = new org.bson.Document(DefaultMongoTypeMapper.DEFAULT_TYPE_KEY, Person.class.getName()); person.put("foo", "Oliver"); @@ -338,7 +339,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void convertsLocalesOutOfTheBox() { + void convertsLocalesOutOfTheBox() { LocaleWrapper wrapper = new LocaleWrapper(); wrapper.locale = Locale.US; @@ -354,7 +355,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-161 - public void readsNestedMapsCorrectly() { + void readsNestedMapsCorrectly() { Map secondLevel = new HashMap(); secondLevel.put("key1", "value1"); @@ -378,7 +379,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATACMNS-42, DATAMONGO-171 - public void writesClassWithBigDecimal() { + void writesClassWithBigDecimal() { BigDecimalContainer container = new BigDecimalContainer(); container.value = BigDecimal.valueOf(2.5d); @@ -393,7 +394,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATACMNS-42, DATAMONGO-171 - public void readsClassWithBigDecimal() { + void readsClassWithBigDecimal() { org.bson.Document document = new org.bson.Document("value", "2.5"); document.put("map", new org.bson.Document("foo", "2.5")); @@ -409,7 +410,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void writesNestedCollectionsCorrectly() { + void writesNestedCollectionsCorrectly() { CollectionWrapper wrapper = new CollectionWrapper(); wrapper.strings = Arrays.asList(Arrays.asList("Foo")); @@ -425,7 +426,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-192 - public void readsEmptySetsCorrectly() { + void readsEmptySetsCorrectly() { Person person = new Person(); person.addresses = Collections.emptySet(); @@ -436,7 +437,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void convertsObjectIdStringsToObjectIdCorrectly() { + void convertsObjectIdStringsToObjectIdCorrectly() { PersonPojoStringId p1 = new PersonPojoStringId("1234567890", "Text-1"); org.bson.Document doc1 = new org.bson.Document(); @@ -451,7 +452,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-207 - public void convertsCustomEmptyMapCorrectly() { + void convertsCustomEmptyMapCorrectly() { org.bson.Document map = new org.bson.Document(); org.bson.Document wrapper = new org.bson.Document("map", map); @@ -463,12 +464,12 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-211 - public void maybeConvertHandlesNullValuesCorrectly() { + void maybeConvertHandlesNullValuesCorrectly() { assertThat(converter.convertToMongoType(null)).isNull(); } @Test // DATAMONGO-1509 - public void writesGenericTypeCorrectly() { + void writesGenericTypeCorrectly() { GenericType
type = new GenericType
(); type.content = new Address(); @@ -483,7 +484,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void readsGenericTypeCorrectly() { + void readsGenericTypeCorrectly() { org.bson.Document address = new org.bson.Document("_class", Address.class.getName()); address.put("city", "London"); @@ -493,7 +494,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-228 - public void writesNullValuesForMaps() { + void writesNullValuesForMaps() { ClassWithMapProperty foo = new ClassWithMapProperty(); foo.map = Collections.singletonMap(Locale.US, null); @@ -507,7 +508,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void writesBigIntegerIdCorrectly() { + void writesBigIntegerIdCorrectly() { ClassWithBigIntegerId foo = new ClassWithBigIntegerId(); foo.id = BigInteger.valueOf(23L); @@ -525,7 +526,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-235 - public void writesMapOfListsCorrectly() { + void writesMapOfListsCorrectly() { ClassWithMapProperty input = new ClassWithMapProperty(); input.mapOfLists = Collections.singletonMap("Foo", Arrays.asList("Bar")); @@ -546,7 +547,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-235 - public void readsMapListValuesCorrectly() { + void readsMapListValuesCorrectly() { BasicDBList list = new BasicDBList(); list.add("Bar"); @@ -557,7 +558,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-235 - public void writesMapsOfObjectsCorrectly() { + void writesMapsOfObjectsCorrectly() { ClassWithMapProperty input = new ClassWithMapProperty(); input.mapOfObjects = new HashMap(); @@ -579,7 +580,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-235 - public void readsMapOfObjectsListValuesCorrectly() { + void readsMapOfObjectsListValuesCorrectly() { BasicDBList list = new BasicDBList(); list.add("Bar"); @@ -590,7 +591,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-245 - public void readsMapListNestedValuesCorrectly() { + void readsMapListNestedValuesCorrectly() { BasicDBList list = new BasicDBList(); list.add(new org.bson.Document("Hello", "World")); @@ -603,7 +604,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-245 - public void readsMapDoublyNestedValuesCorrectly() { + void readsMapDoublyNestedValuesCorrectly() { org.bson.Document nested = new org.bson.Document(); org.bson.Document doubly = new org.bson.Document(); @@ -620,7 +621,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-245 - public void readsMapListDoublyNestedValuesCorrectly() { + void readsMapListDoublyNestedValuesCorrectly() { BasicDBList list = new BasicDBList(); org.bson.Document nested = new org.bson.Document(); @@ -639,7 +640,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-259 - public void writesListOfMapsCorrectly() { + void writesListOfMapsCorrectly() { Map map = Collections.singletonMap("Foo", Locale.ENGLISH); @@ -660,7 +661,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-259 - public void readsListOfMapsCorrectly() { + void readsListOfMapsCorrectly() { org.bson.Document map = new org.bson.Document("Foo", "en"); @@ -678,7 +679,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-259 - public void writesPlainMapOfCollectionsCorrectly() { + void writesPlainMapOfCollectionsCorrectly() { Map> map = Collections.singletonMap("Foo", Arrays.asList(Locale.US)); org.bson.Document result = new org.bson.Document(); @@ -696,7 +697,7 @@ public class MappingMongoConverterUnitTests { @Test // DATAMONGO-285 @SuppressWarnings({ "unchecked", "rawtypes" }) - public void testSaveMapWithACollectionAsValue() { + void testSaveMapWithACollectionAsValue() { Map keyValues = new HashMap(); keyValues.put("string", "hello"); @@ -721,7 +722,7 @@ public class MappingMongoConverterUnitTests { @Test // DATAMONGO-309 @SuppressWarnings({ "unchecked" }) - public void writesArraysAsMapValuesCorrectly() { + void writesArraysAsMapValuesCorrectly() { ClassWithMapProperty wrapper = new ClassWithMapProperty(); wrapper.mapOfObjects = new HashMap(); @@ -743,7 +744,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-324 - public void writesDocumentCorrectly() { + void writesDocumentCorrectly() { org.bson.Document document = new org.bson.Document(); document.put("foo", "bar"); @@ -757,7 +758,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-324 - public void readsDocumentCorrectly() { + void readsDocumentCorrectly() { org.bson.Document document = new org.bson.Document(); document.put("foo", "bar"); @@ -768,7 +769,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-329 - public void writesMapAsGenericFieldCorrectly() { + void writesMapAsGenericFieldCorrectly() { Map> objectToSave = new HashMap>(); objectToSave.put("test", new A("testValue")); @@ -792,7 +793,7 @@ public class MappingMongoConverterUnitTests { } @Test - public void writesIntIdCorrectly() { + void writesIntIdCorrectly() { ClassWithIntId value = new ClassWithIntId(); value.id = 5; @@ -805,7 +806,7 @@ public class MappingMongoConverterUnitTests { @Test // DATAMONGO-368 @SuppressWarnings("unchecked") - public void writesNullValuesForCollection() { + void writesNullValuesForCollection() { CollectionWrapper wrapper = new CollectionWrapper(); wrapper.contacts = Arrays.asList(new Person(), null); @@ -820,7 +821,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-379 - public void considersDefaultingExpressionsAtConstructorArguments() { + void considersDefaultingExpressionsAtConstructorArguments() { org.bson.Document document = new org.bson.Document("foo", "bar"); document.put("foobar", 2.5); @@ -830,7 +831,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-379 - public void usesDocumentFieldIfReferencedInAtValue() { + void usesDocumentFieldIfReferencedInAtValue() { org.bson.Document document = new org.bson.Document("foo", "bar"); document.put("something", 37); @@ -840,16 +841,17 @@ public class MappingMongoConverterUnitTests { assertThat(result.bar).isEqualTo(37); } - @Test(expected = MappingInstantiationException.class) // DATAMONGO-379 - public void rejectsNotFoundConstructorParameterForPrimitiveType() { + @Test // DATAMONGO-379 + void rejectsNotFoundConstructorParameterForPrimitiveType() { org.bson.Document document = new org.bson.Document("foo", "bar"); - converter.read(DefaultedConstructorArgument.class, document); + assertThatThrownBy(() -> converter.read(DefaultedConstructorArgument.class, document)) + .isInstanceOf(MappingInstantiationException.class); } @Test // DATAMONGO-358 - public void writesListForObjectPropertyCorrectly() { + void writesListForObjectPropertyCorrectly() { Attribute attribute = new Attribute(); attribute.key = "key"; @@ -875,13 +877,13 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-380 - public void rejectsMapWithKeyContainingDotsByDefault() { + void rejectsMapWithKeyContainingDotsByDefault() { assertThatExceptionOfType(MappingException.class) .isThrownBy(() -> converter.write(Collections.singletonMap("foo.bar", "foobar"), new org.bson.Document())); } @Test // DATAMONGO-380 - public void escapesDotInMapKeysIfReplacementConfigured() { + void escapesDotInMapKeysIfReplacementConfigured() { converter.setMapKeyDotReplacement("~"); @@ -894,7 +896,7 @@ public class MappingMongoConverterUnitTests { @Test // DATAMONGO-380 @SuppressWarnings("unchecked") - public void unescapesDotInMapKeysIfReplacementConfigured() { + void unescapesDotInMapKeysIfReplacementConfigured() { converter.setMapKeyDotReplacement("~"); @@ -906,8 +908,8 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-382 - @Ignore("mongo3 - no longer supported") - public void convertsSetToBasicDBList() { + @Disabled("mongo3 - no longer supported") + void convertsSetToBasicDBList() { Address address = new Address(); address.city = "London"; @@ -922,7 +924,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-402 - public void readsMemberClassCorrectly() { + void readsMemberClassCorrectly() { org.bson.Document document = new org.bson.Document("inner", new org.bson.Document("value", "FOO!")); @@ -933,7 +935,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-458 - public void readEmptyCollectionIsModifiable() { + void readEmptyCollectionIsModifiable() { org.bson.Document document = new org.bson.Document("contactsSet", new BasicDBList()); CollectionWrapper wrapper = converter.read(CollectionWrapper.class, document); @@ -943,7 +945,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-424 - public void readsPlainDBRefObject() { + void readsPlainDBRefObject() { DBRef dbRef = new DBRef("foo", 2); org.bson.Document document = new org.bson.Document("ref", dbRef); @@ -953,7 +955,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-424 - public void readsCollectionOfDBRefs() { + void readsCollectionOfDBRefs() { DBRef dbRef = new DBRef("foo", 2); BasicDBList refs = new BasicDBList(); @@ -967,7 +969,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-424 - public void readsDBRefMap() { + void readsDBRefMap() { DBRef dbRef = mock(DBRef.class); org.bson.Document refMap = new org.bson.Document("foo", dbRef); @@ -981,7 +983,7 @@ public class MappingMongoConverterUnitTests { @Test // DATAMONGO-424 @SuppressWarnings({ "rawtypes", "unchecked" }) - public void resolvesDBRefMapValue() { + void resolvesDBRefMapValue() { when(resolver.fetch(Mockito.any(DBRef.class))).thenReturn(new org.bson.Document()); DBRef dbRef = mock(DBRef.class); @@ -996,7 +998,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-462 - public void writesURLsAsStringOutOfTheBox() throws Exception { + void writesURLsAsStringOutOfTheBox() throws Exception { URLWrapper wrapper = new URLWrapper(); wrapper.url = new URL("https://springsource.org"); @@ -1008,14 +1010,14 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-462 - public void readsURLFromStringOutOfTheBox() throws Exception { + void readsURLFromStringOutOfTheBox() throws Exception { org.bson.Document document = new org.bson.Document("url", "https://springsource.org"); URLWrapper result = converter.read(URLWrapper.class, document); assertThat(result.url).isEqualTo(new URL("https://springsource.org")); } @Test // DATAMONGO-485 - public void writesComplexIdCorrectly() { + void writesComplexIdCorrectly() { ComplexId id = new ComplexId(); id.innerId = 4711L; @@ -1033,7 +1035,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-485 - public void readsComplexIdCorrectly() { + void readsComplexIdCorrectly() { org.bson.Document innerId = new org.bson.Document("innerId", 4711L); org.bson.Document entity = new org.bson.Document("_id", innerId); @@ -1045,7 +1047,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-489 - public void readsArraysAsMapValuesCorrectly() { + void readsArraysAsMapValuesCorrectly() { BasicDBList list = new BasicDBList(); list.add("Foo"); @@ -1063,7 +1065,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-497 - public void readsEmptyCollectionIntoConstructorCorrectly() { + void readsEmptyCollectionIntoConstructorCorrectly() { org.bson.Document source = new org.bson.Document("attributes", new BasicDBList()); @@ -1072,7 +1074,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2400 - public void writeJavaTimeValuesViaCodec() { + void writeJavaTimeValuesViaCodec() { configureConverterWithNativeJavaTimeCodec(); TypeWithLocalDateTime source = new TypeWithLocalDateTime(); @@ -1107,7 +1109,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMGONGO-508 - public void eagerlyReturnsDBRefObjectIfTargetAlreadyIsOne() { + void eagerlyReturnsDBRefObjectIfTargetAlreadyIsOne() { DBRef dbRef = new DBRef("collection", "id"); @@ -1117,7 +1119,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-523, DATAMONGO-1509 - public void considersTypeAliasAnnotation() { + void considersTypeAliasAnnotation() { Aliased aliased = new Aliased(); aliased.name = "foo"; @@ -1129,7 +1131,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-533 - public void marshalsThrowableCorrectly() { + void marshalsThrowableCorrectly() { ThrowableWrapper wrapper = new ThrowableWrapper(); wrapper.throwable = new Exception(); @@ -1139,7 +1141,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-592 - public void recursivelyConvertsSpELReadValue() { + void recursivelyConvertsSpELReadValue() { org.bson.Document input = org.bson.Document.parse( "{ \"_id\" : { \"$oid\" : \"50ca271c4566a2b08f2d667a\" }, \"_class\" : \"com.recorder.TestRecorder2$ObjectContainer\", \"property\" : { \"property\" : 100 } }"); @@ -1148,7 +1150,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-724 - public void mappingConsidersCustomConvertersNotWritingTypeInformation() { + void mappingConsidersCustomConvertersNotWritingTypeInformation() { Person person = new Person(); person.firstname = "Dave"; @@ -1206,7 +1208,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-743, DATAMONGO-2198 - public void readsIntoStringsOutOfTheBox() { + void readsIntoStringsOutOfTheBox() { String target = converter.read(String.class, new org.bson.Document("firstname", "Dave")); @@ -1217,7 +1219,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-766 - public void writesProjectingTypeCorrectly() { + void writesProjectingTypeCorrectly() { NestedType nested = new NestedType(); nested.c = "C"; @@ -1237,7 +1239,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-812, DATAMONGO-893, DATAMONGO-1509 - public void convertsListToBasicDBListAndRetainsTypeInformationForComplexObjects() { + void convertsListToBasicDBListAndRetainsTypeInformationForComplexObjects() { Address address = new Address(); address.city = "London"; @@ -1254,7 +1256,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-812 - public void convertsListToBasicDBListWithoutTypeInformationForSimpleTypes() { + void convertsListToBasicDBListWithoutTypeInformationForSimpleTypes() { Object result = converter.convertToMongoType(Collections.singletonList("foo")); @@ -1266,7 +1268,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-812, DATAMONGO-1509 - public void convertsArrayToBasicDBListAndRetainsTypeInformationForComplexObjects() { + void convertsArrayToBasicDBListAndRetainsTypeInformationForComplexObjects() { Address address = new Address(); address.city = "London"; @@ -1282,7 +1284,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-812 - public void convertsArrayToBasicDBListWithoutTypeInformationForSimpleTypes() { + void convertsArrayToBasicDBListWithoutTypeInformationForSimpleTypes() { Object result = converter.convertToMongoType(new String[] { "foo" }); @@ -1294,7 +1296,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-833 - public void readsEnumSetCorrectly() { + void readsEnumSetCorrectly() { BasicDBList enumSet = new BasicDBList(); enumSet.add("SECOND"); @@ -1308,7 +1310,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-833 - public void readsEnumMapCorrectly() { + void readsEnumMapCorrectly() { org.bson.Document enumMap = new org.bson.Document("FIRST", "Dave"); ClassWithEnumProperty result = converter.read(ClassWithEnumProperty.class, @@ -1320,7 +1322,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-887 - public void readsTreeMapCorrectly() { + void readsTreeMapCorrectly() { org.bson.Document person = new org.bson.Document("foo", "Dave"); org.bson.Document treeMapOfPerson = new org.bson.Document("key", person); @@ -1334,7 +1336,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-887 - public void writesTreeMapCorrectly() { + void writesTreeMapCorrectly() { Person person = new Person(); person.firstname = "Dave"; @@ -1353,7 +1355,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoBoxCorrectly() { + void shouldWriteEntityWithGeoBoxCorrectly() { ClassWithGeoBox object = new ClassWithGeoBox(); object.box = new Box(new Point(1, 2), new Point(3, 4)); @@ -1372,7 +1374,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldReadEntityWithGeoBoxCorrectly() { + void shouldReadEntityWithGeoBoxCorrectly() { ClassWithGeoBox object = new ClassWithGeoBox(); object.box = new Box(new Point(1, 2), new Point(3, 4)); @@ -1387,7 +1389,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoPolygonCorrectly() { + void shouldWriteEntityWithGeoPolygonCorrectly() { ClassWithGeoPolygon object = new ClassWithGeoPolygon(); object.polygon = new Polygon(new Point(1, 2), new Point(3, 4), new Point(4, 5)); @@ -1409,7 +1411,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldReadEntityWithGeoPolygonCorrectly() { + void shouldReadEntityWithGeoPolygonCorrectly() { ClassWithGeoPolygon object = new ClassWithGeoPolygon(); object.polygon = new Polygon(new Point(1, 2), new Point(3, 4), new Point(4, 5)); @@ -1424,7 +1426,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoCircleCorrectly() { + void shouldWriteEntityWithGeoCircleCorrectly() { ClassWithGeoCircle object = new ClassWithGeoCircle(); Circle circle = new Circle(new Point(1, 2), 3); @@ -1442,7 +1444,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldReadEntityWithGeoCircleCorrectly() { + void shouldReadEntityWithGeoCircleCorrectly() { ClassWithGeoCircle object = new ClassWithGeoCircle(); object.circle = new Circle(new Point(1, 2), 3); @@ -1457,7 +1459,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoSphereCorrectly() { + void shouldWriteEntityWithGeoSphereCorrectly() { ClassWithGeoSphere object = new ClassWithGeoSphere(); Sphere sphere = new Sphere(new Point(1, 2), 3); @@ -1475,7 +1477,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoSphereWithMetricDistanceCorrectly() { + void shouldWriteEntityWithGeoSphereWithMetricDistanceCorrectly() { ClassWithGeoSphere object = new ClassWithGeoSphere(); Sphere sphere = new Sphere(new Point(1, 2), new Distance(3, Metrics.KILOMETERS)); @@ -1493,7 +1495,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldReadEntityWithGeoSphereCorrectly() { + void shouldReadEntityWithGeoSphereCorrectly() { ClassWithGeoSphere object = new ClassWithGeoSphere(); object.sphere = new Sphere(new Point(1, 2), 3); @@ -1508,7 +1510,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - public void shouldWriteEntityWithGeoShapeCorrectly() { + void shouldWriteEntityWithGeoShapeCorrectly() { ClassWithGeoShape object = new ClassWithGeoShape(); Sphere sphere = new Sphere(new Point(1, 2), 3); @@ -1526,8 +1528,8 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-858 - @Ignore - public void shouldReadEntityWithGeoShapeCorrectly() { + @Disabled + void shouldReadEntityWithGeoShapeCorrectly() { ClassWithGeoShape object = new ClassWithGeoShape(); Sphere sphere = new Sphere(new Point(1, 2), 3); @@ -1543,7 +1545,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-976 - public void shouldIgnoreTextScorePropertyWhenWriting() { + void shouldIgnoreTextScorePropertyWhenWriting() { ClassWithTextScoreProperty source = new ClassWithTextScoreProperty(); source.score = Float.MAX_VALUE; @@ -1555,7 +1557,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-976 - public void shouldIncludeTextScorePropertyWhenReading() { + void shouldIncludeTextScorePropertyWhenReading() { ClassWithTextScoreProperty entity = converter.read(ClassWithTextScoreProperty.class, new org.bson.Document("score", 5F)); @@ -1563,7 +1565,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1001, DATAMONGO-1509 - public void shouldWriteCglibProxiedClassTypeInformationCorrectly() { + void shouldWriteCglibProxiedClassTypeInformationCorrectly() { ProxyFactory factory = new ProxyFactory(); factory.setTargetClass(GenericType.class); @@ -1577,7 +1579,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1001 - public void shouldUseTargetObjectOfLazyLoadingProxyWhenWriting() { + void shouldUseTargetObjectOfLazyLoadingProxyWhenWriting() { LazyLoadingProxy mock = mock(LazyLoadingProxy.class); @@ -1588,7 +1590,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1034 - public void rejectsBasicDbListToBeConvertedIntoComplexType() { + void rejectsBasicDbListToBeConvertedIntoComplexType() { List inner = new ArrayList(); inner.add("key"); @@ -1604,7 +1606,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1058 - public void readShouldRespectExplicitFieldNameForDbRef() { + void readShouldRespectExplicitFieldNameForDbRef() { org.bson.Document source = new org.bson.Document(); source.append("explict-name-for-db-ref", new DBRef("foo", "1")); @@ -1616,7 +1618,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1050 - public void writeShouldUseExplicitFieldnameForIdPropertyWhenAnnotated() { + void writeShouldUseExplicitFieldnameForIdPropertyWhenAnnotated() { RootForClassWithExplicitlyRenamedIdField source = new RootForClassWithExplicitlyRenamedIdField(); source.id = "rootId"; @@ -1631,7 +1633,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1050 - public void readShouldUseExplicitFieldnameForIdPropertyWhenAnnotated() { + void readShouldUseExplicitFieldnameForIdPropertyWhenAnnotated() { org.bson.Document source = new org.bson.Document().append("_id", "rootId").append("nested", new org.bson.Document("id", "nestedId")); @@ -1645,7 +1647,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1050 - public void namedIdFieldShouldExtractValueFromUnderscoreIdField() { + void namedIdFieldShouldExtractValueFromUnderscoreIdField() { org.bson.Document document = new org.bson.Document().append("_id", "A").append("id", "B"); @@ -1655,7 +1657,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1050 - public void explicitlyRenamedIfFieldShouldExtractValueFromIdField() { + void explicitlyRenamedIfFieldShouldExtractValueFromIdField() { org.bson.Document document = new org.bson.Document().append("_id", "A").append("id", "B"); @@ -1666,7 +1668,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1050 - public void annotatedIdFieldShouldExtractValueFromUnderscoreIdField() { + void annotatedIdFieldShouldExtractValueFromUnderscoreIdField() { org.bson.Document document = new org.bson.Document().append("_id", "A").append("id", "B"); @@ -1676,7 +1678,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1102 - public void convertsJava8DateTimeTypesToDateAndBack() { + void convertsJava8DateTimeTypesToDateAndBack() { TypeWithLocalDateTime source = new TypeWithLocalDateTime(); LocalDateTime reference = source.date; @@ -1690,7 +1692,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1128 - public void writesOptionalsCorrectly() { + void writesOptionalsCorrectly() { TypeWithOptional type = new TypeWithOptional(); type.localDateTime = Optional.of(LocalDateTime.now()); @@ -1706,8 +1708,8 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1128 - @Ignore("Broken by DATAMONGO-1992 - In fact, storing Optional fields seems an anti-pattern.") - public void readsOptionalsCorrectly() { + @Disabled("Broken by DATAMONGO-1992 - In fact, storing Optional fields seems an anti-pattern.") + void readsOptionalsCorrectly() { LocalDateTime now = LocalDateTime.now(); Date reference = Date.from(now.atZone(systemDefault()).toInstant()); @@ -1722,7 +1724,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1118 - public void convertsMapKeyUsingCustomConverterForAndBackwards() { + void convertsMapKeyUsingCustomConverterForAndBackwards() { MappingMongoConverter converter = new MappingMongoConverter(resolver, mappingContext); converter.setCustomConversions( @@ -1740,7 +1742,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1118 - public void writesMapKeyUsingCustomConverter() { + void writesMapKeyUsingCustomConverter() { MappingMongoConverter converter = new MappingMongoConverter(resolver, mappingContext); converter.setCustomConversions(new MongoCustomConversions(Arrays.asList(new FooBarEnumToStringConverter()))); @@ -1761,7 +1763,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1118 - public void readsMapKeyUsingCustomConverter() { + void readsMapKeyUsingCustomConverter() { MappingMongoConverter converter = new MappingMongoConverter(resolver, mappingContext); converter.setCustomConversions(new MongoCustomConversions(Arrays.asList(new StringToFooNumConverter()))); @@ -1775,12 +1777,12 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1471 - public void readsDocumentWithPrimitiveIdButNoValue() { + void readsDocumentWithPrimitiveIdButNoValue() { assertThat(converter.read(ClassWithIntId.class, new org.bson.Document())).isNotNull(); } @Test // DATAMONGO-1497 - public void readsPropertyFromNestedFieldCorrectly() { + void readsPropertyFromNestedFieldCorrectly() { org.bson.Document source = new org.bson.Document("nested", new org.bson.Document("sample", "value")); TypeWithPropertyInNestedField result = converter.read(TypeWithPropertyInNestedField.class, source); @@ -1789,7 +1791,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1525 - public void readsEmptyEnumSet() { + void readsEmptyEnumSet() { org.bson.Document source = new org.bson.Document("enumSet", Collections.emptyList()); @@ -1797,7 +1799,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1757 - public void failsReadingDocumentIntoSimpleType() { + void failsReadingDocumentIntoSimpleType() { org.bson.Document nested = new org.bson.Document("key", "value"); org.bson.Document source = new org.bson.Document("map", new org.bson.Document("key", nested)); @@ -1807,7 +1809,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1831 - public void shouldConvertArrayInConstructorCorrectly() { + void shouldConvertArrayInConstructorCorrectly() { org.bson.Document source = new org.bson.Document("array", Collections.emptyList()); @@ -1815,7 +1817,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1831 - public void shouldConvertNullForArrayInConstructorCorrectly() { + void shouldConvertNullForArrayInConstructorCorrectly() { org.bson.Document source = new org.bson.Document(); @@ -1823,7 +1825,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1898 - public void writesInterfaceBackedEnumsToSimpleNameByDefault() { + void writesInterfaceBackedEnumsToSimpleNameByDefault() { org.bson.Document document = new org.bson.Document(); @@ -1839,7 +1841,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1898 - public void rejectsConversionFromStringToEnumBackedInterface() { + void rejectsConversionFromStringToEnumBackedInterface() { org.bson.Document document = new org.bson.Document("property", InterfacedEnum.INSTANCE.name()); @@ -1848,7 +1850,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1898 - public void readsInterfacedEnumIfConverterIsRegistered() { + void readsInterfacedEnumIfConverterIsRegistered() { org.bson.Document document = new org.bson.Document("property", InterfacedEnum.INSTANCE.name()); @@ -1869,7 +1871,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1904 - public void readsNestedArraysCorrectly() { + void readsNestedArraysCorrectly() { List>> floats = Arrays.asList(Arrays.asList(Arrays.asList(1.0f, 2.0f))); @@ -1882,7 +1884,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1992 - public void readsImmutableObjectCorrectly() { + void readsImmutableObjectCorrectly() { org.bson.Document document = new org.bson.Document("_id", "foo"); @@ -1893,7 +1895,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2026 - public void readsImmutableObjectWithConstructorIdPropertyCorrectly() { + void readsImmutableObjectWithConstructorIdPropertyCorrectly() { org.bson.Document source = new org.bson.Document("_id", "spring").append("value", "data"); @@ -1905,7 +1907,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2011 - public void readsNestedListsToObjectCorrectly() { + void readsNestedListsToObjectCorrectly() { List values = Arrays.asList("ONE", "TWO"); org.bson.Document source = new org.bson.Document("value", Collections.singletonList(values)); @@ -1914,7 +1916,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2043 - public void omitsTypeHintWhenWritingSimpleTypes() { + void omitsTypeHintWhenWritingSimpleTypes() { org.bson.Document target = new org.bson.Document(); converter.write(new org.bson.Document("value", "FitzChivalry"), target); @@ -1923,28 +1925,28 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1798 - public void convertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsObjectId() { + void convertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsObjectId() { ObjectId source = new ObjectId(); assertThat(converter.convertId(source.toHexString(), ObjectId.class)).isEqualTo(source); } @Test // DATAMONGO-1798 - public void donNotConvertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsString() { + void donNotConvertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsString() { ObjectId source = new ObjectId(); assertThat(converter.convertId(source.toHexString(), String.class)).isEqualTo(source.toHexString()); } @Test // DATAMONGO-1798 - public void donNotConvertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsObject() { + void donNotConvertStringIdThatIsAnObjectIdHexToObjectIdIfTargetIsObject() { ObjectId source = new ObjectId(); assertThat(converter.convertId(source.toHexString(), Object.class)).isEqualTo(source.toHexString()); } @Test // DATAMONGO-2135 - public void addsEqualObjectsToCollection() { + void addsEqualObjectsToCollection() { org.bson.Document itemDocument = new org.bson.Document("itemKey", "123"); org.bson.Document orderDocument = new org.bson.Document("items", @@ -1956,7 +1958,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1849 - public void mapsValueToExplicitTargetType() { + void mapsValueToExplicitTargetType() { WithExplicitTargetTypes source = new WithExplicitTargetTypes(); source.script = "if (a > b) a else b"; @@ -1968,7 +1970,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void readsScriptAsStringWhenAnnotatedWithFieldTargetType() { + void readsScriptAsStringWhenAnnotatedWithFieldTargetType() { String reference = "if (a > b) a else b"; WithExplicitTargetTypes target = converter.read(WithExplicitTargetTypes.class, @@ -1978,7 +1980,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1849 - public void mapsCollectionValueToExplicitTargetType() { + void mapsCollectionValueToExplicitTargetType() { String script = "if (a > b) a else b"; WithExplicitTargetTypes source = new WithExplicitTargetTypes(); @@ -1991,7 +1993,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-1849 - public void mapsBigDecimalToDecimal128WhenAnnotatedWithFieldTargetType() { + void mapsBigDecimalToDecimal128WhenAnnotatedWithFieldTargetType() { WithExplicitTargetTypes source = new WithExplicitTargetTypes(); source.bigDecimal = BigDecimal.valueOf(3.14159D); @@ -2003,7 +2005,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void mapsDateToLongWhenAnnotatedWithFieldTargetType() { + void mapsDateToLongWhenAnnotatedWithFieldTargetType() { WithExplicitTargetTypes source = new WithExplicitTargetTypes(); source.dateAsLong = new Date(); @@ -2015,7 +2017,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void readsLongAsDateWhenAnnotatedWithFieldTargetType() { + void readsLongAsDateWhenAnnotatedWithFieldTargetType() { Date reference = new Date(); WithExplicitTargetTypes target = converter.read(WithExplicitTargetTypes.class, @@ -2025,7 +2027,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void mapsLongToDateWhenAnnotatedWithFieldTargetType() { + void mapsLongToDateWhenAnnotatedWithFieldTargetType() { Date date = new Date(); WithExplicitTargetTypes source = new WithExplicitTargetTypes(); @@ -2038,7 +2040,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void readsDateAsLongWhenAnnotatedWithFieldTargetType() { + void readsDateAsLongWhenAnnotatedWithFieldTargetType() { Date reference = new Date(); WithExplicitTargetTypes target = converter.read(WithExplicitTargetTypes.class, @@ -2048,7 +2050,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void mapsStringAsBooleanWhenAnnotatedWithFieldTargetType() { + void mapsStringAsBooleanWhenAnnotatedWithFieldTargetType() { WithExplicitTargetTypes source = new WithExplicitTargetTypes(); source.stringAsBoolean = "true"; @@ -2060,7 +2062,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void readsBooleanAsStringWhenAnnotatedWithFieldTargetType() { + void readsBooleanAsStringWhenAnnotatedWithFieldTargetType() { WithExplicitTargetTypes target = converter.read(WithExplicitTargetTypes.class, new org.bson.Document("stringAsBoolean", true)); @@ -2069,7 +2071,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void mapsDateAsObjectIdWhenAnnotatedWithFieldTargetType() { + void mapsDateAsObjectIdWhenAnnotatedWithFieldTargetType() { WithExplicitTargetTypes source = new WithExplicitTargetTypes(); source.dateAsObjectId = new Date(); @@ -2083,7 +2085,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2328 - public void readsObjectIdAsDateWhenAnnotatedWithFieldTargetType() { + void readsObjectIdAsDateWhenAnnotatedWithFieldTargetType() { ObjectId reference = new ObjectId(); WithExplicitTargetTypes target = converter.read(WithExplicitTargetTypes.class, @@ -2093,7 +2095,7 @@ public class MappingMongoConverterUnitTests { } @Test // DATAMONGO-2410 - public void shouldAllowReadingBackDbObject() { + void shouldAllowReadingBackDbObject() { assertThat(converter.read(BasicDBObject.class, new org.bson.Document("property", "value"))) .isEqualTo(new BasicDBObject("property", "value")); @@ -2150,7 +2152,7 @@ public class MappingMongoConverterUnitTests { Set
addresses; - public Person() { + Person() { } @@ -2207,7 +2209,7 @@ public class MappingMongoConverterUnitTests { String valueType; T value; - public A(T value) { + A(T value) { this.valueType = value.getClass().getName(); this.value = value; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersUnitTests.java index bd1723b8b..0f6096990 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersUnitTests.java @@ -28,7 +28,8 @@ import java.util.concurrent.atomic.AtomicLong; import org.assertj.core.data.TemporalUnitLessThanOffset; import org.bson.BsonTimestamp; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; + import org.springframework.core.convert.support.ConfigurableConversionService; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.data.geo.Box; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoCustomConversionsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoCustomConversionsUnitTests.java index 0d0f2cd49..85afdb36f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoCustomConversionsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoCustomConversionsUnitTests.java @@ -21,7 +21,8 @@ import java.time.ZonedDateTime; import java.util.Collections; import java.util.Date; -import org.junit.Test; +import org.junit.jupiter.api.Test; + import org.springframework.core.convert.converter.Converter; /** @@ -29,10 +30,10 @@ import org.springframework.core.convert.converter.Converter; * * @author Christoph Strobl */ -public class MongoCustomConversionsUnitTests { +class MongoCustomConversionsUnitTests { @Test // DATAMONGO-2349 - public void nonAnnotatedConverterForJavaTimeTypeShouldOnlyBeRegisteredAsReadingConverter() { + void nonAnnotatedConverterForJavaTimeTypeShouldOnlyBeRegisteredAsReadingConverter() { MongoCustomConversions conversions = new MongoCustomConversions( Collections.singletonList(new DateToZonedDateTimeConverter())); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoExampleMapperUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoExampleMapperUnitTests.java index 30ab0ab09..7c069a5b8 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoExampleMapperUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoExampleMapperUnitTests.java @@ -27,11 +27,11 @@ import java.util.Set; import java.util.regex.Pattern; import org.bson.conversions.Bson; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.annotation.Id; import org.springframework.data.domain.Example; @@ -52,7 +52,7 @@ import org.springframework.data.util.TypeInformation; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MongoExampleMapperUnitTests { MongoExampleMapper mapper; @@ -61,7 +61,7 @@ public class MongoExampleMapperUnitTests { @Mock MongoDatabaseFactory factory; - @Before + @BeforeEach public void setUp() { this.context = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoJsonSchemaMapperUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoJsonSchemaMapperUnitTests.java index 9f9b385dd..a973558bc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoJsonSchemaMapperUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoJsonSchemaMapperUnitTests.java @@ -23,8 +23,8 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; @@ -105,7 +105,7 @@ public class MongoJsonSchemaMapperUnitTests { " }" + // " } }"; - @Before + @BeforeEach public void setUp() { mapper = new MongoJsonSchemaMapper(new MappingMongoConverter(mock(DbRefResolver.class), new MongoMappingContext())); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/NamedMongoScriptConvertsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/NamedMongoScriptConvertsUnitTests.java index cce199506..15270484c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/NamedMongoScriptConvertsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/NamedMongoScriptConvertsUnitTests.java @@ -19,7 +19,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import org.bson.Document; import org.bson.types.Code; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/ObjectPathUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/ObjectPathUnitTests.java index f3130518c..145c008ef 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/ObjectPathUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/ObjectPathUnitTests.java @@ -18,8 +18,8 @@ package org.springframework.data.mongodb.core.convert; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; @@ -36,7 +36,7 @@ public class ObjectPathUnitTests { MongoPersistentEntity two; MongoPersistentEntity three; - @Before + @BeforeEach public void setUp() { one = new BasicMongoPersistentEntity<>(ClassTypeInformation.from(EntityOne.class)); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/TermToStringConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/TermToStringConverterUnitTests.java index 9fa5e84de..e2823a4df 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/TermToStringConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/TermToStringConverterUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.convert; import static org.mockito.Mockito.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.convert.MongoConverters.TermToStringConverter; import org.springframework.data.mongodb.core.query.Term; import org.springframework.data.mongodb.core.query.Term.Type; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/UpdateMapperUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/UpdateMapperUnitTests.java index 01eddc026..20a2c231e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/UpdateMapperUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/UpdateMapperUnitTests.java @@ -31,12 +31,12 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.core.convert.converter.Converter; import org.springframework.data.annotation.Id; @@ -66,19 +66,19 @@ import com.mongodb.DBRef; * @author Mark Paluch * @author Pavel Vodrazka */ -@RunWith(MockitoJUnitRunner.class) -public class UpdateMapperUnitTests { +@ExtendWith(MockitoExtension.class) +class UpdateMapperUnitTests { @Mock MongoDatabaseFactory factory; - MappingMongoConverter converter; - MongoMappingContext context; - UpdateMapper mapper; + private MappingMongoConverter converter; + private MongoMappingContext context; + private UpdateMapper mapper; private Converter writingConverterSpy; - @Before + @BeforeEach @SuppressWarnings("unchecked") - public void setUp() { + void setUp() { this.writingConverterSpy = Mockito.spy(new NestedEntityWriteConverter()); CustomConversions conversions = new MongoCustomConversions(Collections.singletonList(writingConverterSpy)); @@ -95,7 +95,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-721 - public void updateMapperRetainsTypeInformationForCollectionField() { + void updateMapperRetainsTypeInformationForCollectionField() { Update update = new Update().push("list", new ConcreteChildClass("2", "BAR")); @@ -109,7 +109,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-807 - public void updateMapperShouldRetainTypeInformationForNestedEntities() { + void updateMapperShouldRetainTypeInformationForNestedEntities() { Update update = Update.update("model", new ModelImpl(1)); UpdateMapper mapper = new UpdateMapper(converter); @@ -123,7 +123,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-807 - public void updateMapperShouldNotPersistTypeInformationForKnownSimpleTypes() { + void updateMapperShouldNotPersistTypeInformationForKnownSimpleTypes() { Update update = Update.update("model.value", 1); UpdateMapper mapper = new UpdateMapper(converter); @@ -136,7 +136,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-807 - public void updateMapperShouldNotPersistTypeInformationForNullValues() { + void updateMapperShouldNotPersistTypeInformationForNullValues() { Update update = Update.update("model", null); UpdateMapper mapper = new UpdateMapper(converter); @@ -149,7 +149,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-407 - public void updateMapperShouldRetainTypeInformationForNestedCollectionElements() { + void updateMapperShouldRetainTypeInformationForNestedCollectionElements() { Update update = Update.update("list.$", new ConcreteChildClass("42", "bubu")); @@ -163,7 +163,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-407 - public void updateMapperShouldSupportNestedCollectionElementUpdates() { + void updateMapperShouldSupportNestedCollectionElementUpdates() { Update update = Update.update("list.$.value", "foo").set("list.$.otherValue", "bar"); @@ -177,7 +177,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-407 - public void updateMapperShouldWriteTypeInformationForComplexNestedCollectionElementUpdates() { + void updateMapperShouldWriteTypeInformationForComplexNestedCollectionElementUpdates() { Update update = Update.update("list.$.value", "foo").set("list.$.someObject", new ConcreteChildClass("42", "bubu")); @@ -195,7 +195,7 @@ public class UpdateMapperUnitTests { @SuppressWarnings({ "unchecked", "rawtypes" }) @Test // DATAMONGO-812 - public void updateMapperShouldConvertPushCorrectlyWhenCalledWithEachUsingSimpleTypes() { + void updateMapperShouldConvertPushCorrectlyWhenCalledWithEachUsingSimpleTypes() { Update update = new Update().push("values").each("spring", "data", "mongodb"); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), context.getPersistentEntity(Model.class)); @@ -211,7 +211,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-812 - public void updateMapperShouldConvertPushWhithoutAddingClassInformationWhenUsedWithEvery() { + void updateMapperShouldConvertPushWhithoutAddingClassInformationWhenUsedWithEvery() { Update update = new Update().push("values").each("spring", "data", "mongodb"); @@ -225,7 +225,7 @@ public class UpdateMapperUnitTests { @SuppressWarnings({ "unchecked", "rawtypes" }) @Test // DATAMONGO-812 - public void updateMapperShouldConvertPushCorrectlyWhenCalledWithEachUsingCustomTypes() { + void updateMapperShouldConvertPushCorrectlyWhenCalledWithEachUsingCustomTypes() { Update update = new Update().push("models").each(new ListModel("spring", "data", "mongodb")); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -240,7 +240,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-812 - public void updateMapperShouldRetainClassInformationForPushCorrectlyWhenCalledWithEachUsingCustomTypes() { + void updateMapperShouldRetainClassInformationForPushCorrectlyWhenCalledWithEachUsingCustomTypes() { Update update = new Update().push("models").each(new ListModel("spring", "data", "mongodb")); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -254,7 +254,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-812 - public void testUpdateShouldAllowMultiplePushEachForDifferentFields() { + void testUpdateShouldAllowMultiplePushEachForDifferentFields() { Update update = new Update().push("category").each("spring", "data").push("type").each("mongodb"); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), context.getPersistentEntity(Object.class)); @@ -265,7 +265,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-943 - public void updatePushEachAtPositionWorksCorrectlyWhenGivenPositiveIndexParameter() { + void updatePushEachAtPositionWorksCorrectlyWhenGivenPositiveIndexParameter() { Update update = new Update().push("key").atPosition(2).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -280,7 +280,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-943, DATAMONGO-2055 - public void updatePushEachAtNegativePositionWorksCorrectly() { + void updatePushEachAtNegativePositionWorksCorrectly() { Update update = new Update().push("key").atPosition(-2).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -294,7 +294,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-943 - public void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionFirst() { + void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionFirst() { Update update = new Update().push("key").atPosition(Position.FIRST).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -309,7 +309,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-943 - public void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionLast() { + void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionLast() { Update update = new Update().push("key").atPosition(Position.LAST).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -323,7 +323,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-943 - public void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionNull() { + void updatePushEachAtPositionWorksCorrectlyWhenGivenPositionNull() { Update update = new Update().push("key").atPosition(null).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -337,7 +337,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-832 - public void updatePushEachWithSliceShouldRenderCorrectly() { + void updatePushEachWithSliceShouldRenderCorrectly() { Update update = new Update().push("key").slice(5).each(Arrays.asList("Arya", "Arry", "Weasel")); @@ -351,7 +351,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-832 - public void updatePushEachWithSliceShouldRenderWhenUsingMultiplePushCorrectly() { + void updatePushEachWithSliceShouldRenderWhenUsingMultiplePushCorrectly() { Update update = new Update().push("key").slice(5).each(Arrays.asList("Arya", "Arry", "Weasel")).push("key-2") .slice(-2).each("The Beggar King", "Viserys III Targaryen"); @@ -371,7 +371,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1141 - public void updatePushEachWithValueSortShouldRenderCorrectly() { + void updatePushEachWithValueSortShouldRenderCorrectly() { Update update = new Update().push("scores").sort(Direction.DESC).each(42, 23, 68); @@ -387,7 +387,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1141 - public void updatePushEachWithDocumentSortShouldRenderCorrectly() { + void updatePushEachWithDocumentSortShouldRenderCorrectly() { Update update = new Update().push("list") .sort(Sort.by(new Order(Direction.ASC, "value"), new Order(Direction.ASC, "field"))) @@ -405,7 +405,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1141 - public void updatePushEachWithSortShouldRenderCorrectlyWhenUsingMultiplePush() { + void updatePushEachWithSortShouldRenderCorrectlyWhenUsingMultiplePush() { Update update = new Update().push("authors").sort(Direction.ASC).each("Harry").push("chapters") .sort(Sort.by(Direction.ASC, "order")).each(Collections.emptyList()); @@ -427,7 +427,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-410 - public void testUpdateMapperShouldConsiderCustomWriteTarget() { + void testUpdateMapperShouldConsiderCustomWriteTarget() { List someValues = Arrays.asList(new NestedEntity("spring"), new NestedEntity("data"), new NestedEntity("mongodb")); @@ -440,7 +440,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-404 - public void createsDbRefForEntityIdOnPulls() { + void createsDbRefForEntityIdOnPulls() { Update update = new Update().pull("dbRefAnnotatedList.id", "2"); @@ -452,7 +452,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-404 - public void createsDbRefForEntityOnPulls() { + void createsDbRefForEntityOnPulls() { Entity entity = new Entity(); entity.id = "5"; @@ -465,15 +465,16 @@ public class UpdateMapperUnitTests { assertThat(pullClause.get("dbRefAnnotatedList")).isEqualTo(new DBRef("entity", entity.id)); } - @Test(expected = MappingException.class) // DATAMONGO-404 - public void rejectsInvalidFieldReferenceForDbRef() { + @Test // DATAMONGO-404 + void rejectsInvalidFieldReferenceForDbRef() { Update update = new Update().pull("dbRefAnnotatedList.name", "NAME"); - mapper.getMappedObject(update.getUpdateObject(), context.getPersistentEntity(DocumentWithDBRefCollection.class)); + assertThatThrownBy(() -> mapper.getMappedObject(update.getUpdateObject(), + context.getPersistentEntity(DocumentWithDBRefCollection.class))).isInstanceOf(MappingException.class); } @Test // DATAMONGO-404 - public void rendersNestedDbRefCorrectly() { + void rendersNestedDbRefCorrectly() { Update update = new Update().pull("nested.dbRefAnnotatedList.id", "2"); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -484,7 +485,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-468 - public void rendersUpdateOfDbRefPropertyWithDomainObjectCorrectly() { + void rendersUpdateOfDbRefPropertyWithDomainObjectCorrectly() { Entity entity = new Entity(); entity.id = "5"; @@ -498,7 +499,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-862 - public void rendersUpdateAndPreservesKeyForPathsNotPointingToProperty() { + void rendersUpdateAndPreservesKeyForPathsNotPointingToProperty() { Update update = new Update().set("listOfInterface.$.value", "expected-value"); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -509,7 +510,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-863 - public void doesNotConvertRawDocuments() { + void doesNotConvertRawDocuments() { Update update = new Update(); update.pull("options", @@ -528,7 +529,7 @@ public class UpdateMapperUnitTests { @SuppressWarnings({ "unchecked", "rawtypes" }) @Test // DATAMONG0-471 - public void testUpdateShouldApply$addToSetCorrectlyWhenUsedWith$each() { + void testUpdateShouldApply$addToSetCorrectlyWhenUsedWith$each() { Update update = new Update().addToSet("values").each("spring", "data", "mongodb"); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -542,7 +543,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONG0-471 - public void testUpdateShouldRetainClassTypeInformationWhenUsing$addToSetWith$eachForCustomTypes() { + void testUpdateShouldRetainClassTypeInformationWhenUsing$addToSetWith$eachForCustomTypes() { Update update = new Update().addToSet("models").each(new ModelImpl(2014), new ModelImpl(1), new ModelImpl(28)); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -559,7 +560,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-897 - public void updateOnDbrefPropertyOfInterfaceTypeWithoutExplicitGetterForIdShouldBeMappedCorrectly() { + void updateOnDbrefPropertyOfInterfaceTypeWithoutExplicitGetterForIdShouldBeMappedCorrectly() { Update update = new Update().set("referencedDocument", new InterfaceDocumentDefinitionImpl("1", "Foo")); Document mappedObject = mapper.getMappedObject(update.getUpdateObject(), @@ -573,7 +574,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-847 - public void updateMapperConvertsNestedQueryCorrectly() { + void updateMapperConvertsNestedQueryCorrectly() { Update update = new Update().pull("list", Query.query(Criteria.where("value").in("foo", "bar"))); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -588,7 +589,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-847 - public void updateMapperConvertsPullWithNestedQuerfyOnDBRefCorrectly() { + void updateMapperConvertsPullWithNestedQuerfyOnDBRefCorrectly() { Update update = new Update().pull("dbRefAnnotatedList", Query.query(Criteria.where("id").is("1"))); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -601,7 +602,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1077 - public void shouldNotRemovePositionalParameter() { + void shouldNotRemovePositionalParameter() { Update update = new Update(); update.unset("dbRefAnnotatedList.$"); @@ -615,7 +616,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1210 - public void mappingEachOperatorShouldNotAddTypeInfoForNonInterfaceNonAbstractTypes() { + void mappingEachOperatorShouldNotAddTypeInfoForNonInterfaceNonAbstractTypes() { Update update = new Update().addToSet("nestedDocs").each(new NestedDocument("nested-1"), new NestedDocument("nested-2")); @@ -628,7 +629,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1210 - public void mappingEachOperatorShouldAddTypeHintForInterfaceTypes() { + void mappingEachOperatorShouldAddTypeHintForInterfaceTypes() { Update update = new Update().addToSet("models").each(new ModelImpl(1), new ModelImpl(2)); @@ -640,7 +641,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1210 - public void mappingEachOperatorShouldAddTypeHintForAbstractTypes() { + void mappingEachOperatorShouldAddTypeHintForAbstractTypes() { Update update = new Update().addToSet("list").each(new ConcreteChildClass("foo", "one"), new ConcreteChildClass("bar", "two")); @@ -653,7 +654,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1210 - public void mappingShouldOnlyRemoveTypeHintFromTopLevelTypeInCaseOfNestedDocument() { + void mappingShouldOnlyRemoveTypeHintFromTopLevelTypeInCaseOfNestedDocument() { WrapperAroundInterfaceType wait = new WrapperAroundInterfaceType(); wait.interfaceType = new ModelImpl(1); @@ -670,7 +671,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1210 - public void mappingShouldRetainTypeInformationOfNestedListWhenUpdatingConcreteyParentType() { + void mappingShouldRetainTypeInformationOfNestedListWhenUpdatingConcreteyParentType() { ListModelWrapper lmw = new ListModelWrapper(); lmw.models = Collections.singletonList(new ModelImpl(1)); @@ -685,7 +686,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1809 - public void pathShouldIdentifyPositionalParameterWithMoreThanOneDigit() { + void pathShouldIdentifyPositionalParameterWithMoreThanOneDigit() { Document at2digitPosition = mapper.getMappedObject(new Update() .addToSet("concreteInnerList.10.concreteTypeList", new SomeInterfaceImpl("szeth")).getUpdateObject(), @@ -702,7 +703,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1236 - public void mappingShouldRetainTypeInformationForObjectValues() { + void mappingShouldRetainTypeInformationForObjectValues() { Update update = new Update().set("value", new NestedDocument("kaladin")); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -713,7 +714,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1236 - public void mappingShouldNotRetainTypeInformationForConcreteValues() { + void mappingShouldNotRetainTypeInformationForConcreteValues() { Update update = new Update().set("concreteValue", new NestedDocument("shallan")); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -724,7 +725,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1236 - public void mappingShouldRetainTypeInformationForObjectValuesWithAlias() { + void mappingShouldRetainTypeInformationForObjectValuesWithAlias() { Update update = new Update().set("value", new NestedDocument("adolin")); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -735,7 +736,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1236 - public void mappingShouldRetrainTypeInformationWhenValueTypeOfMapDoesNotMatchItsDeclaration() { + void mappingShouldRetrainTypeInformationWhenValueTypeOfMapDoesNotMatchItsDeclaration() { Map map = Collections.singletonMap("szeth", new NestedDocument("son-son-vallano")); @@ -748,7 +749,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1236 - public void mappingShouldNotContainTypeInformationWhenValueTypeOfMapMatchesDeclaration() { + void mappingShouldNotContainTypeInformationWhenValueTypeOfMapMatchesDeclaration() { Map map = Collections.singletonMap("jasnah", new NestedDocument("kholin")); @@ -762,7 +763,7 @@ public class UpdateMapperUnitTests { @Test // DATAMONGO-1250 @SuppressWarnings("unchecked") - public void mapsUpdateWithBothReadingAndWritingConverterRegistered() { + void mapsUpdateWithBothReadingAndWritingConverterRegistered() { CustomConversions conversions = new MongoCustomConversions(Arrays.asList( ClassWithEnum.AllocationToStringConverter.INSTANCE, ClassWithEnum.StringToAllocationConverter.INSTANCE)); @@ -785,7 +786,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1251 - public void mapsNullValueCorrectlyForSimpleTypes() { + void mapsNullValueCorrectlyForSimpleTypes() { Update update = new Update().set("value", null); @@ -797,7 +798,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1251 - public void mapsNullValueCorrectlyForJava8Date() { + void mapsNullValueCorrectlyForJava8Date() { Update update = new Update().set("date", null); @@ -809,7 +810,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1251 - public void mapsNullValueCorrectlyForCollectionTypes() { + void mapsNullValueCorrectlyForCollectionTypes() { Update update = new Update().set("values", null); @@ -821,7 +822,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1251 - public void mapsNullValueCorrectlyForPropertyOfNestedDocument() { + void mapsNullValueCorrectlyForPropertyOfNestedDocument() { Update update = new Update().set("concreteValue.name", null); @@ -834,7 +835,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1288 - public void mapsAtomicIntegerToIntegerCorrectly() { + void mapsAtomicIntegerToIntegerCorrectly() { Update update = new Update().set("intValue", new AtomicInteger(10)); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -845,7 +846,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1288 - public void mapsAtomicIntegerToPrimitiveIntegerCorrectly() { + void mapsAtomicIntegerToPrimitiveIntegerCorrectly() { Update update = new Update().set("primIntValue", new AtomicInteger(10)); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -856,7 +857,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1404 - public void mapsMinCorrectly() { + void mapsMinCorrectly() { Update update = new Update().min("minfield", 10); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -866,7 +867,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1404 - public void mapsMaxCorrectly() { + void mapsMaxCorrectly() { Update update = new Update().max("maxfield", 999); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -877,7 +878,7 @@ public class UpdateMapperUnitTests { @Test // DATAMONGO-1423, DATAMONGO-2155 @SuppressWarnings("unchecked") - public void mappingShouldConsiderCustomConvertersForEnumMapKeys() { + void mappingShouldConsiderCustomConvertersForEnumMapKeys() { CustomConversions conversions = new MongoCustomConversions(Arrays.asList( ClassWithEnum.AllocationToStringConverter.INSTANCE, ClassWithEnum.StringToAllocationConverter.INSTANCE)); @@ -904,7 +905,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1176 - public void mappingShouldPrepareUpdateObjectForMixedOperatorsAndFields() { + void mappingShouldPrepareUpdateObjectForMixedOperatorsAndFields() { Document document = new Document("key", "value").append("$set", new Document("a", "b").append("x", "y")); @@ -915,7 +916,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1176 - public void mappingShouldReturnReplaceObject() { + void mappingShouldReturnReplaceObject() { Document document = new Document("key", "value").append("a", "b").append("x", "y"); @@ -928,7 +929,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1176 - public void mappingShouldReturnUpdateObject() { + void mappingShouldReturnUpdateObject() { Document document = new Document("$push", new Document("x", "y")).append("$set", new Document("a", "b")); @@ -940,7 +941,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1486, DATAMONGO-2155 - public void mappingShouldConvertMapKeysToString() { + void mappingShouldConvertMapKeysToString() { Update update = new Update().set("map", Collections.singletonMap(25, "#StarTrek50")); Document mappedUpdate = mapper.getMappedObject(update.getUpdateObject(), @@ -956,7 +957,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1772 - public void mappingShouldAddTypeKeyInListOfInterfaceTypeContainedInConcreteObjectCorrectly() { + void mappingShouldAddTypeKeyInListOfInterfaceTypeContainedInConcreteObjectCorrectly() { ConcreteInner inner = new ConcreteInner(); inner.interfaceTypeList = Collections.singletonList(new SomeInterfaceImpl()); @@ -970,7 +971,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-1772 - public void mappingShouldAddTypeKeyInListOfAbstractTypeContainedInConcreteObjectCorrectly() { + void mappingShouldAddTypeKeyInListOfAbstractTypeContainedInConcreteObjectCorrectly() { ConcreteInner inner = new ConcreteInner(); inner.abstractTypeList = Collections.singletonList(new SomeInterfaceImpl()); @@ -984,7 +985,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2155 - public void shouldPreserveFieldNamesOfMapProperties() { + void shouldPreserveFieldNamesOfMapProperties() { Update update = Update .fromDocument(new Document("concreteMap", new Document("Name", new Document("name", "fooo")))); @@ -996,7 +997,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2155 - public void shouldPreserveExplicitFieldNamesInsideMapProperties() { + void shouldPreserveExplicitFieldNamesInsideMapProperties() { Update update = Update .fromDocument(new Document("map", new Document("Value", new Document("renamed-value", "fooo")))); @@ -1009,7 +1010,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2155 - public void shouldMapAliasedFieldNamesInMapsCorrectly() { + void shouldMapAliasedFieldNamesInMapsCorrectly() { Update update = Update .fromDocument(new Document("map", Collections.singletonMap("Value", new Document("value", "fooo")))); @@ -1022,7 +1023,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2174 - public void mappingUpdateDocumentWithExplicitFieldNameShouldBePossible() { + void mappingUpdateDocumentWithExplicitFieldNameShouldBePossible() { Document mappedUpdate = mapper.getMappedObject(new Document("AValue", "a value"), context.getPersistentEntity(TypeWithFieldNameThatCannotBeDecapitalized.class)); @@ -1031,7 +1032,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2054 - public void mappingShouldAllowPositionAllParameter() { + void mappingShouldAllowPositionAllParameter() { Update update = new Update().inc("grades.$[]", 10); @@ -1042,7 +1043,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2054 - public void mappingShouldAllowPositionAllParameterWhenPropertyHasExplicitFieldName() { + void mappingShouldAllowPositionAllParameterWhenPropertyHasExplicitFieldName() { Update update = new Update().inc("list.$[]", 10); @@ -1053,7 +1054,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2215 - public void mappingShouldAllowPositionParameterWithIdentifier() { + void mappingShouldAllowPositionParameterWithIdentifier() { Update update = new Update().set("grades.$[element]", 10) // .filterArray(Criteria.where("element").gte(100)); @@ -1065,7 +1066,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2215 - public void mappingShouldAllowPositionParameterWithIdentifierWhenFieldHasExplicitFieldName() { + void mappingShouldAllowPositionParameterWithIdentifierWhenFieldHasExplicitFieldName() { Update update = new Update().set("list.$[element]", 10) // .filterArray(Criteria.where("element").gte(100)); @@ -1077,7 +1078,7 @@ public class UpdateMapperUnitTests { } @Test // DATAMONGO-2215 - public void mappingShouldAllowNestedPositionParameterWithIdentifierWhenFieldHasExplicitFieldName() { + void mappingShouldAllowNestedPositionParameterWithIdentifierWhenFieldHasExplicitFieldName() { Update update = new Update().set("list.$[element].value", 10) // .filterArray(Criteria.where("element").gte(100)); @@ -1119,7 +1120,7 @@ public class UpdateMapperUnitTests { @Id String id; String value; - public InterfaceDocumentDefinitionImpl(String id, String value) { + InterfaceDocumentDefinitionImpl(String id, String value) { this.id = id; this.value = value; @@ -1163,7 +1164,7 @@ public class UpdateMapperUnitTests { static class ModelImpl implements Model { public int value; - public ModelImpl(int value) { + ModelImpl(int value) { this.value = value; } @@ -1188,7 +1189,7 @@ public class UpdateMapperUnitTests { List values; - public ListModel(String... values) { + ListModel(String... values) { this.values = Arrays.asList(values); } } @@ -1217,7 +1218,7 @@ public class UpdateMapperUnitTests { String otherValue; AbstractChildClass someObject; - public AbstractChildClass(String id, String value) { + AbstractChildClass(String id, String value) { this.id = id; this.value = value; this.otherValue = "other_" + value; @@ -1226,7 +1227,7 @@ public class UpdateMapperUnitTests { static class ConcreteChildClass extends AbstractChildClass { - public ConcreteChildClass(String id, String value) { + ConcreteChildClass(String id, String value) { super(id, value); } } @@ -1242,7 +1243,7 @@ public class UpdateMapperUnitTests { static class NestedEntity { String name; - public NestedEntity(String name) { + NestedEntity(String name) { super(); this.name = name; } @@ -1288,7 +1289,7 @@ public class UpdateMapperUnitTests { String name; - public NestedDocument(String name) { + NestedDocument(String name) { super(); this.name = name; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java index d2e856d33..f9d42e9fd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java @@ -28,6 +28,7 @@ import org.junit.After; import org.junit.Before; 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.geo.Box; @@ -41,7 +42,6 @@ import org.springframework.data.mongodb.core.BulkOperations.BulkMode; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.TestEntities; import org.springframework.data.mongodb.core.Venue; -import org.springframework.data.mongodb.core.geo.GeoJsonTests.Venue2DSphere; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.MongoTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonModuleUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonModuleUnitTests.java index 32c6287da..7afbf44b2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonModuleUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonModuleUnitTests.java @@ -20,8 +20,8 @@ import static org.assertj.core.api.Assertions.*; import java.io.IOException; import java.util.Arrays; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.data.geo.Point; @@ -36,7 +36,7 @@ public class GeoJsonModuleUnitTests { ObjectMapper mapper; - @Before + @BeforeEach public void setUp() { mapper = new ObjectMapper(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexFieldUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexFieldUnitTests.java index ffb7598bc..315d9fcde 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexFieldUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexFieldUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.index; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort.Direction; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java index 2e0dfddcb..5ff219f65 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java @@ -21,7 +21,7 @@ import java.time.Duration; import java.util.Arrays; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort.Direction; /** diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreatorUnitTests.java index 78d614d6e..0e2185fc1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreatorUnitTests.java @@ -22,12 +22,15 @@ import java.util.Collections; import java.util.Date; import java.util.concurrent.TimeUnit; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; + import org.springframework.dao.DataAccessException; import org.springframework.data.geo.Point; import org.springframework.data.mapping.context.MappingContextEvent; @@ -55,7 +58,8 @@ import com.mongodb.client.model.IndexOptions; * @author Thomas Darimont * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class MongoPersistentEntityIndexCreatorUnitTests { private @Mock MongoDatabaseFactory factory; @@ -63,12 +67,12 @@ public class MongoPersistentEntityIndexCreatorUnitTests { private @Mock MongoCollection collection; private MongoTemplate mongoTemplate; - ArgumentCaptor keysCaptor; - ArgumentCaptor optionsCaptor; - ArgumentCaptor collectionCaptor; + private ArgumentCaptor keysCaptor; + private ArgumentCaptor optionsCaptor; + private ArgumentCaptor collectionCaptor; - @Before - public void setUp() { + @BeforeEach + void setUp() { keysCaptor = ArgumentCaptor.forClass(org.bson.Document.class); optionsCaptor = ArgumentCaptor.forClass(IndexOptions.class); @@ -85,7 +89,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test - public void buildsIndexDefinitionUsingFieldName() { + void buildsIndexDefinitionUsingFieldName() { MongoMappingContext mappingContext = prepareMappingContext(Person.class); @@ -98,7 +102,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test - public void doesNotCreateIndexForEntityComingFromDifferentMappingContext() { + void doesNotCreateIndexForEntityComingFromDifferentMappingContext() { MongoMappingContext mappingContext = new MongoMappingContext(); MongoMappingContext personMappingContext = prepareMappingContext(Person.class); @@ -115,7 +119,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-530 - public void isIndexCreatorForMappingContextHandedIntoConstructor() { + void isIndexCreatorForMappingContextHandedIntoConstructor() { MongoMappingContext mappingContext = new MongoMappingContext(); mappingContext.initialize(); @@ -126,7 +130,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-554 - public void triggersBackgroundIndexingIfConfigured() { + void triggersBackgroundIndexingIfConfigured() { MongoMappingContext mappingContext = prepareMappingContext(AnotherPerson.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -138,7 +142,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-544 - public void expireAfterSecondsIfConfigured() { + void expireAfterSecondsIfConfigured() { MongoMappingContext mappingContext = prepareMappingContext(Milk.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -148,7 +152,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-899 - public void createsNotNestedGeoSpatialIndexCorrectly() { + void createsNotNestedGeoSpatialIndexCorrectly() { MongoMappingContext mappingContext = prepareMappingContext(Wrapper.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -163,7 +167,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-827 - public void autoGeneratedIndexNameShouldGenerateNoName() { + void autoGeneratedIndexNameShouldGenerateNoName() { MongoMappingContext mappingContext = prepareMappingContext(EntityWithGeneratedIndexName.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -173,7 +177,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-367 - public void indexCreationShouldNotCreateNewCollectionForNestedGeoSpatialIndexStructures() { + void indexCreationShouldNotCreateNewCollectionForNestedGeoSpatialIndexStructures() { MongoMappingContext mappingContext = prepareMappingContext(Wrapper.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -185,7 +189,7 @@ public class MongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-367 - public void indexCreationShouldNotCreateNewCollectionForNestedIndexStructures() { + void indexCreationShouldNotCreateNewCollectionForNestedIndexStructures() { MongoMappingContext mappingContext = prepareMappingContext(IndexedDocumentWrapper.class); new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); @@ -196,26 +200,28 @@ public class MongoPersistentEntityIndexCreatorUnitTests { assertThat(collectionNameCapturer.getValue()).isEqualTo("indexedDocumentWrapper"); } - @Test(expected = DataAccessException.class) // DATAMONGO-1125 - public void createIndexShouldUsePersistenceExceptionTranslatorForNonDataIntegrityConcerns() { + @Test // DATAMONGO-1125 + void createIndexShouldUsePersistenceExceptionTranslatorForNonDataIntegrityConcerns() { doThrow(new MongoException(6, "HostUnreachable")).when(collection).createIndex(any(org.bson.Document.class), any(IndexOptions.class)); MongoMappingContext mappingContext = prepareMappingContext(Person.class); - new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); + assertThatThrownBy(() -> new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate)) + .isInstanceOf(DataAccessException.class); } - @Test(expected = ClassCastException.class) // DATAMONGO-1125 - public void createIndexShouldNotConvertUnknownExceptionTypes() { + @Test // DATAMONGO-1125 + void createIndexShouldNotConvertUnknownExceptionTypes() { doThrow(new ClassCastException("o_O")).when(collection).createIndex(any(org.bson.Document.class), any(IndexOptions.class)); MongoMappingContext mappingContext = prepareMappingContext(Person.class); - new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate); + assertThatThrownBy(() -> new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate)) + .isInstanceOf(ClassCastException.class); } private static MongoMappingContext prepareMappingContext(Class type) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java index 0c9f2e9a7..cd6de29f3 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexResolverUnitTests.java @@ -25,7 +25,7 @@ import java.lang.annotation.Target; import java.util.Collections; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/ReactiveMongoPersistentEntityIndexCreatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/ReactiveMongoPersistentEntityIndexCreatorUnitTests.java index 0de564be7..10374088e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/ReactiveMongoPersistentEntityIndexCreatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/ReactiveMongoPersistentEntityIndexCreatorUnitTests.java @@ -24,12 +24,13 @@ import reactor.test.StepVerifier; import java.util.Collections; import java.util.concurrent.TimeUnit; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoExceptionTranslator; @@ -48,22 +49,22 @@ import com.mongodb.reactivestreams.client.MongoDatabase; * * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveMongoPersistentEntityIndexCreatorUnitTests { - ReactiveIndexOperations indexOperations; + private ReactiveIndexOperations indexOperations; @Mock ReactiveMongoDatabaseFactory factory; @Mock MongoDatabase db; @Mock MongoCollection collection; - ArgumentCaptor keysCaptor; - ArgumentCaptor optionsCaptor; - ArgumentCaptor collectionCaptor; + private ArgumentCaptor keysCaptor; + private ArgumentCaptor optionsCaptor; + private ArgumentCaptor collectionCaptor; - @Before + @BeforeEach @SuppressWarnings("unchecked") - public void setUp() { + void setUp() { when(factory.getExceptionTranslator()).thenReturn(new MongoExceptionTranslator()); when(factory.getMongoDatabase()).thenReturn(db); @@ -79,7 +80,7 @@ public class ReactiveMongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-1928 - public void buildsIndexDefinitionUsingFieldName() { + void buildsIndexDefinitionUsingFieldName() { MongoMappingContext mappingContext = prepareMappingContext(Person.class); @@ -96,7 +97,7 @@ public class ReactiveMongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-1928 - public void createIndexShouldUsePersistenceExceptionTranslatorForNonDataIntegrityConcerns() { + void createIndexShouldUsePersistenceExceptionTranslatorForNonDataIntegrityConcerns() { when(collection.createIndex(any(org.bson.Document.class), any(IndexOptions.class))) .thenReturn(Mono.error(new MongoException(6, "HostUnreachable"))); @@ -109,7 +110,7 @@ public class ReactiveMongoPersistentEntityIndexCreatorUnitTests { } @Test // DATAMONGO-1928 - public void createIndexShouldNotConvertUnknownExceptionTypes() { + void createIndexShouldNotConvertUnknownExceptionTypes() { when(collection.createIndex(any(org.bson.Document.class), any(IndexOptions.class))) .thenReturn(Mono.error(new ClassCastException("o_O"))); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java index 07100b940..bdc22b3bd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java @@ -26,10 +26,11 @@ import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.context.ApplicationContext; import org.springframework.core.annotation.AliasFor; import org.springframework.data.mapping.MappingException; @@ -43,14 +44,14 @@ import org.springframework.data.util.ClassTypeInformation; * @author Oliver Gierke * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class BasicMongoPersistentEntityUnitTests { @Mock ApplicationContext context; @Mock MongoPersistentProperty propertyMock; @Test - public void subclassInheritsAtDocumentAnnotation() { + void subclassInheritsAtDocumentAnnotation() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(Person.class)); @@ -58,7 +59,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test - public void evaluatesSpELExpression() { + void evaluatesSpELExpression() { MongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(Company.class)); @@ -66,7 +67,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-65, DATAMONGO-1108 - public void collectionAllowsReferencingSpringBean() { + void collectionAllowsReferencingSpringBean() { CollectionProvider provider = new CollectionProvider(); provider.collectionName = "reference"; @@ -84,7 +85,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-937 - public void shouldDetectLanguageCorrectly() { + void shouldDetectLanguageCorrectly() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(DocumentWithLanguage.class)); @@ -93,7 +94,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1053 - public void verifyShouldThrowExceptionForInvalidTypeOfExplicitLanguageProperty() { + void verifyShouldThrowExceptionForInvalidTypeOfExplicitLanguageProperty() { doReturn(true).when(propertyMock).isExplicitLanguageProperty(); doReturn(Number.class).when(propertyMock).getActualType(); @@ -106,7 +107,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1053 - public void verifyShouldPassForStringAsExplicitLanguageProperty() { + void verifyShouldPassForStringAsExplicitLanguageProperty() { doReturn(true).when(propertyMock).isExplicitLanguageProperty(); doReturn(String.class).when(propertyMock).getActualType(); @@ -122,7 +123,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1053 - public void verifyShouldIgnoreNonExplicitLanguageProperty() { + void verifyShouldIgnoreNonExplicitLanguageProperty() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(AnyDocument.class)); @@ -136,7 +137,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1157 - public void verifyShouldThrowErrorForLazyDBRefOnFinalClass() { + void verifyShouldThrowErrorForLazyDBRefOnFinalClass() { org.springframework.data.mongodb.core.mapping.DBRef dbRefMock = mock( org.springframework.data.mongodb.core.mapping.DBRef.class); @@ -154,7 +155,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1157 - public void verifyShouldThrowErrorForLazyDBRefArray() { + void verifyShouldThrowErrorForLazyDBRefArray() { org.springframework.data.mongodb.core.mapping.DBRef dbRefMock = mock( org.springframework.data.mongodb.core.mapping.DBRef.class); @@ -172,7 +173,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1157 - public void verifyShouldPassForLazyDBRefOnNonArrayNonFinalClass() { + void verifyShouldPassForLazyDBRefOnNonArrayNonFinalClass() { org.springframework.data.mongodb.core.mapping.DBRef dbRefMock = mock( org.springframework.data.mongodb.core.mapping.DBRef.class); @@ -191,7 +192,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1157 - public void verifyShouldPassForNonLazyDBRefOnFinalClass() { + void verifyShouldPassForNonLazyDBRefOnFinalClass() { org.springframework.data.mongodb.core.mapping.DBRef dbRefMock = mock( org.springframework.data.mongodb.core.mapping.DBRef.class); @@ -209,7 +210,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1291 - public void metaInformationShouldBeReadCorrectlyFromInheritedDocumentAnnotation() { + void metaInformationShouldBeReadCorrectlyFromInheritedDocumentAnnotation() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(DocumentWithCustomAnnotation.class)); @@ -218,7 +219,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1373 - public void metaInformationShouldBeReadCorrectlyFromComposedDocumentAnnotation() { + void metaInformationShouldBeReadCorrectlyFromComposedDocumentAnnotation() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( ClassTypeInformation.from(DocumentWithComposedAnnotation.class)); @@ -227,7 +228,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1874 - public void usesEvaluationContextExtensionInDynamicDocumentName() { + void usesEvaluationContextExtensionInDynamicDocumentName() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity<>( ClassTypeInformation.from(MappedWithExtension.class)); @@ -238,7 +239,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1854 - public void readsSimpleCollation() { + void readsSimpleCollation() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity<>( ClassTypeInformation.from(WithSimpleCollation.class)); @@ -247,7 +248,7 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-1854 - public void readsDocumentCollation() { + void readsDocumentCollation() { BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity<>( ClassTypeInformation.from(WithDocumentCollation.class)); @@ -256,28 +257,28 @@ public class BasicMongoPersistentEntityUnitTests { } @Test // DATAMONGO-2341 - public void detectsShardedEntityCorrectly() { + void detectsShardedEntityCorrectly() { assertThat(entityOf(WithDefaultShardKey.class).isSharded()).isTrue(); assertThat(entityOf(Contact.class).isSharded()).isFalse(); } @Test // DATAMONGO-2341 - public void readsDefaultShardKey() { + void readsDefaultShardKey() { assertThat(entityOf(WithDefaultShardKey.class).getShardKey().getDocument()) .isEqualTo(new org.bson.Document("_id", 1)); } @Test // DATAMONGO-2341 - public void readsSingleShardKey() { + void readsSingleShardKey() { assertThat(entityOf(WithSingleShardKey.class).getShardKey().getDocument()) .isEqualTo(new org.bson.Document("country", 1)); } @Test // DATAMONGO-2341 - public void readsMultiShardKey() { + void readsMultiShardKey() { assertThat(entityOf(WithMultiShardKey.class).getShardKey().getDocument()) .isEqualTo(new org.bson.Document("country", 1).append("userid", 1)); @@ -309,13 +310,13 @@ public class BasicMongoPersistentEntityUnitTests { @Document(language = "spanish") static class DocumentWithLanguage {} - static class AnyDocument {} + private static class AnyDocument {} @CustomDocumentAnnotation - static class DocumentWithCustomAnnotation {} + private static class DocumentWithCustomAnnotation {} @ComposedDocumentAnnotation - static class DocumentWithComposedAnnotation {} + private static class DocumentWithComposedAnnotation {} @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE }) @@ -346,17 +347,20 @@ public class BasicMongoPersistentEntityUnitTests { class WithDocumentCollation {} @Sharded + private class WithDefaultShardKey {} @Sharded("country") + private class WithSingleShardKey {} @Sharded({ "country", "userid" }) + private class WithMultiShardKey {} static class SampleExtension implements EvaluationContextExtension { - /* + /* * (non-Javadoc) * @see org.springframework.data.spel.spi.EvaluationContextExtension#getExtensionId() */ @@ -365,7 +369,7 @@ public class BasicMongoPersistentEntityUnitTests { return "sampleExtension"; } - /* + /* * (non-Javadoc) * @see org.springframework.data.spel.spi.EvaluationContextExtension#getProperties() */ diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentPropertyUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentPropertyUnitTests.java index 6baaa7899..8585a5c7f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentPropertyUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentPropertyUnitTests.java @@ -28,8 +28,8 @@ import java.util.Locale; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.core.annotation.AliasFor; import org.springframework.data.annotation.Id; @@ -53,7 +53,7 @@ public class BasicMongoPersistentPropertyUnitTests { MongoPersistentEntity entity; - @Before + @BeforeEach public void setup() { entity = new BasicMongoPersistentEntity<>(ClassTypeInformation.from(Person.class)); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GenericMappingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GenericMappingTests.java index 8fde5b50c..765c01367 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GenericMappingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GenericMappingTests.java @@ -20,11 +20,11 @@ import static org.assertj.core.api.Assertions.*; import java.util.Collections; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.convert.DbRefResolver; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -35,16 +35,16 @@ import org.springframework.data.mongodb.core.convert.MongoConverter; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class GenericMappingTests { +@ExtendWith(MockitoExtension.class) +class GenericMappingTests { - MongoMappingContext context; - MongoConverter converter; + private MongoMappingContext context; + private MongoConverter converter; @Mock DbRefResolver resolver; - @Before - public void setUp() throws Exception { + @BeforeEach + void setUp() throws Exception { context = new MongoMappingContext(); context.setInitialEntitySet(Collections.singleton(StringWrapper.class)); @@ -54,7 +54,7 @@ public class GenericMappingTests { } @Test - public void writesGenericTypeCorrectly() { + void writesGenericTypeCorrectly() { StringWrapper wrapper = new StringWrapper(); wrapper.container = new Container(); @@ -73,7 +73,7 @@ public class GenericMappingTests { } @Test - public void readsGenericTypeCorrectly() { + void readsGenericTypeCorrectly() { Document content = new Document("content", "Foo!"); Document container = new Document("container", content); @@ -83,7 +83,7 @@ public class GenericMappingTests { assertThat(result.container.content).isEqualTo("Foo!"); } - static class StringWrapper extends Wrapper { + private static class StringWrapper extends Wrapper { } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoMappingContextUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoMappingContextUnitTests.java index 9bf2ac676..d922edd95 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoMappingContextUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoMappingContextUnitTests.java @@ -22,10 +22,10 @@ import java.util.Collections; import java.util.Locale; import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.context.ApplicationContext; import org.springframework.data.annotation.Id; @@ -43,13 +43,13 @@ import com.mongodb.DBRef; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MongoMappingContextUnitTests { @Mock ApplicationContext applicationContext; @Test - public void addsSelfReferencingPersistentEntityCorrectly() throws Exception { + void addsSelfReferencingPersistentEntityCorrectly() throws Exception { MongoMappingContext context = new MongoMappingContext(); @@ -58,21 +58,21 @@ public class MongoMappingContextUnitTests { } @Test - public void doesNotReturnPersistentEntityForMongoSimpleType() { + void doesNotReturnPersistentEntityForMongoSimpleType() { MongoMappingContext context = new MongoMappingContext(); assertThat(context.getPersistentEntity(DBRef.class)).isNull(); } @Test // DATAMONGO-638 - public void doesNotCreatePersistentEntityForAbstractMap() { + void doesNotCreatePersistentEntityForAbstractMap() { MongoMappingContext context = new MongoMappingContext(); assertThat(context.getPersistentEntity(AbstractMap.class)).isNull(); } @Test // DATAMONGO-607 - public void populatesPersistentPropertyWithCustomFieldNamingStrategy() { + void populatesPersistentPropertyWithCustomFieldNamingStrategy() { MongoMappingContext context = new MongoMappingContext(); context.setApplicationContext(applicationContext); @@ -88,7 +88,7 @@ public class MongoMappingContextUnitTests { } @Test // DATAMONGO-607 - public void rejectsClassWithAmbiguousFieldMappings() { + void rejectsClassWithAmbiguousFieldMappings() { MongoMappingContext context = new MongoMappingContext(); context.setApplicationContext(applicationContext); @@ -99,7 +99,7 @@ public class MongoMappingContextUnitTests { } @Test // DATAMONGO-694 - public void doesNotConsiderOverrridenAccessorANewField() { + void doesNotConsiderOverrridenAccessorANewField() { MongoMappingContext context = new MongoMappingContext(); context.setApplicationContext(applicationContext); @@ -107,7 +107,7 @@ public class MongoMappingContextUnitTests { } @Test // DATAMONGO-688 - public void mappingContextShouldAcceptClassWithImplicitIdProperty() { + void mappingContextShouldAcceptClassWithImplicitIdProperty() { MongoMappingContext context = new MongoMappingContext(); BasicMongoPersistentEntity pe = context.getRequiredPersistentEntity(ClassWithImplicitId.class); @@ -117,7 +117,7 @@ public class MongoMappingContextUnitTests { } @Test // DATAMONGO-688 - public void mappingContextShouldAcceptClassWithExplicitIdProperty() { + void mappingContextShouldAcceptClassWithExplicitIdProperty() { MongoMappingContext context = new MongoMappingContext(); BasicMongoPersistentEntity pe = context.getRequiredPersistentEntity(ClassWithExplicitId.class); @@ -127,29 +127,31 @@ public class MongoMappingContextUnitTests { } @Test // DATAMONGO-688 - public void mappingContextShouldAcceptClassWithExplicitAndImplicitIdPropertyByGivingPrecedenceToExplicitIdProperty() { + void mappingContextShouldAcceptClassWithExplicitAndImplicitIdPropertyByGivingPrecedenceToExplicitIdProperty() { MongoMappingContext context = new MongoMappingContext(); BasicMongoPersistentEntity pe = context.getRequiredPersistentEntity(ClassWithExplicitIdAndImplicitId.class); assertThat(pe).isNotNull(); } - @Test(expected = MappingException.class) // DATAMONGO-688 - public void rejectsClassWithAmbiguousExplicitIdPropertyFieldMappings() { + @Test // DATAMONGO-688 + void rejectsClassWithAmbiguousExplicitIdPropertyFieldMappings() { MongoMappingContext context = new MongoMappingContext(); - context.getPersistentEntity(ClassWithMultipleExplicitIds.class); + assertThatThrownBy(() -> context.getPersistentEntity(ClassWithMultipleExplicitIds.class)) + .isInstanceOf(MappingException.class); } - @Test(expected = MappingException.class) // DATAMONGO-688 - public void rejectsClassWithAmbiguousImplicitIdPropertyFieldMappings() { + @Test // DATAMONGO-688 + void rejectsClassWithAmbiguousImplicitIdPropertyFieldMappings() { MongoMappingContext context = new MongoMappingContext(); - context.getPersistentEntity(ClassWithMultipleImplicitIds.class); + assertThatThrownBy(() -> context.getPersistentEntity(ClassWithMultipleImplicitIds.class)) + .isInstanceOf(MappingException.class); } @Test // DATAMONGO-976 - public void shouldRejectClassWithInvalidTextScoreProperty() { + void shouldRejectClassWithInvalidTextScoreProperty() { MongoMappingContext context = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoPersistentPropertyComparatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoPersistentPropertyComparatorUnitTests.java index b0a013ae5..9ebeb68ce 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoPersistentPropertyComparatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MongoPersistentPropertyComparatorUnitTests.java @@ -7,10 +7,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity.MongoPersistentPropertyComparator; @@ -19,8 +19,8 @@ import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity. * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class MongoPersistentPropertyComparatorUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoPersistentPropertyComparatorUnitTests { @Mock MongoPersistentProperty firstName; @@ -29,7 +29,7 @@ public class MongoPersistentPropertyComparatorUnitTests { @Mock MongoPersistentProperty ssn; @Test - public void ordersPropertiesCorrectly() { + void ordersPropertiesCorrectly() { when(ssn.getFieldOrder()).thenReturn(10); when(firstName.getFieldOrder()).thenReturn(20); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java index 7a5a59815..83b268d7f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.mapping.event; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEntityCallbackUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEntityCallbackUnitTests.java index 1cc0913aa..9f31067bc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEntityCallbackUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEntityCallbackUnitTests.java @@ -27,11 +27,10 @@ import lombok.experimental.Wither; import java.util.Arrays; import java.util.Date; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.AdditionalAnswers; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.core.Ordered; import org.springframework.data.annotation.CreatedDate; @@ -46,33 +45,30 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; * * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class AuditingEntityCallbackUnitTests { - IsNewAwareAuditingHandler handler; - AuditingEntityCallback callback; + private IsNewAwareAuditingHandler handler; + private AuditingEntityCallback callback; - @Before - public void setUp() { + @BeforeEach + void setUp() { MongoMappingContext mappingContext = new MongoMappingContext(); mappingContext.getPersistentEntity(Sample.class); handler = spy(new IsNewAwareAuditingHandler(new PersistentEntities(Arrays.asList(mappingContext)))); - doAnswer(AdditionalAnswers.returnsArgAt(0)).when(handler).markCreated(any()); - doAnswer(AdditionalAnswers.returnsArgAt(0)).when(handler).markModified(any()); - callback = new AuditingEntityCallback(() -> handler); } @Test // DATAMONGO-2261 - public void rejectsNullAuditingHandler() { + void rejectsNullAuditingHandler() { assertThatIllegalArgumentException().isThrownBy(() -> new AuditingEntityCallback(null)); } @Test // DATAMONGO-2261 - public void triggersCreationMarkForObjectWithEmptyId() { + void triggersCreationMarkForObjectWithEmptyId() { Sample sample = new Sample(); callback.onBeforeConvert(sample, "foo"); @@ -82,7 +78,7 @@ public class AuditingEntityCallbackUnitTests { } @Test // DATAMONGO-2261 - public void triggersModificationMarkForObjectWithSetId() { + void triggersModificationMarkForObjectWithSetId() { Sample sample = new Sample(); sample.id = "id"; @@ -93,14 +89,14 @@ public class AuditingEntityCallbackUnitTests { } @Test // DATAMONGO-2261 - public void hasExplicitOrder() { + void hasExplicitOrder() { assertThat(callback).isInstanceOf(Ordered.class); assertThat(callback.getOrder()).isEqualTo(100); } @Test // DATAMONGO-2261 - public void propagatesChangedInstanceToEvent() { + void propagatesChangedInstanceToEvent() { ImmutableSample sample = new ImmutableSample(); @@ -125,7 +121,7 @@ public class AuditingEntityCallbackUnitTests { @Wither @AllArgsConstructor @NoArgsConstructor(force = true) - static class ImmutableSample { + private static class ImmutableSample { @Id String id; @CreatedDate Date created; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListenerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListenerUnitTests.java index 34cb376f4..4697b1fa6 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListenerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListenerUnitTests.java @@ -27,11 +27,10 @@ import lombok.experimental.Wither; import java.util.Arrays; import java.util.Date; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.AdditionalAnswers; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.core.Ordered; import org.springframework.data.annotation.CreatedDate; @@ -47,33 +46,29 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; * @author Oliver Gierke * @author Thomas Darimont */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class AuditingEventListenerUnitTests { - IsNewAwareAuditingHandler handler; - AuditingEventListener listener; + private IsNewAwareAuditingHandler handler; + private AuditingEventListener listener; - @Before - public void setUp() { + @BeforeEach + void setUp() { MongoMappingContext mappingContext = new MongoMappingContext(); mappingContext.getPersistentEntity(Sample.class); handler = spy(new IsNewAwareAuditingHandler(new PersistentEntities(Arrays.asList(mappingContext)))); - - doAnswer(AdditionalAnswers.returnsArgAt(0)).when(handler).markCreated(any()); - doAnswer(AdditionalAnswers.returnsArgAt(0)).when(handler).markModified(any()); - listener = new AuditingEventListener(() -> handler); } @Test // DATAMONGO-577 - public void rejectsNullAuditingHandler() { + void rejectsNullAuditingHandler() { assertThatIllegalArgumentException().isThrownBy(() -> new AuditingEventListener(null)); } @Test // DATAMONGO-577 - public void triggersCreationMarkForObjectWithEmptyId() { + void triggersCreationMarkForObjectWithEmptyId() { Sample sample = new Sample(); listener.onApplicationEvent(new BeforeConvertEvent(sample, "collection-1")); @@ -83,7 +78,7 @@ public class AuditingEventListenerUnitTests { } @Test // DATAMONGO-577 - public void triggersModificationMarkForObjectWithSetId() { + void triggersModificationMarkForObjectWithSetId() { Sample sample = new Sample(); sample.id = "id"; @@ -94,14 +89,14 @@ public class AuditingEventListenerUnitTests { } @Test - public void hasExplicitOrder() { + void hasExplicitOrder() { assertThat(listener).isInstanceOf(Ordered.class); assertThat(listener.getOrder()).isEqualTo(100); } @Test // DATAMONGO-1992 - public void propagatesChangedInstanceToEvent() { + void propagatesChangedInstanceToEvent() { ImmutableSample sample = new ImmutableSample(); BeforeConvertEvent event = new BeforeConvertEvent<>(sample, "collection"); @@ -127,7 +122,7 @@ public class AuditingEventListenerUnitTests { @Wither @AllArgsConstructor @NoArgsConstructor(force = true) - static class ImmutableSample { + private static class ImmutableSample { @Id String id; @CreatedDate Date created; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/LoggingEventListenerTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/LoggingEventListenerTests.java index 6cd602bba..b721a40ce 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/LoggingEventListenerTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/LoggingEventListenerTests.java @@ -22,9 +22,9 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; import org.bson.Document; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; /** @@ -39,7 +39,7 @@ public class LoggingEventListenerTests { ch.qos.logback.classic.Logger logger; LoggingEventListener listener; - @Before + @BeforeEach public void setUp() { appender = new ListAppender(); @@ -56,7 +56,7 @@ public class LoggingEventListenerTests { listener = new LoggingEventListener(); } - @After + @AfterEach public void tearDown() { // cleanup diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ValidatingMongoEventListenerTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ValidatingMongoEventListenerTests.java index fafe8cd90..a0a7e963d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ValidatingMongoEventListenerTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ValidatingMongoEventListenerTests.java @@ -19,16 +19,13 @@ import static org.assertj.core.api.Assertions.*; import javax.validation.ConstraintViolationException; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.test.util.MongoVersionRule; -import org.springframework.data.util.Version; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; /** * Integration test for {@link ValidatingMongoEventListener}. @@ -37,16 +34,14 @@ import org.springframework.test.context.junit4.SpringRunner; * @author Oliver Gierke * @author Christoph Strobl */ -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @ContextConfiguration -public class ValidatingMongoEventListenerTests { - - public static @ClassRule MongoVersionRule version = MongoVersionRule.atLeast(new Version(2, 6)); +class ValidatingMongoEventListenerTests { @Autowired MongoTemplate mongoTemplate; @Test // DATAMONGO-36 - public void shouldThrowConstraintViolationException() { + void shouldThrowConstraintViolationException() { User user = new User("john", 17); @@ -57,7 +52,7 @@ public class ValidatingMongoEventListenerTests { } @Test - public void shouldNotThrowAnyExceptions() { + void shouldNotThrowAnyExceptions() { mongoTemplate.save(new User("john smith", 18)); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceCountsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceCountsUnitTests.java index 3b0089263..b523e27b8 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceCountsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceCountsUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.mapreduce; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link MapReduceCounts}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceOptionsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceOptionsTests.java index e0b0d184e..17161529d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceOptionsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceOptionsTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.mapreduce; import static org.springframework.data.mongodb.test.util.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * @author Mark Pollack diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceResultsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceResultsUnitTests.java index 731f6cff8..17c2b48f1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceResultsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapreduce/MapReduceResultsUnitTests.java @@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Collections; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link MapReduceResults}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTaskUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTaskUnitTests.java index 689f93039..1bd4d213e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTaskUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTaskUnitTests.java @@ -22,11 +22,11 @@ import java.util.UUID; import org.bson.BsonDocument; import org.bson.BsonString; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -43,18 +43,18 @@ import com.mongodb.client.model.changestream.ChangeStreamDocument; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class ChangeStreamTaskUnitTests { +@ExtendWith(MockitoExtension.class) +class ChangeStreamTaskUnitTests { ChangeStreamTask task; @Mock MongoTemplate template; @Mock MongoDatabase mongoDatabase; @Mock MongoCollection mongoCollection; @Mock ChangeStreamIterable changeStreamIterable; - MongoConverter converter; + private MongoConverter converter; - @Before - public void setUp() { + @BeforeEach + void setUp() { MongoMappingContext mappingContext = new MongoMappingContext(); converter = new MappingMongoConverter(NoOpDbRefResolver.INSTANCE, mappingContext); @@ -66,15 +66,14 @@ public class ChangeStreamTaskUnitTests { when(mongoCollection.watch(eq(Document.class))).thenReturn(changeStreamIterable); - when(changeStreamIterable.startAfter(any())).thenReturn(changeStreamIterable); - when(changeStreamIterable.resumeAfter(any())).thenReturn(changeStreamIterable); when(changeStreamIterable.fullDocument(any())).thenReturn(changeStreamIterable); } @Test // DATAMONGO-2258 - public void shouldNotBreakLovelaceBehavior() { + void shouldNotBreakLovelaceBehavior() { BsonDocument resumeToken = new BsonDocument("token", new BsonString(UUID.randomUUID().toString())); + when(changeStreamIterable.resumeAfter(any())).thenReturn(changeStreamIterable); ChangeStreamRequest request = ChangeStreamRequest.builder() // .collection("start-wars") // @@ -88,7 +87,9 @@ public class ChangeStreamTaskUnitTests { } @Test // DATAMONGO-2258 - public void shouldApplyResumeAfterToChangeStream() { + void shouldApplyResumeAfterToChangeStream() { + + when(changeStreamIterable.resumeAfter(any())).thenReturn(changeStreamIterable); BsonDocument resumeToken = new BsonDocument("token", new BsonString(UUID.randomUUID().toString())); @@ -104,7 +105,9 @@ public class ChangeStreamTaskUnitTests { } @Test // DATAMONGO-2258 - public void shouldApplyStartAfterToChangeStream() { + void shouldApplyStartAfterToChangeStream() { + + when(changeStreamIterable.startAfter(any())).thenReturn(changeStreamIterable); BsonDocument resumeToken = new BsonDocument("token", new BsonString(UUID.randomUUID().toString())); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java index e0f255352..275f25895 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java @@ -59,6 +59,7 @@ import org.springframework.data.mongodb.test.util.Template; import com.mongodb.client.model.changestream.ChangeStreamDocument; import com.mongodb.client.model.changestream.FullDocument; +import org.junitpioneer.jupiter.RepeatFailedTest; /** * Integration test for subscribing to a {@link com.mongodb.operation.ChangeStreamBatchCursor} inside the @@ -69,26 +70,26 @@ import com.mongodb.client.model.changestream.FullDocument; */ @ExtendWith({ MongoTemplateExtension.class }) @EnableIfReplicaSetAvailable -public class ChangeStreamTests { +class ChangeStreamTests { - static ThreadPoolExecutor executor; + private static ThreadPoolExecutor executor; @Template(initialEntitySet = User.class, replicaSet = true) // - static MongoTestTemplate template; + private static MongoTestTemplate template; - MessageListenerContainer container; + private MessageListenerContainer container; - User jellyBelly; - User huffyFluffy; - User sugarSplashy; + private User jellyBelly; + private User huffyFluffy; + private User sugarSplashy; @BeforeAll - public static void beforeClass() { + static void beforeClass() { executor = new ThreadPoolExecutor(2, 2, 1, TimeUnit.SECONDS, new LinkedBlockingDeque<>()); } @BeforeEach - public void setUp() { + void setUp() { template.dropCollection(User.class); @@ -112,17 +113,17 @@ public class ChangeStreamTests { } @AfterEach - public void tearDown() { + void tearDown() { container.stop(); } @AfterAll - public static void afterClass() { + static void afterClass() { executor.shutdown(); } @Test // DATAMONGO-1803 - public void readsPlainDocumentMessageCorrectly() throws InterruptedException { + void readsPlainDocumentMessageCorrectly() throws InterruptedException { CollectingMessageListener, Document> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = new ChangeStreamRequest<>(messageListener, @@ -145,7 +146,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void useSimpleAggregationToFilterMessages() throws InterruptedException { + void useSimpleAggregationToFilterMessages() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder(messageListener) // @@ -171,7 +172,7 @@ public class ChangeStreamTests { @Test // DATAMONGO-1803 @MongoVersion(asOf = "4.0") - public void useAggregationToFilterMessages() throws InterruptedException { + void useAggregationToFilterMessages() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder(messageListener) // @@ -197,7 +198,8 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void mapsTypedAggregationToFilterMessages() throws InterruptedException { + @RepeatFailedTest(3) + void mapsTypedAggregationToFilterMessages() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder() // @@ -224,7 +226,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void mapsReservedWordsCorrectly() throws InterruptedException { + void mapsReservedWordsCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder() // @@ -256,7 +258,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void plainAggregationPipelineToFilterMessages() throws InterruptedException { + void plainAggregationPipelineToFilterMessages() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder() // @@ -282,7 +284,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void resumesCorrectly() throws InterruptedException { + void resumesCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener1 = new CollectingMessageListener<>(); Subscription subscription1 = container.register( @@ -316,7 +318,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void readsAndConvertsMessageBodyCorrectly() throws InterruptedException { + void readsAndConvertsMessageBodyCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = new ChangeStreamRequest<>(messageListener, @@ -338,7 +340,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void readsAndConvertsUpdateMessageBodyCorrectly() throws InterruptedException { + void readsAndConvertsUpdateMessageBodyCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = new ChangeStreamRequest<>(messageListener, @@ -358,7 +360,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void readsOnlyDiffForUpdateWhenNotMappedToDomainType() throws InterruptedException { + void readsOnlyDiffForUpdateWhenNotMappedToDomainType() throws InterruptedException { CollectingMessageListener, Document> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = new ChangeStreamRequest<>(messageListener, @@ -379,7 +381,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1803 - public void readsOnlyDiffForUpdateWhenOptionsDeclareDefaultExplicitly() throws InterruptedException { + void readsOnlyDiffForUpdateWhenOptionsDeclareDefaultExplicitly() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder() // @@ -403,7 +405,7 @@ public class ChangeStreamTests { @Test // DATAMONGO-1803 @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") - public void readsFullDocumentForUpdateWhenNotMappedToDomainTypeButLookupSpecified() throws InterruptedException { + void readsFullDocumentForUpdateWhenNotMappedToDomainTypeButLookupSpecified() throws InterruptedException { CollectingMessageListener, Document> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder() // @@ -429,7 +431,7 @@ public class ChangeStreamTests { @Test // DATAMONGO-2012, DATAMONGO-2113 @MongoVersion(asOf = "4.0") - public void resumeAtTimestampCorrectly() throws InterruptedException { + void resumeAtTimestampCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener1 = new CollectingMessageListener<>(); Subscription subscription1 = container.register( @@ -473,7 +475,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1996 - public void filterOnNestedElementWorksCorrectly() throws InterruptedException { + void filterOnNestedElementWorksCorrectly() throws InterruptedException { CollectingMessageListener, User> messageListener = new CollectingMessageListener<>(); ChangeStreamRequest request = ChangeStreamRequest.builder(messageListener) // @@ -504,7 +506,7 @@ public class ChangeStreamTests { } @Test // DATAMONGO-1996 - public void filterOnUpdateDescriptionElement() throws InterruptedException { + void filterOnUpdateDescriptionElement() throws InterruptedException { template.save(jellyBelly); template.save(sugarSplashy); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/CursorReadingTaskUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/CursorReadingTaskUnitTests.java index c3f955a67..02fc92be5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/CursorReadingTaskUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/CursorReadingTaskUnitTests.java @@ -24,17 +24,19 @@ import edu.umd.cs.mtc.MultithreadedTestCase; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.data.mongodb.core.MongoExceptionTranslator; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.messaging.Task.State; import org.springframework.data.mongodb.core.messaging.SubscriptionRequest.RequestOptions; +import org.springframework.data.mongodb.core.messaging.Task.State; import org.springframework.util.ErrorHandler; import com.mongodb.ServerAddress; @@ -47,7 +49,8 @@ import com.mongodb.client.MongoDatabase; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.Silent.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class CursorReadingTaskUnitTests { @Mock MongoDatabase db; @@ -60,7 +63,7 @@ public class CursorReadingTaskUnitTests { ValueCapturingTaskStub task; - @Before + @BeforeEach public void setUp() { when(request.getRequestOptions()).thenReturn(options); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerUnitTests.java index 23317f1b6..dff08d251 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerUnitTests.java @@ -22,11 +22,12 @@ import edu.umd.cs.mtc.MultithreadedTestCase; import java.time.Duration; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.util.ErrorHandler; @@ -36,46 +37,46 @@ import org.springframework.util.ErrorHandler; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class DefaultMessageListenerContainerUnitTests { +@ExtendWith(MockitoExtension.class) +class DefaultMessageListenerContainerUnitTests { @Mock MongoTemplate template; @Mock ErrorHandler errorHandler; - DefaultMessageListenerContainer container; + private DefaultMessageListenerContainer container; - @Before - public void setUp() { + @BeforeEach + void setUp() { container = new DefaultMessageListenerContainer(template); } @Test // DATAMONGO-1803 - public void throwsErrorOnNullTemplate() { + void throwsErrorOnNullTemplate() { assertThatIllegalArgumentException().isThrownBy(() -> new DefaultMessageListenerContainer(null)); } @Test // DATAMONGO-1803 - public void startStopContainer() throws Throwable { + void startStopContainer() throws Throwable { runOnce(new MultithreadedStartStopContainer(container)); } @Test // DATAMONGO-1803 - public void subscribeToContainerBeforeStartup() throws Throwable { + void subscribeToContainerBeforeStartup() throws Throwable { runOnce(new MultithreadedSubscribeBeforeStartup(container)); } @Test // DATAMONGO-1803 - public void subscribeToContainerAfterStartup() throws Throwable { + void subscribeToContainerAfterStartup() throws Throwable { runOnce(new MultithreadedSubscribeAfterStartup(container)); } @Test // DATAMONGO-1803 - public void stopSubscriptionWhileRunning() throws Throwable { + void stopSubscriptionWhileRunning() throws Throwable { runOnce(new StopSubscriptionWhileRunning(container)); } @Test // DATAMONGO-1803 - public void removeSubscriptionWhileRunning() throws Throwable { + void removeSubscriptionWhileRunning() throws Throwable { runOnce(new RemoveSubscriptionWhileRunning(container)); } @@ -84,7 +85,7 @@ public class DefaultMessageListenerContainerUnitTests { DefaultMessageListenerContainer container; Subscription subscription; - public RemoveSubscriptionWhileRunning(DefaultMessageListenerContainer container) { + RemoveSubscriptionWhileRunning(DefaultMessageListenerContainer container) { this.container = container; subscription = container.register(new MockSubscriptionRequest(), new MockTask()); } @@ -114,7 +115,7 @@ public class DefaultMessageListenerContainerUnitTests { DefaultMessageListenerContainer container; Subscription subscription; - public StopSubscriptionWhileRunning(DefaultMessageListenerContainer container) { + StopSubscriptionWhileRunning(DefaultMessageListenerContainer container) { this.container = container; subscription = container.register(new MockSubscriptionRequest(), new MockTask()); } @@ -144,7 +145,7 @@ public class DefaultMessageListenerContainerUnitTests { DefaultMessageListenerContainer container; - public MultithreadedSubscribeAfterStartup(DefaultMessageListenerContainer container) { + MultithreadedSubscribeAfterStartup(DefaultMessageListenerContainer container) { this.container = container; } @@ -174,7 +175,7 @@ public class DefaultMessageListenerContainerUnitTests { DefaultMessageListenerContainer container; - public MultithreadedSubscribeBeforeStartup(DefaultMessageListenerContainer container) { + MultithreadedSubscribeBeforeStartup(DefaultMessageListenerContainer container) { this.container = container; } @@ -207,7 +208,7 @@ public class DefaultMessageListenerContainerUnitTests { DefaultMessageListenerContainer container; - public MultithreadedStartStopContainer(DefaultMessageListenerContainer container) { + MultithreadedStartStopContainer(DefaultMessageListenerContainer container) { this.container = container; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorRequestUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorRequestUnitTests.java index acde3583c..4849a6685 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorRequestUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorRequestUnitTests.java @@ -19,7 +19,8 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; + import org.springframework.data.mongodb.core.messaging.DefaultMessageListenerContainerTests.Person; import org.springframework.data.mongodb.core.query.Query; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TaskFactoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TaskFactoryUnitTests.java index 25b2bce6c..40be300f8 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TaskFactoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TaskFactoryUnitTests.java @@ -18,12 +18,13 @@ package org.springframework.data.mongodb.core.messaging; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.messaging.ChangeStreamRequest.ChangeStreamRequestOptions; @@ -35,30 +36,30 @@ import org.springframework.util.ErrorHandler; * * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class TaskFactoryUnitTests { +@ExtendWith(MockitoExtension.class) +class TaskFactoryUnitTests { @Mock MongoConverter converter; @Mock MongoTemplate template; @Mock MessageListener messageListener; @Mock ErrorHandler errorHandler; - TaskFactory factory; + private TaskFactory factory; - @Before - public void setUp() { - - when(template.getConverter()).thenReturn(converter); + @BeforeEach + void setUp() { factory = new TaskFactory(template); } @Test // DATAMONGO-1803 - public void requestMustNotBeNull() { + void requestMustNotBeNull() { assertThatIllegalArgumentException().isThrownBy(() -> factory.forRequest(null, Object.class, errorHandler)); } @Test // DATAMONGO-1803 - public void createsChangeStreamRequestCorrectly() { + void createsChangeStreamRequestCorrectly() { + + when(template.getConverter()).thenReturn(converter); ChangeStreamRequestOptions options = Mockito.mock(ChangeStreamRequestOptions.class); Task task = factory.forRequest(new ChangeStreamRequest(messageListener, options), Object.class, errorHandler); @@ -67,7 +68,9 @@ public class TaskFactoryUnitTests { } @Test // DATAMONGO-1803 - public void createsTailableRequestCorrectly() { + void createsTailableRequestCorrectly() { + + when(template.getConverter()).thenReturn(converter); RequestOptions options = Mockito.mock(RequestOptions.class); when(options.getCollectionName()).thenReturn("collection-1"); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/BasicQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/BasicQueryUnitTests.java index c14cfed67..b4961e3de 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/BasicQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/BasicQueryUnitTests.java @@ -22,7 +22,7 @@ import nl.jqno.equalsverifier.EqualsVerifier; import nl.jqno.equalsverifier.Warning; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/FieldUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/FieldUnitTests.java index 1a73dea77..ee312f784 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/FieldUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/FieldUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link DocumentField}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/IndexUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/IndexUnitTests.java index c87d7afed..89a05d226 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/IndexUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/IndexUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/MetricConversionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/MetricConversionUnitTests.java index a4e9cf746..2c5d1f8cb 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/MetricConversionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/MetricConversionUnitTests.java @@ -19,7 +19,7 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; import static org.assertj.core.data.Offset.offset; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Metrics; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/NearQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/NearQueryUnitTests.java index 1285a480c..545d2d2ad 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/NearQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/NearQueryUnitTests.java @@ -20,7 +20,7 @@ import static org.springframework.data.mongodb.test.util.Assertions.*; import java.math.BigDecimal; import java.math.RoundingMode; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/SortTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/SortTests.java index 0a3354c7e..0ff6862cf 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/SortTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/SortTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextCriteriaUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextCriteriaUnitTests.java index d30e7b97a..ab2b4d9e4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextCriteriaUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextCriteriaUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryUnitTests.java index e40780cda..791f9a4e5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.query; import static org.springframework.data.mongodb.test.util.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UntypedExampleMatcherUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UntypedExampleMatcherUnitTests.java index 426ef9853..a5c72274b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UntypedExampleMatcherUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UntypedExampleMatcherUnitTests.java @@ -17,8 +17,9 @@ package org.springframework.data.mongodb.core.query; import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.springframework.data.domain.ExampleMatcher; import org.springframework.data.domain.ExampleMatcher.NullHandler; import org.springframework.data.domain.ExampleMatcher.StringMatcher; @@ -30,7 +31,7 @@ public class UntypedExampleMatcherUnitTests { ExampleMatcher matcher; - @Before + @BeforeEach public void setUp() { matcher = UntypedExampleMatcher.matching(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java index aa8e857ae..dd65e22e8 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java @@ -23,7 +23,7 @@ import java.util.Map; import org.bson.Document; import org.joda.time.DateTime; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.DocumentTestUtils; import org.springframework.data.mongodb.core.query.Update.Position; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaObjectUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaObjectUnitTests.java index fa98c5c73..8f48ddd05 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaObjectUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaObjectUnitTests.java @@ -31,7 +31,7 @@ import java.util.Map; import java.util.Set; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Range; import org.springframework.data.domain.Range.*; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaPropertyUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaPropertyUnitTests.java index c338520b2..f63f4a1d4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaPropertyUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/JsonSchemaPropertyUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.schema; import static org.springframework.data.mongodb.test.util.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.schema.JsonSchemaObject.Type; /** diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaUnitTests.java index 92ce97149..de963599b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaUnitTests.java @@ -23,9 +23,9 @@ import java.util.Collections; import java.util.UUID; import org.bson.Document; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; /** * Unit tests for {@link MongoJsonSchema}. @@ -33,11 +33,11 @@ import org.mockito.junit.MockitoJUnitRunner; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class MongoJsonSchemaUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoJsonSchemaUnitTests { @Test // DATAMONGO-1835 - public void toDocumentRendersSchemaCorrectly() { + void toDocumentRendersSchemaCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder() // .required("firstname", "lastname") // @@ -48,7 +48,7 @@ public class MongoJsonSchemaUnitTests { } @Test // DATAMONGO-1835 - public void rendersDocumentBasedSchemaCorrectly() { + void rendersDocumentBasedSchemaCorrectly() { Document document = MongoJsonSchema.builder() // .required("firstname", "lastname") // @@ -61,7 +61,7 @@ public class MongoJsonSchemaUnitTests { } @Test // DATAMONGO-1849 - public void rendersRequiredPropertiesCorrectly() { + void rendersRequiredPropertiesCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder() // .required("firstname") // @@ -75,7 +75,7 @@ public class MongoJsonSchemaUnitTests { } @Test // DATAMONGO-2306 - public void rendersEncryptedPropertyCorrectly() { + void rendersEncryptedPropertyCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder().properties( // encrypted(string("ssn")) // @@ -90,7 +90,7 @@ public class MongoJsonSchemaUnitTests { } @Test // DATAMONGO-2306 - public void rendersEncryptedPropertyWithKeyIdCorrectly() { + void rendersEncryptedPropertyWithKeyIdCorrectly() { UUID uuid = UUID.randomUUID(); MongoJsonSchema schema = MongoJsonSchema.builder().properties( // @@ -106,12 +106,12 @@ public class MongoJsonSchemaUnitTests { } @Test // DATAMONGO-1835 - public void throwsExceptionOnNullRoot() { + void throwsExceptionOnNullRoot() { assertThatIllegalArgumentException().isThrownBy(() -> MongoJsonSchema.of((JsonSchemaObject) null)); } @Test // DATAMONGO-1835 - public void throwsExceptionOnNullDocument() { + void throwsExceptionOnNullDocument() { assertThatIllegalArgumentException().isThrownBy(() -> MongoJsonSchema.of((Document) null)); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/ExecutableMongoScriptUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/ExecutableMongoScriptUnitTests.java index 2a3a4a99e..91a7d1eb0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/ExecutableMongoScriptUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/ExecutableMongoScriptUnitTests.java @@ -17,55 +17,32 @@ package org.springframework.data.mongodb.core.script; import static org.assertj.core.api.Assertions.*; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import org.springframework.util.ObjectUtils; +import org.junit.jupiter.api.Test; /** * @author Christoph Strobl */ -public class ExecutableMongoScriptUnitTests { - - public @Rule ExpectedException expectedException = ExpectedException.none(); +class ExecutableMongoScriptUnitTests { @Test // DATAMONGO-479 - public void constructorShouldThrowExceptionWhenRawScriptIsNull() { - - expectException(IllegalArgumentException.class, "must not be", "null"); - - new ExecutableMongoScript(null); + void constructorShouldThrowExceptionWhenRawScriptIsNull() { + assertThatIllegalArgumentException().isThrownBy(() -> new ExecutableMongoScript(null)) + .withMessageContaining("must not be").withMessageContaining("null"); } @Test // DATAMONGO-479 - public void constructorShouldThrowExceptionWhenRawScriptIsEmpty() { - - expectException(IllegalArgumentException.class, "must not be", "empty"); - - new ExecutableMongoScript(""); + void constructorShouldThrowExceptionWhenRawScriptIsEmpty() { + assertThatIllegalArgumentException().isThrownBy(() -> new ExecutableMongoScript("")) + .withMessageContaining("must not be").withMessageContaining("empty"); } @Test // DATAMONGO-479 - public void getCodeShouldReturnCodeRepresentationOfRawScript() { + void getCodeShouldReturnCodeRepresentationOfRawScript() { String jsFunction = "function(x) { return x; }"; ExecutableMongoScript script = new ExecutableMongoScript(jsFunction); - assertThat(script.getCode()).isNotNull(); - assertThat(script.getCode().toString()).isEqualTo(jsFunction); + assertThat(script.getCode()).isNotNull().hasToString(jsFunction); } - - private void expectException(Class type, String... messageFragments) { - - expectedException.expect(IllegalArgumentException.class); - - if (!ObjectUtils.isEmpty(messageFragments)) { - for (String fragment : messageFragments) { - expectedException.expectMessage(fragment); - } - } - } - } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/NamedMongoScriptUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/NamedMongoScriptUnitTests.java index b11bd78cc..cb8e01dd2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/NamedMongoScriptUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/script/NamedMongoScriptUnitTests.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.core.script; import static org.assertj.core.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link NamedMongoScript}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/spel/ExpressionNodeUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/spel/ExpressionNodeUnitTests.java index 81d34fea1..2aa07e196 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/spel/ExpressionNodeUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/spel/ExpressionNodeUnitTests.java @@ -20,11 +20,11 @@ import static org.assertj.core.api.Assertions.*; import java.util.Arrays; import java.util.Collection; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.expression.spel.ExpressionState; import org.springframework.expression.spel.SpelNode; @@ -38,8 +38,8 @@ import org.springframework.expression.spel.ast.OpPlus; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class ExpressionNodeUnitTests { +@ExtendWith(MockitoExtension.class) +class ExpressionNodeUnitTests { @Mock ExpressionState state; @@ -48,15 +48,15 @@ public class ExpressionNodeUnitTests { @Mock OpDivide divide; @Mock OpMultiply multiply; - Collection operators; + private Collection operators; - @Before - public void setUp() { + @BeforeEach + void setUp() { this.operators = Arrays.asList(minus, plus, divide, multiply); } @Test // DATAMONGO-774 - public void createsOperatorNodeForOperations() { + void createsOperatorNodeForOperations() { for (SpelNode operator : operators) { assertThat(ExpressionNode.from(operator, state)).isInstanceOf(OperatorNode.class); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/validation/CriteriaValidatorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/validation/CriteriaValidatorUnitTests.java index ebd29428a..859c04acb 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/validation/CriteriaValidatorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/validation/CriteriaValidatorUnitTests.java @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.core.validation; import static org.assertj.core.api.Assertions.*; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.core.query.Criteria; /** diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/AntPathUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/AntPathUnitTests.java index 59c4ef145..8e9d7d2c9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/AntPathUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/AntPathUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.regex.Pattern; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Unit tests for {@link AntPath}. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/GridFsResourceUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/GridFsResourceUnitTests.java index af3d35348..b24837517 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/GridFsResourceUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/GridFsResourceUnitTests.java @@ -22,7 +22,7 @@ import java.util.Date; import org.bson.BsonObjectId; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.mongodb.MongoGridFSException; import com.mongodb.client.gridfs.model.GridFSFile; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java index 2143cbc5f..88731442c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java @@ -25,8 +25,8 @@ import java.util.stream.Collectors; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.core.Constants; import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.data.mongodb.core.MongoTemplate; @@ -73,7 +73,7 @@ public class PerformanceTests { PersonRepository repository; MongoConverter converter; - @Before + @BeforeEach public void setUp() throws Exception { this.mongo = MongoClients.create(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java index 86487164a..0e72c812a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java @@ -28,8 +28,9 @@ import java.util.stream.Collectors; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import org.springframework.core.Constants; import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.data.mongodb.core.ReactiveMongoOperations; @@ -82,7 +83,7 @@ public class ReactivePerformanceTests { ReactivePersonRepository repository; MongoConverter converter; - @Before + @BeforeEach public void setUp() throws Exception { mongo = MongoClients.create(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java index 52446d440..2a9f98d1b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java @@ -22,6 +22,7 @@ import static org.springframework.data.geo.Metrics.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -97,17 +98,22 @@ public abstract class AbstractPersonRepositoryIntegrationTests { oliver = new Person("Oliver August", "Matthews", 4); carter = new Person("Carter", "Beauford", 49); carter.setSkills(Arrays.asList("Drums", "percussion", "vocals")); - Thread.sleep(10); + boyd = new Person("Boyd", "Tinsley", 45); boyd.setSkills(Arrays.asList("Violin", "Electric Violin", "Viola", "Mandolin", "Vocals", "Guitar")); stefan = new Person("Stefan", "Lessard", 34); leroi = new Person("Leroi", "Moore", 41); - alicia = new Person("Alicia", "Keys", 30, Sex.FEMALE); - person = new QPerson("person"); - all = repository.saveAll(Arrays.asList(oliver, dave, carter, boyd, stefan, leroi, alicia)); + Arrays.asList(boyd, stefan, leroi, alicia).forEach(it -> { + it.createdAt = new Date(dave.createdAt.getTime() + 1000L); + }); + + List toSave = asList(oliver, dave, carter, boyd, stefan, leroi, alicia); + toSave.forEach(it -> it.setId(null)); + + all = repository.saveAll(toSave); } @Test @@ -142,7 +148,7 @@ public abstract class AbstractPersonRepositoryIntegrationTests { @Test public void deletesPersonByIdCorrectly() { - repository.deleteById(dave.getId().toString()); + repository.deleteById(dave.getId()); List result = repository.findAll(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Contact.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Contact.java index d3fda4c78..2edfd08b7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Contact.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Contact.java @@ -36,4 +36,8 @@ public abstract class Contact { public String getId() { return id; } + + public void setId(String id) { + this.id = id; + } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/cdi/CdiExtensionIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/cdi/CdiExtensionIntegrationTests.java index 5c3a63c33..decd3d39c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/cdi/CdiExtensionIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/cdi/CdiExtensionIntegrationTests.java @@ -20,9 +20,9 @@ import static org.assertj.core.api.Assertions.*; import javax.enterprise.inject.se.SeContainer; import javax.enterprise.inject.se.SeContainerInitializer; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.springframework.data.mongodb.repository.Person; @@ -36,7 +36,7 @@ public class CdiExtensionIntegrationTests { static SeContainer container; - @BeforeClass + @BeforeAll public static void setUp() { container = SeContainerInitializer.newInstance() // @@ -45,7 +45,7 @@ public class CdiExtensionIntegrationTests { .initialize(); } - @AfterClass + @AfterAll public static void tearDown() { container.close(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigurationExtensionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigurationExtensionUnitTests.java index 10f09722e..761f7a020 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigurationExtensionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigurationExtensionUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Collection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.DefaultListableBeanFactory; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoryConfigurationExtensionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoryConfigurationExtensionUnitTests.java index 385097398..b13308e1e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoryConfigurationExtensionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoryConfigurationExtensionUnitTests.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Collection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.DefaultListableBeanFactory; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java index 175c6eeb4..216ba3114 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java @@ -26,13 +26,15 @@ import java.util.Optional; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -72,8 +74,9 @@ import com.mongodb.client.result.DeleteResult; * @author Thomas Darimont * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class AbstractMongoQueryUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class AbstractMongoQueryUnitTests { @Mock MongoOperations mongoOperationsMock; @Mock ExecutableFind executableFind; @@ -82,8 +85,8 @@ public class AbstractMongoQueryUnitTests { @Mock MongoMappingContext mappingContextMock; @Mock DeleteResult deleteResultMock; - @Before - public void setUp() { + @BeforeEach + void setUp() { doReturn("persons").when(persitentEntityMock).getCollection(); doReturn(persitentEntityMock).when(mappingContextMock).getPersistentEntity(Mockito.any(Class.class)); @@ -103,7 +106,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-566 - public void testDeleteExecutionCallsRemoveCorrectly() { + void testDeleteExecutionCallsRemoveCorrectly() { createQueryForMethod("deletePersonByLastname", String.class).setDeleteQuery(true).execute(new Object[] { "booh" }); @@ -112,7 +115,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-566, DATAMONGO-1040 - public void testDeleteExecutionLoadsListOfRemovedDocumentsWhenReturnTypeIsCollectionLike() { + void testDeleteExecutionLoadsListOfRemovedDocumentsWhenReturnTypeIsCollectionLike() { createQueryForMethod("deleteByLastname", String.class).setDeleteQuery(true).execute(new Object[] { "booh" }); @@ -120,7 +123,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-566 - public void testDeleteExecutionReturnsZeroWhenWriteResultIsNull() { + void testDeleteExecutionReturnsZeroWhenWriteResultIsNull() { MongoQueryFake query = createQueryForMethod("deletePersonByLastname", String.class); query.setDeleteQuery(true); @@ -129,7 +132,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-566, DATAMONGO-978 - public void testDeleteExecutionReturnsNrDocumentsDeletedFromWriteResult() { + void testDeleteExecutionReturnsNrDocumentsDeletedFromWriteResult() { when(deleteResultMock.getDeletedCount()).thenReturn(100L); when(deleteResultMock.wasAcknowledged()).thenReturn(true); @@ -142,7 +145,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-957 - public void metadataShouldNotBeAddedToQueryWhenNotPresent() { + void metadataShouldNotBeAddedToQueryWhenNotPresent() { MongoQueryFake query = createQueryForMethod("findByFirstname", String.class); query.execute(new Object[] { "fake" }); @@ -157,7 +160,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-957 - public void metadataShouldBeAddedToQueryCorrectly() { + void metadataShouldBeAddedToQueryCorrectly() { MongoQueryFake query = createQueryForMethod("findByFirstname", String.class, Pageable.class); query.execute(new Object[] { "fake", PageRequest.of(0, 10) }); @@ -171,7 +174,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-957 - public void metadataShouldBeAddedToCountQueryCorrectly() { + void metadataShouldBeAddedToCountQueryCorrectly() { MongoQueryFake query = createQueryForMethod("findByFirstname", String.class, Pageable.class); query.execute(new Object[] { "fake", PageRequest.of(1, 10) }); @@ -185,7 +188,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-957, DATAMONGO-1783 - public void metadataShouldBeAddedToStringBasedQueryCorrectly() { + void metadataShouldBeAddedToStringBasedQueryCorrectly() { MongoQueryFake query = createQueryForMethod("findByAnnotatedQuery", String.class, Pageable.class); query.execute(new Object[] { "fake", PageRequest.of(0, 10) }); @@ -199,7 +202,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1057 - public void slicedExecutionShouldRetainNrOfElementsToSkip() { + void slicedExecutionShouldRetainNrOfElementsToSkip() { MongoQueryFake query = createQueryForMethod("findByLastname", String.class, Pageable.class); Pageable page1 = PageRequest.of(0, 10); @@ -218,7 +221,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1057 - public void slicedExecutionShouldIncrementLimitByOne() { + void slicedExecutionShouldIncrementLimitByOne() { MongoQueryFake query = createQueryForMethod("findByLastname", String.class, Pageable.class); Pageable page1 = PageRequest.of(0, 10); @@ -237,7 +240,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1057 - public void slicedExecutionShouldRetainSort() { + void slicedExecutionShouldRetainSort() { MongoQueryFake query = createQueryForMethod("findByLastname", String.class, Pageable.class); Pageable page1 = PageRequest.of(0, 10, Sort.Direction.DESC, "bar"); @@ -257,7 +260,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1080 - public void doesNotTryToPostProcessQueryResultIntoWrapperType() { + void doesNotTryToPostProcessQueryResultIntoWrapperType() { Person reference = new Person(); @@ -269,7 +272,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1865 - public void limitingSingleEntityQueryCallsFirst() { + void limitingSingleEntityQueryCallsFirst() { Person reference = new Person(); @@ -281,7 +284,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1872 - public void doesNotFixCollectionOnPreparation() { + void doesNotFixCollectionOnPreparation() { AbstractMongoQuery query = createQueryForMethod(DynamicallyMappedRepository.class, "findBy"); @@ -292,7 +295,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1979 - public void usesAnnotatedSortWhenPresent() { + void usesAnnotatedSortWhenPresent() { createQueryForMethod("findByAge", Integer.class) // .execute(new Object[] { 1000 }); @@ -303,7 +306,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1979 - public void usesExplicitSortOverridesAnnotatedSortWhenPresent() { + void usesExplicitSortOverridesAnnotatedSortWhenPresent() { createQueryForMethod("findByAge", Integer.class, Sort.class) // .execute(new Object[] { 1000, Sort.by(Direction.DESC, "age") }); @@ -314,7 +317,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyStaticAnnotatedCollation() { + void shouldApplyStaticAnnotatedCollation() { createQueryForMethod("findWithCollationUsingSpimpleStringValueByFirstName", String.class) // .execute(new Object[] { "dalinar" }); @@ -326,7 +329,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyStaticAnnotatedCollationAsDocument() { + void shouldApplyStaticAnnotatedCollationAsDocument() { createQueryForMethod("findWithCollationUsingDocumentByFirstName", String.class) // .execute(new Object[] { "dalinar" }); @@ -338,7 +341,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsString() { + void shouldApplyDynamicAnnotatedCollationAsString() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", "en_US" }); @@ -350,7 +353,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsDocument() { + void shouldApplyDynamicAnnotatedCollationAsDocument() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", new Document("locale", "en_US") }); @@ -362,7 +365,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsLocale() { + void shouldApplyDynamicAnnotatedCollationAsLocale() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", Locale.US }); @@ -373,20 +376,18 @@ public class AbstractMongoQueryUnitTests { .contains(Collation.of("en_US").toDocument()); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1854 - public void shouldThrowExceptionOnNonParsableCollation() { + @Test // DATAMONGO-1854 + void shouldThrowExceptionOnNonParsableCollation() { - createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // - .execute(new Object[] { "dalinar", 100 }); + assertThatIllegalArgumentException().isThrownBy(() -> { - ArgumentCaptor captor = ArgumentCaptor.forClass(Query.class); - verify(withQueryMock).matching(captor.capture()); - assertThat(captor.getValue().getCollation().map(Collation::toDocument)) - .contains(Collation.of("en_US").toDocument()); + createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // + .execute(new Object[] { "dalinar", 100 }); + }); } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationIn() { + void shouldApplyDynamicAnnotatedCollationIn() { createQueryForMethod("findWithCollationUsingPlaceholderInDocumentByFirstName", String.class, String.class) // .execute(new Object[] { "dalinar", "en_US" }); @@ -398,7 +399,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyCollationParameter() { + void shouldApplyCollationParameter() { Collation collation = Collation.of("en_US"); createQueryForMethod("findWithCollationParameterByFirstName", String.class, Collation.class) // @@ -410,7 +411,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void collationParameterShouldOverrideAnnotation() { + void collationParameterShouldOverrideAnnotation() { Collation collation = Collation.of("de_AT"); createQueryForMethod("findWithWithCollationParameterAndAnnotationByFirstName", String.class, Collation.class) // @@ -422,7 +423,7 @@ public class AbstractMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void collationParameterShouldNotBeAppliedWhenNullOverrideAnnotation() { + void collationParameterShouldNotBeAppliedWhenNullOverrideAnnotation() { createQueryForMethod("findWithWithCollationParameterAndAnnotationByFirstName", String.class, Collation.class) // .execute(new Object[] { "dalinar", null }); @@ -457,7 +458,7 @@ public class AbstractMongoQueryUnitTests { private boolean isDeleteQuery; private boolean isLimitingQuery; - public MongoQueryFake(MongoQueryMethod method, MongoOperations operations) { + MongoQueryFake(MongoQueryMethod method, MongoOperations operations) { super(method, operations, new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT); } @@ -486,12 +487,12 @@ public class AbstractMongoQueryUnitTests { return isLimitingQuery; } - public MongoQueryFake setDeleteQuery(boolean isDeleteQuery) { + MongoQueryFake setDeleteQuery(boolean isDeleteQuery) { this.isDeleteQuery = isDeleteQuery; return this; } - public MongoQueryFake setLimitingQuery(boolean limitingQuery) { + MongoQueryFake setLimitingQuery(boolean limitingQuery) { isLimitingQuery = limitingQuery; return this; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQueryUnitTests.java index dc69a8f78..38e9a0807 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQueryUnitTests.java @@ -23,13 +23,16 @@ import java.util.List; import java.util.Locale; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; + import org.springframework.data.mongodb.core.Person; import org.springframework.data.mongodb.core.ReactiveFindOperation.FindWithQuery; import org.springframework.data.mongodb.core.ReactiveFindOperation.ReactiveFind; @@ -52,8 +55,9 @@ import org.springframework.expression.spel.standard.SpelExpressionParser; * @author Christoph Strobl * @currentRead Way of Kings - Brandon Sanderson */ -@RunWith(MockitoJUnitRunner.class) -public class AbstractReactiveMongoQueryUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class AbstractReactiveMongoQueryUnitTests { @Mock ReactiveMongoOperations mongoOperationsMock; @Mock BasicMongoPersistentEntity persitentEntityMock; @@ -62,8 +66,8 @@ public class AbstractReactiveMongoQueryUnitTests { @Mock ReactiveFind executableFind; @Mock FindWithQuery withQueryMock; - @Before - public void setUp() { + @BeforeEach + void setUp() { doReturn("persons").when(persitentEntityMock).getCollection(); doReturn(persitentEntityMock).when(mappingContextMock).getPersistentEntity(Mockito.any(Class.class)); @@ -81,7 +85,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyStaticAnnotatedCollation() { + void shouldApplyStaticAnnotatedCollation() { createQueryForMethod("findWithCollationUsingSpimpleStringValueByFirstName", String.class) // .execute(new Object[] { "dalinar" }); @@ -93,7 +97,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyStaticAnnotatedCollationAsDocument() { + void shouldApplyStaticAnnotatedCollationAsDocument() { createQueryForMethod("findWithCollationUsingDocumentByFirstName", String.class) // .execute(new Object[] { "dalinar" }); @@ -105,7 +109,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsString() { + void shouldApplyDynamicAnnotatedCollationAsString() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", "en_US" }); @@ -117,7 +121,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsDocument() { + void shouldApplyDynamicAnnotatedCollationAsDocument() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", new Document("locale", "en_US") }); @@ -129,7 +133,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationAsLocale() { + void shouldApplyDynamicAnnotatedCollationAsLocale() { createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // .execute(new Object[] { "dalinar", Locale.US }); @@ -140,20 +144,17 @@ public class AbstractReactiveMongoQueryUnitTests { .contains(Collation.of("en_US").toDocument()); } - @Test(expected = IllegalArgumentException.class) // DATAMONGO-1854 - public void shouldThrowExceptionOnNonParsableCollation() { + @Test // DATAMONGO-1854 + void shouldThrowExceptionOnNonParsableCollation() { - createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // - .execute(new Object[] { "dalinar", 100 }); - - ArgumentCaptor captor = ArgumentCaptor.forClass(Query.class); - verify(withQueryMock).matching(captor.capture()); - assertThat(captor.getValue().getCollation().map(Collation::toDocument)) - .contains(Collation.of("en_US").toDocument()); + assertThatIllegalArgumentException().isThrownBy(() -> { + createQueryForMethod("findWithCollationUsingPlaceholderByFirstName", String.class, Object.class) // + .execute(new Object[] { "dalinar", 100 }); + }); } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationIn() { + void shouldApplyDynamicAnnotatedCollationIn() { createQueryForMethod("findWithCollationUsingPlaceholderInDocumentByFirstName", String.class, String.class) // .execute(new Object[] { "dalinar", "en_US" }); @@ -165,7 +166,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyDynamicAnnotatedCollationWithMultiplePlaceholders() { + void shouldApplyDynamicAnnotatedCollationWithMultiplePlaceholders() { createQueryForMethod("findWithCollationUsingPlaceholdersInDocumentByFirstName", String.class, String.class, int.class) // @@ -178,7 +179,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void shouldApplyCollationParameter() { + void shouldApplyCollationParameter() { Collation collation = Collation.of("en_US"); createQueryForMethod("findWithCollationParameterByFirstName", String.class, Collation.class) // @@ -190,7 +191,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void collationParameterShouldOverrideAnnotation() { + void collationParameterShouldOverrideAnnotation() { Collation collation = Collation.of("de_AT"); createQueryForMethod("findWithWithCollationParameterAndAnnotationByFirstName", String.class, Collation.class) // @@ -202,7 +203,7 @@ public class AbstractReactiveMongoQueryUnitTests { } @Test // DATAMONGO-1854 - public void collationParameterShouldNotBeAppliedWhenNullOverrideAnnotation() { + void collationParameterShouldNotBeAppliedWhenNullOverrideAnnotation() { createQueryForMethod("findWithWithCollationParameterAndAnnotationByFirstName", String.class, Collation.class) // .execute(new Object[] { "dalinar", null }); @@ -237,7 +238,7 @@ public class AbstractReactiveMongoQueryUnitTests { private boolean isDeleteQuery; private boolean isLimitingQuery; - public ReactiveMongoQueryFake(ReactiveMongoQueryMethod method, ReactiveMongoOperations operations) { + ReactiveMongoQueryFake(ReactiveMongoQueryMethod method, ReactiveMongoOperations operations) { super(method, operations, new SpelExpressionParser(), QueryMethodEvaluationContextProvider.DEFAULT); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ConvertingParameterAccessorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ConvertingParameterAccessorUnitTests.java index 0e211ac5c..ce192ee8e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ConvertingParameterAccessorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ConvertingParameterAccessorUnitTests.java @@ -21,11 +21,11 @@ import static org.mockito.Mockito.*; import java.util.Arrays; import java.util.Collection; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.DbRefResolver; @@ -45,7 +45,7 @@ import com.mongodb.BasicDBList; * @author Oliver Gierke * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ConvertingParameterAccessorUnitTests { @Mock MongoDatabaseFactory factory; @@ -55,7 +55,7 @@ public class ConvertingParameterAccessorUnitTests { MappingMongoConverter converter; DbRefResolver resolver; - @Before + @BeforeEach public void setUp() { this.context = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MappingMongoEntityInformationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MappingMongoEntityInformationUnitTests.java index 94f6e985a..b3ceb0d0a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MappingMongoEntityInformationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MappingMongoEntityInformationUnitTests.java @@ -20,10 +20,10 @@ import static org.mockito.Mockito.*; import lombok.Value; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.domain.Persistable; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; @@ -36,7 +36,7 @@ import org.springframework.data.repository.core.EntityInformation; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MappingMongoEntityInformationUnitTests { @Mock MongoPersistentEntity info; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersParameterAccessorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersParameterAccessorUnitTests.java index fce0af05a..e6ed52665 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersParameterAccessorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersParameterAccessorUnitTests.java @@ -21,7 +21,7 @@ import java.lang.reflect.Method; import java.util.List; import org.bson.Document; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.data.domain.Range; import org.springframework.data.domain.Range.Bound; import org.springframework.data.geo.Distance; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersUnitTests.java index dc5e391e7..b642ac817 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoParametersUnitTests.java @@ -20,10 +20,11 @@ import static org.assertj.core.api.Assertions.*; import java.lang.reflect.Method; import java.util.List; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.domain.Range; import org.springframework.data.geo.Distance; import org.springframework.data.geo.GeoResults; @@ -40,13 +41,13 @@ import org.springframework.data.repository.query.Parameter; * @author Oliver Gierke * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class MongoParametersUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoParametersUnitTests { @Mock MongoQueryMethod queryMethod; @Test - public void discoversDistanceParameter() throws NoSuchMethodException, SecurityException { + void discoversDistanceParameter() throws NoSuchMethodException, SecurityException { Method method = PersonRepository.class.getMethod("findByLocationNear", Point.class, Distance.class); MongoParameters parameters = new MongoParameters(method, false); @@ -62,36 +63,38 @@ public class MongoParametersUnitTests { } @Test - public void doesNotConsiderPointAsNearForSimpleQuery() throws Exception { + void doesNotConsiderPointAsNearForSimpleQuery() throws Exception { Method method = PersonRepository.class.getMethod("findByLocationNear", Point.class, Distance.class); MongoParameters parameters = new MongoParameters(method, false); assertThat(parameters.getNearIndex()).isEqualTo(-1); } - @Test(expected = IllegalStateException.class) - public void rejectsMultiplePointsForGeoNearMethod() throws Exception { + @Test + void rejectsMultiplePointsForGeoNearMethod() throws Exception { Method method = PersonRepository.class.getMethod("findByLocationNearAndOtherLocation", Point.class, Point.class); - new MongoParameters(method, true); - } - @Test(expected = IllegalStateException.class) - public void rejectsMultipleDoubleArraysForGeoNearMethod() throws Exception { - - Method method = PersonRepository.class.getMethod("invalidDoubleArrays", double[].class, double[].class); - new MongoParameters(method, true); + assertThatIllegalStateException().isThrownBy(() -> new MongoParameters(method, true)); } @Test - public void doesNotRejectMultiplePointsForSimpleQueryMethod() throws Exception { + void rejectsMultipleDoubleArraysForGeoNearMethod() throws Exception { + + Method method = PersonRepository.class.getMethod("invalidDoubleArrays", double[].class, double[].class); + + assertThatIllegalStateException().isThrownBy(() -> new MongoParameters(method, true)); + } + + @Test + void doesNotRejectMultiplePointsForSimpleQueryMethod() throws Exception { Method method = PersonRepository.class.getMethod("someOtherMethod", Point.class, Point.class); new MongoParameters(method, false); } @Test - public void findsAnnotatedPointForGeoNearQuery() throws Exception { + void findsAnnotatedPointForGeoNearQuery() throws Exception { Method method = PersonRepository.class.getMethod("findByOtherLocationAndLocationNear", Point.class, Point.class); MongoParameters parameters = new MongoParameters(method, true); @@ -99,7 +102,7 @@ public class MongoParametersUnitTests { } @Test - public void findsAnnotatedDoubleArrayForGeoNearQuery() throws Exception { + void findsAnnotatedDoubleArrayForGeoNearQuery() throws Exception { Method method = PersonRepository.class.getMethod("validDoubleArrays", double[].class, double[].class); MongoParameters parameters = new MongoParameters(method, true); @@ -107,7 +110,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-973 - public void shouldFindTextCriteriaAtItsIndex() throws SecurityException, NoSuchMethodException { + void shouldFindTextCriteriaAtItsIndex() throws SecurityException, NoSuchMethodException { Method method = PersonRepository.class.getMethod("findByNameAndText", String.class, TextCriteria.class); MongoParameters parameters = new MongoParameters(method, false); @@ -115,7 +118,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-973 - public void shouldTreatTextCriteriaParameterAsSpecialParameter() throws SecurityException, NoSuchMethodException { + void shouldTreatTextCriteriaParameterAsSpecialParameter() throws SecurityException, NoSuchMethodException { Method method = PersonRepository.class.getMethod("findByNameAndText", String.class, TextCriteria.class); MongoParameters parameters = new MongoParameters(method, false); @@ -123,7 +126,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-1110 - public void shouldFindMinAndMaxDistanceParameters() throws NoSuchMethodException, SecurityException { + void shouldFindMinAndMaxDistanceParameters() throws NoSuchMethodException, SecurityException { Method method = PersonRepository.class.getMethod("findByLocationNear", Point.class, Range.class); MongoParameters parameters = new MongoParameters(method, false); @@ -133,8 +136,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-1110 - public void shouldNotHaveMinDistanceIfOnlyOneDistanceParameterPresent() - throws NoSuchMethodException, SecurityException { + void shouldNotHaveMinDistanceIfOnlyOneDistanceParameterPresent() throws NoSuchMethodException, SecurityException { Method method = PersonRepository.class.getMethod("findByLocationNear", Point.class, Distance.class); MongoParameters parameters = new MongoParameters(method, false); @@ -144,7 +146,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-1854 - public void shouldReturnMinusOneIfCollationParameterDoesNotExist() throws NoSuchMethodException, SecurityException { + void shouldReturnMinusOneIfCollationParameterDoesNotExist() throws NoSuchMethodException, SecurityException { Method method = PersonRepository.class.getMethod("findByLocationNear", Point.class, Distance.class); MongoParameters parameters = new MongoParameters(method, false); @@ -153,7 +155,7 @@ public class MongoParametersUnitTests { } @Test // DATAMONGO-1854 - public void shouldReturnIndexOfCollationParameterIfExists() throws NoSuchMethodException, SecurityException { + void shouldReturnIndexOfCollationParameterIfExists() throws NoSuchMethodException, SecurityException { Method method = PersonRepository.class.getMethod("findByText", String.class, Collation.class); MongoParameters parameters = new MongoParameters(method, false); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java index 36e59b613..942c88830 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryExecutionUnitTests.java @@ -23,11 +23,11 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.Collections; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -71,8 +71,8 @@ import com.mongodb.client.result.DeleteResult; * @author Christoph Strobl * @soundtrack U Can't Touch This - MC Hammer */ -@RunWith(MockitoJUnitRunner.class) -public class MongoQueryExecutionUnitTests { +@ExtendWith(MockitoExtension.class) +class MongoQueryExecutionUnitTests { @Mock MongoOperations mongoOperationsMock; @Mock ExecutableFind findOperationMock; @@ -81,28 +81,28 @@ public class MongoQueryExecutionUnitTests { @Mock TerminatingFindNear terminatingGeoMock; @Mock DbRefResolver dbRefResolver; - SpelExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); - Point POINT = new Point(10, 20); - Distance DISTANCE = new Distance(2.5, Metrics.KILOMETERS); - RepositoryMetadata metadata = new DefaultRepositoryMetadata(PersonRepository.class); - MongoMappingContext context = new MongoMappingContext(); - ProjectionFactory factory = new SpelAwareProxyProjectionFactory(); - Method method = ReflectionUtils.findMethod(PersonRepository.class, "findByLocationNear", Point.class, Distance.class, + private SpelExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); + private Point POINT = new Point(10, 20); + private Distance DISTANCE = new Distance(2.5, Metrics.KILOMETERS); + private RepositoryMetadata metadata = new DefaultRepositoryMetadata(PersonRepository.class); + private MongoMappingContext context = new MongoMappingContext(); + private ProjectionFactory factory = new SpelAwareProxyProjectionFactory(); + private Method method = ReflectionUtils.findMethod(PersonRepository.class, "findByLocationNear", Point.class, + Distance.class, Pageable.class); - MongoQueryMethod queryMethod = new MongoQueryMethod(method, metadata, factory, context); - MappingMongoConverter converter; + private MongoQueryMethod queryMethod = new MongoQueryMethod(method, metadata, factory, context); + private MappingMongoConverter converter; - @Before + @BeforeEach @SuppressWarnings("unchecked") - public void setUp() { + void setUp() { converter = new MappingMongoConverter(dbRefResolver, context); - when(mongoOperationsMock.getConverter()).thenReturn(converter); - when(mongoOperationsMock.query(any(Class.class))).thenReturn(findOperationMock); + } @Test // DATAMONGO-1464 - public void pagedExecutionShouldNotGenerateCountQueryIfQueryReportedNoResults() { + void pagedExecutionShouldNotGenerateCountQueryIfQueryReportedNoResults() { doReturn(terminatingMock).when(operationMock).matching(any(Query.class)); doReturn(Collections.emptyList()).when(terminatingMock).all(); @@ -115,7 +115,7 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-1464 - public void pagedExecutionShouldUseCountFromResultWithOffsetAndResultsWithinPageSize() { + void pagedExecutionShouldUseCountFromResultWithOffsetAndResultsWithinPageSize() { doReturn(terminatingMock).when(operationMock).matching(any(Query.class)); doReturn(Arrays.asList(new Person(), new Person(), new Person(), new Person())).when(terminatingMock).all(); @@ -128,7 +128,7 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-1464 - public void pagedExecutionRetrievesObjectsForPageableOutOfRange() { + void pagedExecutionRetrievesObjectsForPageableOutOfRange() { doReturn(terminatingMock).when(operationMock).matching(any(Query.class)); doReturn(Collections.emptyList()).when(terminatingMock).all(); @@ -141,9 +141,11 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-1464 - public void pagingGeoExecutionShouldUseCountFromResultWithOffsetAndResultsWithinPageSize() { + void pagingGeoExecutionShouldUseCountFromResultWithOffsetAndResultsWithinPageSize() { GeoResult result = new GeoResult<>(new Person(), DISTANCE); + when(mongoOperationsMock.getConverter()).thenReturn(converter); + when(mongoOperationsMock.query(any(Class.class))).thenReturn(findOperationMock); when(findOperationMock.near(any(NearQuery.class))).thenReturn(terminatingGeoMock); doReturn(new GeoResults<>(Arrays.asList(result, result, result, result))).when(terminatingGeoMock).all(); @@ -160,8 +162,10 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-1464 - public void pagingGeoExecutionRetrievesObjectsForPageableOutOfRange() { + void pagingGeoExecutionRetrievesObjectsForPageableOutOfRange() { + when(mongoOperationsMock.getConverter()).thenReturn(converter); + when(mongoOperationsMock.query(any(Class.class))).thenReturn(findOperationMock); when(findOperationMock.near(any(NearQuery.class))).thenReturn(terminatingGeoMock); doReturn(new GeoResults<>(Collections.emptyList())).when(terminatingGeoMock).all(); doReturn(terminatingMock).when(findOperationMock).matching(any(Query.class)); @@ -180,7 +184,7 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-2351 - public void acknowledgedDeleteReturnsDeletedCount() { + void acknowledgedDeleteReturnsDeletedCount() { Method method = ReflectionUtils.findMethod(PersonRepository.class, "deleteAllByLastname", String.class); MongoQueryMethod queryMethod = new MongoQueryMethod(method, metadata, factory, context); @@ -192,7 +196,7 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-2351 - public void unacknowledgedDeleteReturnsZeroDeletedCount() { + void unacknowledgedDeleteReturnsZeroDeletedCount() { Method method = ReflectionUtils.findMethod(PersonRepository.class, "deleteAllByLastname", String.class); MongoQueryMethod queryMethod = new MongoQueryMethod(method, metadata, factory, context); @@ -204,7 +208,7 @@ public class MongoQueryExecutionUnitTests { } @Test // DATAMONGO-1997 - public void deleteExecutionWithEntityReturnTypeTriggersFindAndRemove() { + void deleteExecutionWithEntityReturnTypeTriggersFindAndRemove() { Method method = ReflectionUtils.findMethod(PersonRepository.class, "deleteByLastname", String.class); MongoQueryMethod queryMethod = new MongoQueryMethod(method, metadata, factory, context); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java index 4349f7600..46d4e2de5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQueryUnitTests.java @@ -24,11 +24,11 @@ import java.util.List; import org.bson.Document; import org.bson.json.JsonParseException; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.mongodb.MongoDatabaseFactory; @@ -58,7 +58,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser; * @author Thomas Darimont * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class PartTreeMongoQueryUnitTests { @Mock MongoOperations mongoOperationsMock; @@ -66,7 +66,7 @@ public class PartTreeMongoQueryUnitTests { MongoMappingContext mappingContext; - @Before + @BeforeEach public void setUp() { mappingContext = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecutionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecutionUnitTests.java index e5591d031..909f832d9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecutionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveMongoQueryExecutionUnitTests.java @@ -26,11 +26,11 @@ import reactor.test.StepVerifier; import java.lang.reflect.Method; import java.util.Arrays; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.reactivestreams.Publisher; import org.springframework.data.domain.PageRequest; @@ -57,7 +57,7 @@ import com.mongodb.client.result.DeleteResult; * @author Mark Paluch * @author Artyom Gabeev */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveMongoQueryExecutionUnitTests { @Mock private ReactiveMongoOperations operations; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregationUnitTests.java index 8565bb980..f899f3c68 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregationUnitTests.java @@ -28,12 +28,12 @@ import java.util.Arrays; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; @@ -66,7 +66,7 @@ import org.springframework.util.ClassUtils; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveStringBasedAggregationUnitTests { SpelExpressionParser PARSER = new SpelExpressionParser(); @@ -83,7 +83,7 @@ public class ReactiveStringBasedAggregationUnitTests { private static final Document SORT = Document.parse(RAW_SORT_STRING); private static final Document GROUP_BY_LASTNAME = Document.parse(RAW_GROUP_BY_LASTNAME_STRING); - @Before + @BeforeEach public void setUp() { converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java index e6a263c7c..72eb4548f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java @@ -27,11 +27,11 @@ import java.util.Collections; import java.util.Map; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.ReactiveFindOperation.ReactiveFind; import org.springframework.data.mongodb.core.ReactiveMongoOperations; @@ -58,7 +58,7 @@ import org.springframework.util.Base64Utils; * @author Mark Paluch * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReactiveStringBasedMongoQueryUnitTests { SpelExpressionParser PARSER = new SpelExpressionParser(); @@ -69,7 +69,7 @@ public class ReactiveStringBasedMongoQueryUnitTests { MongoConverter converter; - @Before + @BeforeEach public void setUp() { when(operations.query(any())).thenReturn(reactiveFind); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedAggregationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedAggregationUnitTests.java index f1ba24aba..568e455c7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedAggregationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedAggregationUnitTests.java @@ -28,12 +28,13 @@ import java.util.Collections; import java.util.List; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.MongoOperations; @@ -66,7 +67,7 @@ import org.springframework.util.ClassUtils; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class StringBasedAggregationUnitTests { SpelExpressionParser PARSER = new SpelExpressionParser(); @@ -84,7 +85,7 @@ public class StringBasedAggregationUnitTests { private static final Document SORT = Document.parse(RAW_SORT_STRING); private static final Document GROUP_BY_LASTNAME = Document.parse(RAW_GROUP_BY_LASTNAME_STRING); - @Before + @BeforeEach public void setUp() { converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java index 3a8a31ac8..30b32cb91 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java @@ -33,11 +33,12 @@ import org.bson.Document; import org.bson.UuidRepresentation; import org.bson.codecs.configuration.CodecRegistry; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.data.mongodb.core.DbCallback; import org.springframework.data.mongodb.core.DocumentTestUtils; import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind; @@ -70,7 +71,7 @@ import com.mongodb.reactivestreams.client.MongoClients; * @author Thomas Darimont * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class StringBasedMongoQueryUnitTests { SpelExpressionParser PARSER = new SpelExpressionParser(); @@ -81,7 +82,7 @@ public class StringBasedMongoQueryUnitTests { MongoConverter converter; - @Before + @BeforeEach public void setUp() { this.converter = new MappingMongoConverter(factory, new MongoMappingContext()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/IndexEnsuringQueryCreationListenerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/IndexEnsuringQueryCreationListenerUnitTests.java index c301b8a17..9237d2f9c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/IndexEnsuringQueryCreationListenerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/IndexEnsuringQueryCreationListenerUnitTests.java @@ -21,13 +21,15 @@ import static org.mockito.Mockito.*; import static org.mockito.Mockito.anyString; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Answers; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.index.IndexDefinition; @@ -44,10 +46,11 @@ import org.springframework.data.util.Streamable; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) -public class IndexEnsuringQueryCreationListenerUnitTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class IndexEnsuringQueryCreationListenerUnitTests { - IndexEnsuringQueryCreationListener listener; + private IndexEnsuringQueryCreationListener listener; @Mock IndexOperationsProvider provider; @Mock PartTree partTree; @@ -56,8 +59,8 @@ public class IndexEnsuringQueryCreationListenerUnitTests { @Mock IndexOperations indexOperations; @Mock MongoEntityMetadata entityInformation; - @Before - public void setUp() { + @BeforeEach + void setUp() { this.listener = new IndexEnsuringQueryCreationListener(provider); @@ -69,7 +72,7 @@ public class IndexEnsuringQueryCreationListenerUnitTests { } @Test // DATAMONGO-1753 - public void skipsQueryCreationForMethodWithoutPredicate() { + void skipsQueryCreationForMethodWithoutPredicate() { when(partTree.hasPredicate()).thenReturn(false); @@ -79,7 +82,7 @@ public class IndexEnsuringQueryCreationListenerUnitTests { } @Test // DATAMONGO-1854 - public void usesCollationWhenPresentAndFixedValue() { + void usesCollationWhenPresentAndFixedValue() { when(partTree.hasPredicate()).thenReturn(true); when(partTree.getParts()).thenReturn(Streamable.empty()); @@ -98,7 +101,7 @@ public class IndexEnsuringQueryCreationListenerUnitTests { } @Test // DATAMONGO-1854 - public void usesCollationWhenPresentAndFixedDocumentValue() { + void usesCollationWhenPresentAndFixedDocumentValue() { when(partTree.hasPredicate()).thenReturn(true); when(partTree.getParts()).thenReturn(Streamable.empty()); @@ -117,7 +120,7 @@ public class IndexEnsuringQueryCreationListenerUnitTests { } @Test // DATAMONGO-1854 - public void skipsCollationWhenPresentButDynamic() { + void skipsCollationWhenPresentButDynamic() { when(partTree.hasPredicate()).thenReturn(true); when(partTree.getParts()).thenReturn(Streamable.empty()); @@ -136,7 +139,7 @@ public class IndexEnsuringQueryCreationListenerUnitTests { } @Test // DATAMONGO-1854 - public void skipsCollationWhenNotPresent() { + void skipsCollationWhenNotPresent() { when(partTree.hasPredicate()).thenReturn(true); when(partTree.getParts()).thenReturn(Streamable.empty()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java index ea930c0c3..538e8a458 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java @@ -20,10 +20,10 @@ import static org.mockito.Mockito.*; import java.util.List; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.core.MongoOperations; @@ -37,7 +37,7 @@ import org.springframework.test.util.ReflectionTestUtils; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MongoRepositoryFactoryBeanUnitTests { @Mock MongoOperations operations; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java index 9b1863dbf..17d55eec1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java @@ -20,11 +20,11 @@ import static org.mockito.Mockito.*; import java.io.Serializable; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.core.MongoTemplate; @@ -39,7 +39,7 @@ import org.springframework.data.repository.Repository; * * @author Oliver Gierke */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class MongoRepositoryFactoryUnitTests { @Mock MongoTemplate template; @@ -50,7 +50,7 @@ public class MongoRepositoryFactoryUnitTests { @Mock @SuppressWarnings("rawtypes") MongoPersistentEntity entity; - @Before + @BeforeEach @SuppressWarnings("unchecked") public void setUp() { when(template.getConverter()).thenReturn(converter); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryUnitTests.java index eaddc42b0..f45772878 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryUnitTests.java @@ -19,12 +19,12 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.domain.Example; import org.springframework.data.domain.PageRequest; @@ -37,14 +37,14 @@ import org.springframework.data.mongodb.repository.query.MongoEntityInformation; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class SimpleMongoRepositoryUnitTests { SimpleMongoRepository repository; @Mock MongoOperations mongoOperations; @Mock MongoEntityInformation entityInformation; - @Before + @BeforeEach public void setUp() { repository = new SimpleMongoRepository<>(entityInformation, mongoOperations); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java index 4d1fdea64..30cca5aff 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java @@ -21,14 +21,12 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; @@ -39,12 +37,11 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.query.MongoEntityInformation; +import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.MongoTestUtils; -import org.springframework.data.mongodb.test.util.MongoVersion; -import org.springframework.data.mongodb.test.util.MongoVersionRule; import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.support.TransactionTemplate; import com.mongodb.client.MongoClient; @@ -53,7 +50,7 @@ import com.mongodb.client.MongoClient; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @ContextConfiguration public class SimpleMongoRepositoryVersionedEntityTests { @@ -76,17 +73,14 @@ public class SimpleMongoRepositoryVersionedEntityTests { } } - @Rule public MongoVersionRule mongoVersion = MongoVersionRule.any(); - - @Autowired // - private MongoTemplate template; + @Autowired private MongoTemplate template; private MongoEntityInformation personEntityInformation; private SimpleMongoRepository repository; private VersionedPerson sarah; - @Before + @BeforeEach public void setUp() { MongoPersistentEntity entity = template.getConverter().getMappingContext() @@ -108,7 +102,7 @@ public class SimpleMongoRepositoryVersionedEntityTests { } @Test // DATAMONGO-2195 - @MongoVersion(asOf = "4.0") + @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") public void deleteWithMatchingVersionInTx() { assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); @@ -137,7 +131,7 @@ public class SimpleMongoRepositoryVersionedEntityTests { } @Test // DATAMONGO-2195 - @MongoVersion(asOf = "4.0") + @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") public void deleteWithVersionMismatchInTx() { assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); @@ -164,7 +158,7 @@ public class SimpleMongoRepositoryVersionedEntityTests { } @Test // DATAMONGO-2195 - @MongoVersion(asOf = "4.0") + @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") public void deleteNonExistingInTx() { assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryUnitTests.java index d283eedea..b578ee75a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryUnitTests.java @@ -38,12 +38,12 @@ import static org.mockito.Mockito.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.domain.Example; import org.springframework.data.domain.Sort; @@ -55,27 +55,24 @@ import org.springframework.data.mongodb.repository.query.MongoEntityInformation; /** * @author Christoph Strobl */ -@RunWith(MockitoJUnitRunner.class) -public class SimpleReactiveMongoRepositoryUnitTests { +@ExtendWith(MockitoExtension.class) +class SimpleReactiveMongoRepositoryUnitTests { - SimpleReactiveMongoRepository repository; + private SimpleReactiveMongoRepository repository; @Mock Mono mono; @Mock Flux flux; @Mock ReactiveMongoOperations mongoOperations; @Mock MongoEntityInformation entityInformation; - @Before - public void setUp() { - - when(mongoOperations.count(any(), any(), any())).thenReturn(mono); - when(mongoOperations.exists(any(), any(), any())).thenReturn(mono); - when(mongoOperations.find(any(), any(), any())).thenReturn(flux); - + @BeforeEach + void setUp() { repository = new SimpleReactiveMongoRepository<>(entityInformation, mongoOperations); } @Test // DATAMONGO-1854 - public void shouldAddDefaultCollationToCountForExampleIfPresent() { + void shouldAddDefaultCollationToCountForExampleIfPresent() { + + when(mongoOperations.count(any(), any(), any())).thenReturn(mono); Collation collation = Collation.of("en_US"); @@ -89,7 +86,9 @@ public class SimpleReactiveMongoRepositoryUnitTests { } @Test // DATAMONGO-1854 - public void shouldAddDefaultCollationToExistsForExampleIfPresent() { + void shouldAddDefaultCollationToExistsForExampleIfPresent() { + + when(mongoOperations.exists(any(), any(), any())).thenReturn(mono); Collation collation = Collation.of("en_US"); @@ -103,7 +102,9 @@ public class SimpleReactiveMongoRepositoryUnitTests { } @Test // DATAMONGO-1854 - public void shouldAddDefaultCollationToFindForExampleIfPresent() { + void shouldAddDefaultCollationToFindForExampleIfPresent() { + + when(mongoOperations.find(any(), any(), any())).thenReturn(flux); Collation collation = Collation.of("en_US"); @@ -117,7 +118,9 @@ public class SimpleReactiveMongoRepositoryUnitTests { } @Test // DATAMONGO-1854 - public void shouldAddDefaultCollationToFindWithSortForExampleIfPresent() { + void shouldAddDefaultCollationToFindWithSortForExampleIfPresent() { + + when(mongoOperations.find(any(), any(), any())).thenReturn(flux); Collation collation = Collation.of("en_US"); @@ -131,7 +134,9 @@ public class SimpleReactiveMongoRepositoryUnitTests { } @Test // DATAMONGO-1854 - public void shouldAddDefaultCollationToFindOneForExampleIfPresent() { + void shouldAddDefaultCollationToFindOneForExampleIfPresent() { + + when(mongoOperations.find(any(), any(), any())).thenReturn(flux); Collation collation = Collation.of("en_US"); @@ -144,7 +149,7 @@ public class SimpleReactiveMongoRepositoryUnitTests { assertThat(query.getValue().getCollation()).contains(collation); } - static class TestDummy { + private static class TestDummy { } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java index 23b2405f9..d9cfad319 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java @@ -18,11 +18,11 @@ package org.springframework.data.mongodb.repository.support; import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; +import reactor.test.StepVerifier; + import java.util.Collections; import java.util.Set; -import reactor.test.StepVerifier; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java index c8b90ea22..15eae62aa 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SpringDataMongodbSerializerUnitTests.java @@ -24,11 +24,12 @@ import java.util.Collections; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; + import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.WritingConverter; import org.springframework.data.mongodb.core.convert.DbRefResolver; @@ -57,14 +58,14 @@ import com.querydsl.core.types.dsl.StringPath; * @author Mark Paluch * @author Mikhail Kaduchka */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class SpringDataMongodbSerializerUnitTests { @Mock DbRefResolver dbFactory; MongoConverter converter; SpringDataMongodbSerializer serializer; - @Before + @BeforeEach public void setUp() { MongoMappingContext context = new MongoMappingContext(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDBTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDBTests.java index 6060f915a..2bcb80476 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDBTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDBTests.java @@ -22,13 +22,16 @@ import java.util.Collection; import java.util.Collections; import org.bson.Document; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.runner.Description; -import org.junit.runner.RunWith; import org.junit.runners.model.Statement; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; + import org.springframework.data.mongodb.test.util.CleanMongoDB.Struct; import com.mongodb.client.ListDatabasesIterable; @@ -40,8 +43,9 @@ import com.mongodb.client.MongoDatabase; * @author Christoph Strobl * @author Mark Paluch */ -@RunWith(MockitoJUnitRunner.class) -public class CleanMongoDBTests { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class CleanMongoDBTests { private CleanMongoDB cleaner; @@ -57,8 +61,8 @@ public class CleanMongoDBTests { private @Mock MongoCollection db1collection1mock, db1collection2mock, db2collection1mock; @SuppressWarnings({ "serial", "unchecked" }) - @Before - public void setUp() { + @BeforeEach + void setUp() { // DB setup @@ -86,7 +90,7 @@ public class CleanMongoDBTests { } @Test - public void preservesSystemDBsCorrectlyWhenCleaningDatabase() throws Throwable { + void preservesSystemDBsCorrectlyWhenCleaningDatabase() throws Throwable { cleaner.clean(Struct.DATABASE); @@ -96,7 +100,7 @@ public class CleanMongoDBTests { } @Test - public void preservesNamedDBsCorrectlyWhenCleaningDatabase() throws Throwable { + void preservesNamedDBsCorrectlyWhenCleaningDatabase() throws Throwable { cleaner.clean(Struct.DATABASE); cleaner.preserveDatabases("db1"); @@ -107,7 +111,7 @@ public class CleanMongoDBTests { } @Test - public void dropsAllDBsCorrectlyWhenCleaingDatabaseAndNotExplictDBNamePresent() throws Throwable { + void dropsAllDBsCorrectlyWhenCleaingDatabaseAndNotExplictDBNamePresent() throws Throwable { cleaner.clean(Struct.DATABASE); @@ -118,7 +122,7 @@ public class CleanMongoDBTests { } @Test - public void dropsSpecifiedDBsCorrectlyWhenExplicitNameSet() throws Throwable { + void dropsSpecifiedDBsCorrectlyWhenExplicitNameSet() throws Throwable { cleaner.clean(Struct.DATABASE); cleaner.useDatabases("db2"); @@ -130,7 +134,7 @@ public class CleanMongoDBTests { } @Test - public void doesNotRemoveAnyDBwhenCleaningCollections() throws Throwable { + void doesNotRemoveAnyDBwhenCleaningCollections() throws Throwable { cleaner.clean(Struct.COLLECTION); @@ -142,7 +146,7 @@ public class CleanMongoDBTests { } @Test - public void doesNotDropCollectionsFromPreservedDBs() throws Throwable { + void doesNotDropCollectionsFromPreservedDBs() throws Throwable { cleaner.clean(Struct.COLLECTION); cleaner.preserveDatabases("db1"); @@ -155,7 +159,7 @@ public class CleanMongoDBTests { } @Test - public void removesAllCollectionsFromAllDatabasesWhenNotLimitedToSpecificOnes() throws Throwable { + void removesAllCollectionsFromAllDatabasesWhenNotLimitedToSpecificOnes() throws Throwable { cleaner.clean(Struct.COLLECTION); @@ -167,7 +171,7 @@ public class CleanMongoDBTests { } @Test - public void removesOnlyNamedCollectionsWhenSpecified() throws Throwable { + void removesOnlyNamedCollectionsWhenSpecified() throws Throwable { cleaner.clean(Struct.COLLECTION); cleaner.useCollections("db1collection2"); @@ -180,7 +184,7 @@ public class CleanMongoDBTests { } @Test - public void removesIndexesCorrectly() throws Throwable { + void removesIndexesCorrectly() throws Throwable { cleaner.clean(Struct.INDEX); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java index b791fb1b9..9679d837c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java @@ -121,7 +121,7 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After return new SyncClientHolder(replSet ? MongoTestUtils.replSetClient() : MongoTestUtils.client()); } - protected boolean holdsReplSetClient(ExtensionContext context) { + boolean holdsReplSetClient(ExtensionContext context) { Store store = context.getStore(NAMESPACE); return store.get(SYNC_REPLSET_KEY) != null || store.get(REACTIVE_REPLSET_KEY) != null; @@ -130,9 +130,6 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After private void assertValidFieldCandidate(Field field) { assertSupportedType("field", field.getType()); - if (isPrivate(field)) { - throw new ExtensionConfigurationException("@MongoClient field [" + field + "] must not be private."); - } } private void assertSupportedType(String target, Class type) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java index c88425ba8..e0ca516c4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java @@ -15,118 +15,47 @@ */ package org.springframework.data.mongodb.test.util; -import static org.junit.platform.commons.util.AnnotationUtils.*; -import static org.junit.platform.commons.util.ReflectionUtils.*; - import java.lang.reflect.Field; import java.util.List; import java.util.function.Predicate; +import org.junit.jupiter.api.extension.Extension; import org.junit.jupiter.api.extension.ExtensionConfigurationException; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Store; import org.junit.jupiter.api.extension.ParameterContext; import org.junit.jupiter.api.extension.ParameterResolutionException; +import org.junit.platform.commons.util.AnnotationUtils; import org.junit.platform.commons.util.ExceptionUtils; import org.junit.platform.commons.util.ReflectionUtils; import org.junit.platform.commons.util.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.mapping.model.CamelCaseSplittingFieldNamingStrategy; + +import org.springframework.data.mongodb.core.MongoOperations; +import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.test.util.MongoExtensions.Termplate; import org.springframework.data.util.ParsingUtils; import org.springframework.util.ClassUtils; /** + * JUnit {@link Extension} providing parameter resolution for synchronous and reactive MongoDB Template API objects. + * * @author Christoph Strobl + * @see Template + * @see MongoTestTemplate + * @see ReactiveMongoTestTemplate */ public class MongoTemplateExtension extends MongoClientExtension { - private static final Logger LOGGER = LoggerFactory.getLogger(MongoTemplateExtension.class); - CamelCaseSplittingFieldNamingStrategy splitter = new CamelCaseSplittingFieldNamingStrategy("-"); - - @Override - public void afterAll(ExtensionContext context) throws Exception { - - } + private static final String DEFAULT_DATABASE = "database"; @Override public void beforeAll(ExtensionContext context) throws Exception { + super.beforeAll(context); injectFields(context, null, ReflectionUtils::isStatic); } - private void injectFields(ExtensionContext context, Object testInstance, Predicate predicate) { - - findAnnotatedFields(context.getRequiredTestClass(), Template.class, predicate).forEach(field -> { - assertValidFieldCandidate(field); - try { - - makeAccessible(field).set(testInstance, - getMongoTemplate(field.getType(), field.getAnnotation(Template.class), context)); - } catch (Throwable t) { - ExceptionUtils.throwAsUncheckedException(t); - } - }); - } - - private void assertValidFieldCandidate(Field field) { - - assertSupportedType("field", field.getType()); - if (isPrivate(field)) { - throw new ExtensionConfigurationException("@MongoClient field [" + field + "] must not be private."); - } - } - - private void assertSupportedType(String target, Class type) { - - if (!ClassUtils.isAssignable(org.springframework.data.mongodb.core.MongoOperations.class, type) - && !ClassUtils.isAssignable(org.springframework.data.mongodb.core.ReactiveMongoOperations.class, type)) { - throw new ExtensionConfigurationException("Can only resolve @MongoClient " + target + " of type " - + org.springframework.data.mongodb.core.MongoOperations.class.getName() + " or " - + org.springframework.data.mongodb.core.ReactiveMongoOperations.class.getName() + " but was: " - + type.getName()); - } - } - - private Object getMongoTemplate(Class type, Template options, ExtensionContext extensionContext) { - - Store templateStore = extensionContext.getStore(MongoExtensions.Termplate.NAMESPACE); - - boolean replSetClient = holdsReplSetClient(extensionContext) || options.replicaSet(); - - String dbName = StringUtils.isNotBlank(options.database()) ? options.database() - : extensionContext.getTestClass().map(it -> { - List target = ParsingUtils.splitCamelCaseToLower(it.getSimpleName()); - return org.springframework.util.StringUtils.collectionToDelimitedString(target, "-"); - }).orElse("database"); - - if (ClassUtils.isAssignable(org.springframework.data.mongodb.core.MongoOperations.class, type)) { - - String key = Termplate.SYNC + "-" + dbName; - return templateStore.getOrComputeIfAbsent(key, it -> { - - com.mongodb.client.MongoClient client = (com.mongodb.client.MongoClient) getMongoClient( - com.mongodb.client.MongoClient.class, extensionContext, replSetClient); - return new MongoTestTemplate(client, dbName, options.initialEntitySet()); - }); - } - - if (ClassUtils.isAssignable(org.springframework.data.mongodb.core.ReactiveMongoOperations.class, type)) { - - String key = Termplate.REACTIVE + "-" + dbName; - return templateStore.getOrComputeIfAbsent(key, it -> { - - com.mongodb.reactivestreams.client.MongoClient client = (com.mongodb.reactivestreams.client.MongoClient) getMongoClient( - com.mongodb.reactivestreams.client.MongoClient.class, extensionContext, replSetClient); - return new ReactiveMongoTestTemplate(client, dbName, options.initialEntitySet()); - }); - } - - throw new IllegalStateException("Damn - something went wrong."); - } - @Override public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { @@ -140,8 +69,77 @@ public class MongoTemplateExtension extends MongoClientExtension { if (parameterContext.getParameter().getAnnotation(Template.class) == null) { return super.resolveParameter(parameterContext, extensionContext); } + Class parameterType = parameterContext.getParameter().getType(); return getMongoTemplate(parameterType, parameterContext.getParameter().getAnnotation(Template.class), extensionContext); } + + private void injectFields(ExtensionContext context, Object testInstance, Predicate predicate) { + + AnnotationUtils.findAnnotatedFields(context.getRequiredTestClass(), Template.class, predicate).forEach(field -> { + + assertValidFieldCandidate(field); + + try { + + ReflectionUtils.makeAccessible(field).set(testInstance, + getMongoTemplate(field.getType(), field.getAnnotation(Template.class), context)); + } catch (Throwable t) { + ExceptionUtils.throwAsUncheckedException(t); + } + }); + } + + private void assertValidFieldCandidate(Field field) { + + assertSupportedType("field", field.getType()); + } + + private void assertSupportedType(String target, Class type) { + + if (!ClassUtils.isAssignable(MongoOperations.class, type) + && !ClassUtils.isAssignable(ReactiveMongoOperations.class, type)) { + throw new ExtensionConfigurationException( + String.format("Can only resolve @%s %s of type %s or %s but was: %s", Template.class.getSimpleName(), target, + MongoOperations.class.getName(), ReactiveMongoOperations.class.getName(), type.getName())); + } + } + + private Object getMongoTemplate(Class type, Template options, ExtensionContext extensionContext) { + + Store templateStore = extensionContext.getStore(MongoExtensions.Termplate.NAMESPACE); + + boolean replSetClient = holdsReplSetClient(extensionContext) || options.replicaSet(); + + String dbName = StringUtils.isNotBlank(options.database()) ? options.database() + : extensionContext.getTestClass().map(it -> { + List target = ParsingUtils.splitCamelCaseToLower(it.getSimpleName()); + return org.springframework.util.StringUtils.collectionToDelimitedString(target, "-"); + }).orElse(DEFAULT_DATABASE); + + if (ClassUtils.isAssignable(MongoOperations.class, type)) { + + String key = Termplate.SYNC + "-" + dbName; + return templateStore.getOrComputeIfAbsent(key, it -> { + + com.mongodb.client.MongoClient client = (com.mongodb.client.MongoClient) getMongoClient( + com.mongodb.client.MongoClient.class, extensionContext, replSetClient); + return new MongoTestTemplate(client, dbName, options.initialEntitySet()); + }); + } + + if (ClassUtils.isAssignable(ReactiveMongoOperations.class, type)) { + + String key = Termplate.REACTIVE + "-" + dbName; + return templateStore.getOrComputeIfAbsent(key, it -> { + + com.mongodb.reactivestreams.client.MongoClient client = (com.mongodb.reactivestreams.client.MongoClient) getMongoClient( + com.mongodb.reactivestreams.client.MongoClient.class, extensionContext, replSetClient); + return new ReactiveMongoTestTemplate(client, dbName, options.initialEntitySet()); + }); + } + + throw new IllegalStateException("Damn - something went wrong."); + } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java index 66762b533..290b78c2d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoTestTemplate.java @@ -15,7 +15,6 @@ */ package org.springframework.data.mongodb.test.util; -import com.mongodb.reactivestreams.client.MongoClient; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -25,14 +24,17 @@ import java.util.function.Supplier; import org.bson.Document; import org.reactivestreams.Publisher; + import org.springframework.context.ApplicationContext; import org.springframework.data.mapping.context.PersistentEntities; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; +import com.mongodb.reactivestreams.client.MongoClient; + /** * A {@link ReactiveMongoTemplate} with configuration hooks and extension suitable for tests. - * + * * @author Christoph Strobl * @since 3.0 */ diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/Template.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/Template.java index 89e8f0227..13ccb0431 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/Template.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/Template.java @@ -25,8 +25,13 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; /** + * Annotation to inject {@link org.springframework.data.mongodb.core.MongoOperations} and + * {@link org.springframework.data.mongodb.core.ReactiveMongoOperations} parameters as method arguments and into + * {@code static} fields. + * * @author Christoph Strobl * @since 3.0 + * @see MongoTemplateExtension */ @Target({ ElementType.FIELD, ElementType.PARAMETER }) @Retention(RetentionPolicy.RUNTIME) @@ -41,15 +46,15 @@ public @interface Template { String database() default ""; /** - * Pre initilaize the {@link org.springframework.data.mapping.context.MappingContext} with the given entities. - * + * Pre-initialize the {@link org.springframework.data.mapping.context.MappingContext} with the given entities. + * * @return empty by default. */ Class[] initialEntitySet() default {}; /** * Use a {@link ReplSetClient} if {@literal true}. - * + * * @return false by default. */ boolean replicaSet() default false;