From 0b5ffa01a70675c6047b8e69b93f46230046a103 Mon Sep 17 00:00:00 2001 From: Elmar Mammadov Date: Fri, 8 Jul 2022 12:56:50 +0200 Subject: [PATCH] BAEL-5545: fixed mockito mocking issue with Random class, added properties --- .../src/main/resources/application.properties | 5 +++++ .../batch/service/ProductServiceUnitTest.java | 17 +++++++++++++---- pom.xml | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 persistence-modules/spring-jdbc-batch/src/main/resources/application.properties diff --git a/persistence-modules/spring-jdbc-batch/src/main/resources/application.properties b/persistence-modules/spring-jdbc-batch/src/main/resources/application.properties new file mode 100644 index 0000000000..3f9b093013 --- /dev/null +++ b/persistence-modules/spring-jdbc-batch/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/sample-baeldung-db +spring.datasource.username=postgres +spring.datasource.password=root +spring.datasource.driver-class-name=org.postgresql.Driver +spring.datasource.hikari.data-source-properties.reWriteBatchedInserts=true diff --git a/persistence-modules/spring-jdbc-batch/src/test/java/com/baeldung/spring/jdbc/batch/service/ProductServiceUnitTest.java b/persistence-modules/spring-jdbc-batch/src/test/java/com/baeldung/spring/jdbc/batch/service/ProductServiceUnitTest.java index 43719e986d..aaf9cd5f23 100644 --- a/persistence-modules/spring-jdbc-batch/src/test/java/com/baeldung/spring/jdbc/batch/service/ProductServiceUnitTest.java +++ b/persistence-modules/spring-jdbc-batch/src/test/java/com/baeldung/spring/jdbc/batch/service/ProductServiceUnitTest.java @@ -2,12 +2,14 @@ package com.baeldung.spring.jdbc.batch.service; import com.baeldung.spring.jdbc.batch.model.Product; import com.baeldung.spring.jdbc.batch.repo.ProductRepository; +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.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import java.math.BigDecimal; @@ -20,26 +22,33 @@ import java.util.Random; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.mockito.Mockito.withSettings; @ExtendWith(MockitoExtension.class) class ProductServiceUnitTest { - @Mock ProductRepository productRepository; - @Mock Random random; - @Mock Clock clock; - @InjectMocks ProductService productService; @Captor ArgumentCaptor> proArgumentCaptor; + @BeforeEach + void setUp() { + this.productRepository = mock(ProductRepository.class); + this.random = mock(Random.class, withSettings().withoutAnnotations()); + this.clock = mock(Clock.class); + this.productService = new ProductService(this.productRepository, this.random, this.clock); + } + + @Test void testWhenCreateProductsThenShouldSaveAndReturnElapsedTime() { when(random.nextInt(4)) diff --git a/pom.xml b/pom.xml index a10da85200..23cc338d8b 100644 --- a/pom.xml +++ b/pom.xml @@ -1260,7 +1260,7 @@ testing-modules/testing-assertions persistence-modules/fauna lightrun - persistence-modules/spring-jdbc-batch + persistence-modules/spring-jdbc-batch