refactor: logic for subList method when retrieving all data (#5235)

#### What type of PR is this?
/kind improvement
/area core
/milestone 2.12.x

#### What this PR does / why we need it:
重构 ListResult.subList 方法在获取所有数据时的处理逻辑,只要 size 为 0 就返回所有数据

#### Does this PR introduce a user-facing change?
```release-note
None
```
pull/5238/head
guqing 2024-01-23 16:19:19 +08:00 committed by GitHub
parent 9d9b1527bc
commit 8523a67e06
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

View File

@ -129,6 +129,9 @@ public class ListResult<T> implements Iterable<T>, Supplier<Stream<T>> {
*/
public static <T> List<T> subList(List<T> list, int page, int size) {
if (page < 1) {
page = 1;
}
if (size < 1) {
return list;
}
List<T> listSort = new ArrayList<>();

View File

@ -43,4 +43,26 @@ class ListResultTest {
listResult = new ListResult<>(1, 0, 100, List.of());
assertEquals(1, listResult.getTotalPages());
}
@Test
void subListWhenSizeIsZero() {
var list = List.of(1, 2, 3, 4, 5);
assertSubList(list);
list = List.of(1);
assertSubList(list);
}
private void assertSubList(List<Integer> list) {
var result = ListResult.subList(list, 0, 0);
assertEquals(list, result);
result = ListResult.subList(list, 0, 1);
assertEquals(list.subList(0, 1), result);
result = ListResult.subList(list, 1, 0);
assertEquals(list, result);
assertEquals(list.subList(0, 1), ListResult.subList(list, -1, 1));
}
}