From 15d8d6636dc2160922644d33951b78bd416801df Mon Sep 17 00:00:00 2001 From: kjh Date: Fri, 4 Oct 2024 04:02:55 +0900 Subject: [PATCH] =?UTF-8?q?test=20:=20[#8]=20=EB=8F=99=EC=9D=BC=ED=95=9C?= =?UTF-8?q?=20=EC=9C=A0=EC=A0=80=20=EC=A0=95=EB=B3=B4=EB=A1=9C=20=EA=B0=99?= =?UTF-8?q?=EC=9D=80=20=ED=8A=B9=EA=B0=95=EC=9D=84=205=EB=B2=88=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=ED=96=88=EC=9D=84=20=EB=95=8C,=201=EB=B2=88?= =?UTF-8?q?=EB=A7=8C=20=EC=84=B1=EA=B3=B5=ED=95=98=EB=8A=94=20=EA=B2=83?= =?UTF-8?q?=EC=9D=84=20=EA=B2=80=EC=A6=9D=ED=95=98=EB=8A=94=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RegistrationServiceIntegrationTest.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java b/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java index 02e33cb..50fd84e 100644 --- a/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java +++ b/src/test/java/hhplus/lecture/application/service/test/RegistrationServiceIntegrationTest.java @@ -57,4 +57,34 @@ public class RegistrationServiceIntegrationTest { assertThat(successCount).isEqualTo(30); assertThat(failureCount).isEqualTo(10); } -} + + @Test + void 동일한_유저가_같은_특강에_5번_신청할_때_1번만_성공한다() { + // given: 강의 세팅 + String lectureItemCode = "LE001"; // 강의 일정 코드 + LocalDate lectureDate = LocalDate.of(2024, 10, 3); + + // 기존 강의 일정 확인 + LectureItemEntity lectureItem = lectureItemRepository.findByLectureItemCode(lectureItemCode); + if (lectureItem == null) { + lectureItem = new LectureItemEntity(lectureItemCode, "Java", lectureDate, 30, 0); + lectureItemRepository.save(lectureItem); + } + + // 동일한 사용자 코드 생성 + String userCode = "UC001"; + + // 동일한 사용자로 5번 신청 진행 + List results = IntStream.range(0, 5) + .mapToObj(i -> registrationService.registerLecture(userCode, lectureItemCode)) + .collect(Collectors.toList()); + + // then: 첫 번째 신청은 성공하고 나머지 신청은 실패하는지 확인 + long successCount = results.stream().filter(result -> result).count(); + long failureCount = results.size() - successCount; + + assertThat(successCount).isEqualTo(1); + assertThat(failureCount).isEqualTo(4); + } + +} \ No newline at end of file