From f57b403f3f950616e65e27e09d02a098317d8f65 Mon Sep 17 00:00:00 2001 From: agree0002 Date: Sun, 5 Jul 2026 21:14:58 +0900 Subject: [PATCH] =?UTF-8?q?[feat/#382]=20=EC=98=88=EC=82=B0=EC=A7=80?= =?UTF-8?q?=EC=9B=90=EC=8B=A0=EC=B2=AD=20=EC=A0=95=EB=A0=AC=EA=B8=B0?= =?UTF-8?q?=EC=A4=80=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BudgetApplicationRepositoryImpl.java | 3 +- .../BudgetApplicationRepositoryTest.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/resource-server/src/main/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryImpl.java b/resource-server/src/main/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryImpl.java index 50151c6d..92b4610b 100644 --- a/resource-server/src/main/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryImpl.java +++ b/resource-server/src/main/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryImpl.java @@ -36,8 +36,7 @@ public List search(RequestStatus status) { budgetSupportApplication.status)) .from(budgetSupportApplication) .where(sameStatus(status)) - .orderBy( - budgetSupportApplication.dateUsed.desc(), budgetSupportApplication.dateCreated.desc()) + .orderBy(budgetSupportApplication.dateCreated.desc(), budgetSupportApplication.id.desc()) .fetch(); } diff --git a/resource-server/src/test/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryTest.java b/resource-server/src/test/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryTest.java index ebb6ba1a..42dce81e 100644 --- a/resource-server/src/test/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryTest.java +++ b/resource-server/src/test/java/com/inhabas/api/domain/budget/repository/BudgetApplicationRepositoryTest.java @@ -4,6 +4,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -84,6 +85,34 @@ public void searchSpecificApplicationsTest() { assertThat(dtoList).hasSize(5); } + @DisplayName("예산지원신청서는 작성 시점 기준 내림차순으로 정렬된다.") + @Test + public void searchOrderedByDateCreatedTest() { + // given : 나중에 작성한 신청서일수록 사용일은 더 과거가 되도록 저장 + List savedIds = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + BudgetSupportApplication application = + new BudgetSupportApplication( + menu, + APPLICATION_TITLE, + APPLICATION_DETAILS, + LocalDateTime.now().minusDays(i + 1), + ACCOUNT_NUMBER, + APPLICATION_OUTCOME, + member, + INITIAL_REQUEST_STATUS) + .writtenBy(member, BudgetSupportApplication.class); + savedIds.add(budgetApplicationRepository.save(application).getId()); + } + + // when + List dtoList = budgetApplicationRepository.search(null); + + // then : 사용일 순서와 무관하게 최근에 작성한 신청서가 먼저 조회된다. + Collections.reverse(savedIds); + assertThat(dtoList).extracting(BudgetApplicationDto::getId).containsExactlyElementsOf(savedIds); + } + private Object getFieldValueByReflection(Object target, String fieldName) { return ReflectionTestUtils.getField(target, fieldName); }