Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>5.20.0</version>
<scope>test</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@

import org.apache.ibatis.executor.BatchResult;
import org.apache.ibatis.session.ExecutorType;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.batch.domain.Employee;
import org.springframework.batch.infrastructure.item.Chunk;
Expand All @@ -44,6 +44,7 @@
/**
* @author Putthiphong Boonphong
*/
@ExtendWith(MockitoExtension.class)
class MyBatisBatchItemWriterTest {

@Mock
Expand All @@ -52,11 +53,6 @@ class MyBatisBatchItemWriterTest {
@InjectMocks
private MyBatisBatchItemWriter<Employee> writer;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}

@Test
void testZeroBatchResultShouldThrowException() {
Chunk<Employee> employees = Chunk.of(new Employee(), new Employee());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,18 @@
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.assertj.core.api.Assertions;
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.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.batch.infrastructure.item.ExecutionContext;
import org.springframework.batch.infrastructure.item.ItemStreamException;

/**
* Tests for {@link MyBatisCursorItemReader}.
*/
@ExtendWith(MockitoExtension.class)
class MyBatisCursorItemReaderTest {

@Mock
Expand All @@ -48,16 +49,10 @@ class MyBatisCursorItemReaderTest {
@Mock
private Cursor<Object> cursor;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}

@Test
void testCloseOnFailing() throws Exception {

Mockito.when(this.sqlSessionFactory.openSession(ExecutorType.SIMPLE)).thenReturn(this.sqlSession);
Mockito.when(this.cursor.iterator()).thenReturn(getFoos().iterator());
Mockito.when(this.sqlSession.selectCursor("selectFoo", Collections.singletonMap("id", 1)))
.thenThrow(new RuntimeException("error."));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
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.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.batch.infrastructure.item.Chunk;

Expand All @@ -47,6 +48,7 @@
*
* @author Kazuki Shimizu
*/
@ExtendWith(MockitoExtension.class)
class MyBatisBatchItemWriterBuilderTest {

@Mock
Expand All @@ -60,19 +62,17 @@ class MyBatisBatchItemWriterBuilderTest {

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
{
var configuration = new Configuration();
var environment = new Environment("unittest", new JdbcTransactionFactory(), dataSource);
configuration.setEnvironment(environment);
Mockito.when(this.sqlSessionFactory.getConfiguration()).thenReturn(configuration);
Mockito.when(this.sqlSessionFactory.openSession(ExecutorType.BATCH)).thenReturn(this.sqlSession);
}
{
var result = new BatchResult(null, null);
result.setUpdateCounts(new int[] { 1 });
Mockito.when(this.sqlSession.flushStatements()).thenReturn(Collections.singletonList(result));
}

var configuration = new Configuration();
var environment = new Environment("unittest", new JdbcTransactionFactory(), dataSource);
configuration.setEnvironment(environment);
Mockito.when(this.sqlSessionFactory.getConfiguration()).thenReturn(configuration);
Mockito.when(this.sqlSessionFactory.openSession(ExecutorType.BATCH)).thenReturn(this.sqlSession);

var result = new BatchResult(null, null);
result.setUpdateCounts(new int[] { 1 });
Mockito.when(this.sqlSession.flushStatements()).thenReturn(Collections.singletonList(result));

}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,10 @@
import org.assertj.core.api.Assertions;
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.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.batch.infrastructure.item.ExecutionContext;

/**
Expand All @@ -40,6 +41,7 @@
*
* @author Kazuki Shimizu
*/
@ExtendWith(MockitoExtension.class)
class MyBatisCursorItemReaderBuilderTest {

@Mock
Expand All @@ -53,8 +55,6 @@ class MyBatisCursorItemReaderBuilderTest {

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);

Mockito.when(this.sqlSessionFactory.openSession(ExecutorType.SIMPLE)).thenReturn(this.sqlSession);
Mockito.when(this.cursor.iterator()).thenReturn(getFoos().iterator());
Map<String, Object> parameters = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,12 @@
import org.assertj.core.api.Assertions;
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.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
import org.springframework.batch.infrastructure.item.ExecutionContext;

/**
Expand All @@ -44,6 +47,8 @@
*
* @author Kazuki Shimizu
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
class MyBatisPagingItemReaderBuilderTest {

@Mock
Expand All @@ -57,8 +62,6 @@ class MyBatisPagingItemReaderBuilderTest {

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);

var configuration = new Configuration();
var environment = new Environment("unittest", new JdbcTransactionFactory(), dataSource);
configuration.setEnvironment(environment);
Expand All @@ -70,19 +73,21 @@ void setUp() {
parameters.put("_page", 0);
parameters.put("_pagesize", 10);
parameters.put("_skiprows", 0);

// Most tests are using this, lenient as a result on class.
Mockito.when(this.sqlSession.selectList("selectFoo", parameters)).thenReturn(getFoos());
}

@Test
void testConfiguration() throws Exception {
// @formatter:off
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.build();
// @formatter:on
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.build();
// @formatter:on
itemReader.afterPropertiesSet();

var executionContext = new ExecutionContext();
Expand All @@ -102,14 +107,14 @@ void testConfiguration() throws Exception {
@Test
void testConfigurationSaveStateIsFalse() throws Exception {
// @formatter:off
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.saveState(false)
.build();
// @formatter:on
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.saveState(false)
.build();
// @formatter:on
itemReader.afterPropertiesSet();

var executionContext = new ExecutionContext();
Expand All @@ -126,14 +131,14 @@ void testConfigurationSaveStateIsFalse() throws Exception {
@Test
void testConfigurationMaxItemCount() throws Exception {
// @formatter:off
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.maxItemCount(2)
.build();
// @formatter:on
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.maxItemCount(2)
.build();
// @formatter:on
itemReader.afterPropertiesSet();

var executionContext = new ExecutionContext();
Expand All @@ -151,14 +156,14 @@ void testConfigurationMaxItemCount() throws Exception {
@Test
void testConfigurationPageSize() throws Exception {
// @formatter:off
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.pageSize(2)
.build();
// @formatter:on
var itemReader = new MyBatisPagingItemReaderBuilder<Foo>()
.sqlSessionFactory(this.sqlSessionFactory)
.queryId("selectFoo")
.parameterValues(Collections.singletonMap("id", 1))
.parameterValuesSupplier(() -> Collections.singletonMap("name", "Doe"))
.pageSize(2)
.build();
// @formatter:on
itemReader.afterPropertiesSet();

Map<String, Object> parameters = new HashMap<>();
Expand All @@ -167,6 +172,8 @@ void testConfigurationPageSize() throws Exception {
parameters.put("name", "Doe");
parameters.put("_pagesize", 2);
parameters.put("_skiprows", 0);

// The initial mock on this needed repeated here, lenient as a result on class.
Mockito.when(this.sqlSession.selectList("selectFoo", parameters)).thenReturn(getFoos());

var executionContext = new ExecutionContext();
Expand Down