Skip to content

Commit 558a39d

Browse files
committed
Added pageable example and limit example
1 parent 7d904f6 commit 558a39d

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed

backend/src/main/java/com/shreyas/customer/CustomerJDBCDataAccessService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public List<Customer> selectAllCustomers() {
2323
var sql = """
2424
SELECT id, name, email, password, age, gender
2525
FROM customer
26+
LIMIT 10
2627
""";
2728

2829
// RowMapper is a Lambda which returns the customer by grabbing the column contents for each row

backend/src/main/java/com/shreyas/customer/CustomerJPADataAccessService.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.shreyas.customer;
22

3+
import org.springframework.data.domain.Page;
4+
import org.springframework.data.domain.Pageable;
35
import org.springframework.stereotype.Repository;
46

57
import java.util.List;
@@ -16,7 +18,8 @@ public CustomerJPADataAccessService(CustomerRepository customerRepository) {
1618

1719
@Override
1820
public List<Customer> selectAllCustomers() {
19-
return customerRepository.findAll();
21+
Page<Customer> all = customerRepository.findAll(Pageable.ofSize(10));
22+
return all.getContent();
2023
}
2124

2225
@Override

backend/src/test/java/com/shreyas/customer/CustomerJPADataAccessServiceTest.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,17 @@
44
import org.junit.jupiter.api.AfterEach;
55
import org.junit.jupiter.api.BeforeEach;
66
import org.junit.jupiter.api.Test;
7+
import org.mockito.ArgumentCaptor;
78
import org.mockito.Mock;
89
import org.mockito.Mockito;
910
import 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

1119
class 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

Comments
 (0)