From 1a2b1ddf144fc14dd4dc892b2d487927878c4bff Mon Sep 17 00:00:00 2001 From: Henning Poettker Date: Wed, 3 May 2023 20:13:09 +0200 Subject: [PATCH] Mockito upgrade --- pom.xml | 2 +- .../annotation/BatchRegistrarTests.java | 42 ++--- .../batch/item/data/MongoItemReaderTests.java | 166 ++++++++---------- .../builder/MongoItemReaderBuilderTests.java | 76 ++++---- .../JdbcCursorItemReaderConfigTests.java | 14 +- spring-batch-integration/pom.xml | 6 + 6 files changed, 136 insertions(+), 170 deletions(-) diff --git a/pom.xml b/pom.xml index 4f0e61b07a..6c4ce55d8e 100644 --- a/pom.xml +++ b/pom.xml @@ -93,7 +93,7 @@ ${junit-jupiter.version} 2.2 3.24.2 - 4.11.0 + 5.3.1 2.9.1 2.11.0 2.9.0 diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/annotation/BatchRegistrarTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/annotation/BatchRegistrarTests.java index 49516e1cf8..18b04e03c5 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/annotation/BatchRegistrarTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/annotation/BatchRegistrarTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 the original author or authors. + * Copyright 2022-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -78,19 +78,13 @@ public void execute() throws Throwable { @Test @DisplayName("When custom beans are provided, then default ones should not be used") void testConfigurationWithUserDefinedBeans() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( - JobConfigurationWithUserDefinedInfrastructureBeans.class); - - Assertions.assertEquals(JobConfigurationWithUserDefinedInfrastructureBeans.jobRepository, - context.getBean(JobRepository.class)); - Assertions.assertEquals(JobConfigurationWithUserDefinedInfrastructureBeans.jobExplorer, - context.getBean(JobExplorer.class)); - Assertions.assertEquals(JobConfigurationWithUserDefinedInfrastructureBeans.jobLauncher, - context.getBean(JobLauncher.class)); - Assertions.assertEquals(JobConfigurationWithUserDefinedInfrastructureBeans.jobRegistry, - context.getBean(JobRegistry.class)); - Assertions.assertEquals(JobConfigurationWithUserDefinedInfrastructureBeans.jobOperator, - context.getBean(JobOperator.class)); + var context = new AnnotationConfigApplicationContext(JobConfigurationWithUserDefinedInfrastructureBeans.class); + + Assertions.assertTrue(Mockito.mockingDetails(context.getBean(JobRepository.class)).isMock()); + Assertions.assertTrue(Mockito.mockingDetails(context.getBean(JobExplorer.class)).isMock()); + Assertions.assertTrue(Mockito.mockingDetails(context.getBean(JobLauncher.class)).isMock()); + Assertions.assertTrue(Mockito.mockingDetails(context.getBean(JobRegistry.class)).isMock()); + Assertions.assertTrue(Mockito.mockingDetails(context.getBean(JobOperator.class)).isMock()); } @Test @@ -203,39 +197,29 @@ public DataSource dataSource() { @EnableBatchProcessing public static class JobConfigurationWithUserDefinedInfrastructureBeans { - public static JobRepository jobRepository = Mockito.mock(JobRepository.class); - - public static JobExplorer jobExplorer = Mockito.mock(JobExplorer.class); - - public static JobLauncher jobLauncher = Mockito.mock(JobLauncher.class); - - public static JobRegistry jobRegistry = Mockito.mock(JobRegistry.class); - - public static JobOperator jobOperator = Mockito.mock(JobOperator.class); - @Bean public JobRepository jobRepository() { - return jobRepository; + return Mockito.mock(JobRepository.class); } @Bean public JobExplorer jobExplorer() { - return jobExplorer; + return Mockito.mock(JobExplorer.class); } @Bean public JobLauncher jobLauncher() { - return jobLauncher; + return Mockito.mock(JobLauncher.class); } @Bean public JobRegistry jobRegistry() { - return jobRegistry; + return Mockito.mock(JobRegistry.class); } @Bean public JobOperator jobOperator() { - return jobOperator; + return Mockito.mock(JobOperator.class); } } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/MongoItemReaderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/MongoItemReaderTests.java index dee62f7467..89ea8c0666 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/MongoItemReaderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/MongoItemReaderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2022 the original author or authors. + * Copyright 2013-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ 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.jupiter.MockitoExtension; import org.springframework.data.domain.PageRequest; @@ -37,7 +36,11 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.assertArg; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** @@ -109,71 +112,69 @@ void testAfterPropertiesSetForQueryObject() throws Exception { @Test void testBasicQueryFirstPage() { - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class)); } @Test void testBasicQuerySecondPage() { reader.page = 2; - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - - assertEquals(50, query.getLimit()); - assertEquals(100, query.getSkip()); - assertEquals("{}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertTrue(query.getFieldsObject().isEmpty()); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(100, query.getSkip()); + assertEquals("{}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + assertTrue(query.getFieldsObject().isEmpty()); + }), eq(String.class)); } @Test void testQueryWithFields() { reader.setFields("{name : 1, age : 1, _id: 0}"); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertEquals(1, query.getFieldsObject().get("name")); - assertEquals(1, query.getFieldsObject().get("age")); - assertEquals(0, query.getFieldsObject().get("_id")); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + assertEquals(1, query.getFieldsObject().get("name")); + assertEquals(1, query.getFieldsObject().get("age")); + assertEquals(0, query.getFieldsObject().get("_id")); + }), eq(String.class)); } @Test void testQueryWithHint() { reader.setHint("{ $natural : 1}"); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertEquals("{ $natural : 1}", query.getHint()); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + assertEquals("{ $natural : 1}", query.getHint()); + }), eq(String.class)); } @Test @@ -181,17 +182,17 @@ void testQueryWithParameters() { reader.setParameterValues(Collections.singletonList("foo")); reader.setQuery("{ name : ?0 }"); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class)); } @Test @@ -200,20 +201,17 @@ void testQueryWithCollection() { reader.setQuery("{ name : ?0 }"); reader.setCollection("collection"); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - ArgumentCaptor collectionContainer = ArgumentCaptor.forClass(String.class); - when(template.find(queryContainer.capture(), eq(String.class), collectionContainer.capture())) - .thenReturn(new ArrayList<>()); + when(template.find(any(), any(), anyString())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query query = queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertEquals("collection", collectionContainer.getValue()); + verify(template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class), eq("collection")); } @Test @@ -227,15 +225,14 @@ void testQueryObject() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertFalse(reader.doPageRead().hasNext()); - assertEquals(10, actualQuery.getLimit()); - assertEquals(0, actualQuery.getSkip()); + verify(template).find(assertArg(actualQuery -> { + assertEquals(10, actualQuery.getLimit()); + assertEquals(0, actualQuery.getSkip()); + }), eq(String.class)); } @Test @@ -249,15 +246,14 @@ void testQueryObjectWithIgnoredPageSize() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertFalse(reader.doPageRead().hasNext()); - assertEquals(10, actualQuery.getLimit()); - assertEquals(0, actualQuery.getSkip()); + verify(template).find(assertArg(actualQuery -> { + assertEquals(10, actualQuery.getLimit()); + assertEquals(0, actualQuery.getSkip()); + }), eq(String.class)); } @Test @@ -272,15 +268,14 @@ void testQueryObjectWithPageSize() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertFalse(reader.doPageRead().hasNext()); - assertEquals(100, actualQuery.getLimit()); - assertEquals(0, actualQuery.getSkip()); + verify(template).find(assertArg(actualQuery -> { + assertEquals(100, actualQuery.getLimit()); + assertEquals(0, actualQuery.getSkip()); + }), eq(String.class)); } @Test @@ -294,13 +289,11 @@ void testQueryObjectWithoutLimit() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertEquals(100, actualQuery.getLimit()); + verify(template).find(assertArg(actualQuery -> assertEquals(100, actualQuery.getLimit())), eq(String.class)); } @Test @@ -313,13 +306,11 @@ void testQueryObjectWithoutLimitAndPageSize() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertEquals(10, actualQuery.getLimit()); + verify(template).find(assertArg(actualQuery -> assertEquals(10, actualQuery.getLimit())), eq(String.class)); } @Test @@ -334,18 +325,15 @@ void testQueryObjectWithCollection() throws Exception { reader.afterPropertiesSet(); - ArgumentCaptor queryContainer = ArgumentCaptor.forClass(Query.class); - ArgumentCaptor stringContainer = ArgumentCaptor.forClass(String.class); - when(template.find(queryContainer.capture(), eq(String.class), stringContainer.capture())) - .thenReturn(new ArrayList<>()); + when(template.find(any(), any(), anyString())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); - Query actualQuery = queryContainer.getValue(); - assertFalse(reader.doPageRead().hasNext()); - assertEquals(10, actualQuery.getLimit()); - assertEquals(0, actualQuery.getSkip()); - assertEquals("collection", stringContainer.getValue()); + verify(template).find(assertArg(actualQuery -> { + assertFalse(reader.doPageRead().hasNext()); + assertEquals(10, actualQuery.getLimit()); + assertEquals(0, actualQuery.getSkip()); + }), eq(String.class), eq("collection")); } @Test diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/builder/MongoItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/builder/MongoItemReaderBuilderTests.java index 9f39b187dd..dee8686343 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/builder/MongoItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/data/builder/MongoItemReaderBuilderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2022 the original author or authors. + * Copyright 2017-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ 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.jupiter.MockitoExtension; import org.springframework.batch.item.data.MongoItemReader; @@ -36,7 +35,11 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.assertArg; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Query.query; @@ -55,54 +58,53 @@ class MongoItemReaderBuilderTests { private Map sortOptions; - private ArgumentCaptor queryContainer; - @BeforeEach void setUp() { this.sortOptions = new HashMap<>(); this.sortOptions.put("name", Sort.Direction.DESC); - this.queryContainer = ArgumentCaptor.forClass(Query.class); } @Test void testBasic() throws Exception { MongoItemReader reader = getBasicBuilder().build(); - when(template.find(this.queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(this.template.find(any(), any())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals(50, query.getLimit()); - assertEquals(0, query.getSkip()); - assertEquals("{}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + verify(this.template).find(assertArg(query -> { + assertEquals(50, query.getLimit()); + assertEquals(0, query.getSkip()); + assertEquals("{}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class)); } @Test void testFields() throws Exception { MongoItemReader reader = getBasicBuilder().fields("{name : 1, age : 1, _id: 0}").build(); - when(this.template.find(this.queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(this.template.find(any(), any())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals(1, query.getFieldsObject().get("name")); - assertEquals(1, query.getFieldsObject().get("age")); - assertEquals(0, query.getFieldsObject().get("_id")); + verify(this.template).find(assertArg(query -> { + assertEquals(1, query.getFieldsObject().get("name")); + assertEquals(1, query.getFieldsObject().get("age")); + assertEquals(0, query.getFieldsObject().get("_id")); + }), eq(String.class)); } @Test void testHint() throws Exception { MongoItemReader reader = getBasicBuilder().hint("{ $natural : 1}").build(); - when(this.template.find(this.queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(this.template.find(any(), any())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals("{ $natural : 1}", query.getHint()); + verify(this.template).find(assertArg(query -> assertEquals("{ $natural : 1}", query.getHint())), + eq(String.class)); } @Test @@ -110,17 +112,14 @@ void testCollection() throws Exception { MongoItemReader reader = getBasicBuilder().parameterValues(Collections.singletonList("foo")) .jsonQuery("{ name : ?0 }").collection("collection").build(); - ArgumentCaptor collectionContainer = ArgumentCaptor.forClass(String.class); - - when(this.template.find(this.queryContainer.capture(), eq(String.class), collectionContainer.capture())) - .thenReturn(new ArrayList<>()); + when(this.template.find(any(), any(), anyString())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertEquals("collection", collectionContainer.getValue()); + verify(this.template).find(assertArg(query -> { + assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class), eq("collection")); } @Test @@ -128,17 +127,14 @@ void testVarargs() throws Exception { MongoItemReader reader = getBasicBuilder().parameterValues("foo").jsonQuery("{ name : ?0 }") .collection("collection").build(); - ArgumentCaptor collectionContainer = ArgumentCaptor.forClass(String.class); - - when(this.template.find(this.queryContainer.capture(), eq(String.class), collectionContainer.capture())) - .thenReturn(new ArrayList<>()); + when(this.template.find(any(), any(), anyString())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); - assertEquals("{\"name\": -1}", query.getSortObject().toJson()); - assertEquals("collection", collectionContainer.getValue()); + verify(this.template).find(assertArg(query -> { + assertEquals("{\"name\": \"foo\"}", query.getQueryObject().toJson()); + assertEquals("{\"name\": -1}", query.getSortObject().toJson()); + }), eq(String.class), eq("collection")); } @Test @@ -147,12 +143,11 @@ void testWithoutQueryLimit() throws Exception { .targetType(String.class).query(new Query()).sorts(this.sortOptions).name("mongoReaderTest") .pageSize(50).build(); - when(template.find(this.queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals(50, query.getLimit()); + verify(this.template).find(assertArg(query -> assertEquals(50, query.getLimit())), eq(String.class)); } @Test @@ -160,12 +155,11 @@ void testWithoutQueryLimitAndPageSize() throws Exception { MongoItemReader reader = new MongoItemReaderBuilder().template(this.template) .targetType(String.class).query(new Query()).sorts(this.sortOptions).name("mongoReaderTest").build(); - when(template.find(this.queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>()); + when(template.find(any(), any())).thenReturn(new ArrayList<>()); assertNull(reader.read(), "reader should not return result"); - Query query = this.queryContainer.getValue(); - assertEquals(10, query.getLimit()); + verify(this.template).find(assertArg(query -> assertEquals(10, query.getLimit())), eq(String.class)); } @Test diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderConfigTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderConfigTests.java index 5cdf8f74fb..30bf64fa31 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderConfigTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcCursorItemReaderConfigTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2022 the original author or authors. + * Copyright 2008-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import javax.sql.DataSource; import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; import org.springframework.batch.item.ExecutionContext; import org.springframework.jdbc.support.JdbcTransactionManager; @@ -30,10 +29,9 @@ import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -123,17 +121,13 @@ void testOverrideConnectionAutoCommit() throws Exception { final ExecutionContext ec = new ExecutionContext(); reader.open(ec); - ArgumentCaptor autoCommitCaptor = ArgumentCaptor.forClass(Boolean.class); - verify(con, times(1)).setAutoCommit(autoCommitCaptor.capture()); - assertEquals(neededAutoCommit, autoCommitCaptor.getValue()); + verify(con).setAutoCommit(eq(neededAutoCommit)); reset(con); reader.close(); // Check restored autocommit value - autoCommitCaptor = ArgumentCaptor.forClass(Boolean.class); - verify(con, times(1)).setAutoCommit(autoCommitCaptor.capture()); - assertEquals(initialAutoCommit, autoCommitCaptor.getValue()); + verify(con).setAutoCommit(eq(initialAutoCommit)); } } diff --git a/spring-batch-integration/pom.xml b/spring-batch-integration/pom.xml index 21aa8962ab..95010ee5c9 100644 --- a/spring-batch-integration/pom.xml +++ b/spring-batch-integration/pom.xml @@ -79,6 +79,12 @@ spring-integration-test ${spring-integration.version} test + + + org.mockito + mockito-inline + + com.fasterxml.jackson.core