44import org .junit .jupiter .api .AfterEach ;
55import org .junit .jupiter .api .BeforeEach ;
66import org .junit .jupiter .api .Test ;
7+ import org .mockito .ArgumentCaptor ;
78import org .mockito .Mock ;
89import org .mockito .Mockito ;
910import org .mockito .MockitoAnnotations ;
11+ import org .springframework .data .domain .Page ;
12+ import org .springframework .data .domain .Pageable ;
13+
14+ import java .util .List ;
15+
16+ import static org .assertj .core .api .Assertions .assertThat ;
17+ import static org .mockito .Mockito .*;
1018
1119class CustomerJPADataAccessServiceTest {
1220
@@ -31,10 +39,18 @@ void tearDown() throws Exception {
3139 @ Test
3240 void selectAllCustomers () {
3341 // When --> we call method underTest.selectAllCustomers, we want to make sure that customerRepository.findAll() --> gets invoked
34- underTest .selectAllCustomers ();
42+ Page <Customer > page = mock (Page .class );
43+ List <Customer > customers = List .of (new Customer ());
44+ when (page .getContent ()).thenReturn (customers );
45+ when (customerRepository .findAll (any (Pageable .class ))).thenReturn (page );
46+ // When
47+ List <Customer > expected = underTest .selectAllCustomers ();
3548
3649 // Then
37- Mockito .verify (customerRepository ).findAll ();
50+ assertThat (expected ).isEqualTo (customers );
51+ ArgumentCaptor <Pageable > pageArgumentCaptor = ArgumentCaptor .forClass (Pageable .class );
52+ verify (customerRepository ).findAll (pageArgumentCaptor .capture ());
53+ assertThat (pageArgumentCaptor .getValue ()).isEqualTo (Pageable .ofSize (10 ));
3854 }
3955
4056 @ Test
@@ -46,7 +62,7 @@ void selectCustomerById() {
4662 underTest .selectCustomerById (id );
4763
4864 // Then
49- Mockito . verify (customerRepository ).findById (id );
65+ verify (customerRepository ).findById (id );
5066 }
5167
5268 @ Test
@@ -58,7 +74,7 @@ void existCustomerByEmail() {
5874 underTest .existCustomerByEmail (email );
5975
6076 // Then
61- Mockito . verify (customerRepository ).existsCustomerByEmail (email );
77+ verify (customerRepository ).existsCustomerByEmail (email );
6278 }
6379
6480 @ Test
@@ -75,7 +91,7 @@ void insertCustomer() {
7591 underTest .insertCustomer (customer );
7692
7793 // Then
78- Mockito . verify (customerRepository ).save (customer );
94+ verify (customerRepository ).save (customer );
7995 }
8096
8197 @ Test
@@ -87,7 +103,7 @@ void existCustomerById() {
87103 underTest .existCustomerById (id );
88104
89105 // Then
90- Mockito . verify (customerRepository ).existsCustomerById (id );
106+ verify (customerRepository ).existsCustomerById (id );
91107 }
92108
93109 @ Test
@@ -99,7 +115,7 @@ void removeCustomerById() {
99115 underTest .removeCustomerById (id );
100116
101117 // Then
102- Mockito . verify (customerRepository ).deleteById (id );
118+ verify (customerRepository ).deleteById (id );
103119 }
104120
105121 @ Test
@@ -116,6 +132,6 @@ void updateCustomer() {
116132 underTest .updateCustomer (customer );
117133
118134 // Then
119- Mockito . verify (customerRepository ).save (customer );
135+ verify (customerRepository ).save (customer );
120136 }
121137}
0 commit comments