BAEL-5545: fixed mockito mocking issue with Random class, added properties

This commit is contained in:
Elmar Mammadov 2022-07-08 12:56:50 +02:00
parent 551184076c
commit 0b5ffa01a7
3 changed files with 19 additions and 5 deletions

View File

@ -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

View File

@ -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.model.Product;
import com.baeldung.spring.jdbc.batch.repo.ProductRepository; 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.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import java.math.BigDecimal; 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.assertThat;
import static org.assertj.core.api.Assertions.tuple; 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.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import static org.mockito.Mockito.withSettings;
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class ProductServiceUnitTest { class ProductServiceUnitTest {
@Mock
ProductRepository productRepository; ProductRepository productRepository;
@Mock
Random random; Random random;
@Mock
Clock clock; Clock clock;
@InjectMocks
ProductService productService; ProductService productService;
@Captor @Captor
ArgumentCaptor<List<Product>> proArgumentCaptor; ArgumentCaptor<List<Product>> 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 @Test
void testWhenCreateProductsThenShouldSaveAndReturnElapsedTime() { void testWhenCreateProductsThenShouldSaveAndReturnElapsedTime() {
when(random.nextInt(4)) when(random.nextInt(4))

View File

@ -1260,7 +1260,7 @@
<module>testing-modules/testing-assertions</module> <module>testing-modules/testing-assertions</module>
<module>persistence-modules/fauna</module> <module>persistence-modules/fauna</module>
<module>lightrun</module> <module>lightrun</module>
<module>persistence-modules/spring-jdbc-batch</module> <module>persistence-modules/spring-jdbc-batch</module>
</modules> </modules>
</profile> </profile>