From 7c52f41ebc00448cc1cacf78660c3178e6ac5f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8E=E1=85=AC=E1=84=8C=E1=85=AE=E1=86=AB=E1=84=92?= =?UTF-8?q?=E1=85=A9?= Date: Thu, 19 Oct 2023 21:46:35 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=8B=9C?= =?UTF-8?q?=20=EC=84=B8=EC=85=98=EC=9D=B4=20=EC=A1=B4=EC=9E=AC=ED=95=A0=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=A0=95=EC=83=81=20=EB=B0=98=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/SessionGroupRepository.java | 2 ++ .../pium/service/SessionGroupService.java | 7 ++-- .../SessionGroupRepositoryTest.java | 36 ++++++++++++++++--- .../pium/service/SessionGroupServiceTest.java | 13 ------- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/backend/pium/src/main/java/com/official/pium/repository/SessionGroupRepository.java b/backend/pium/src/main/java/com/official/pium/repository/SessionGroupRepository.java index fdf5d53b..3977aeb2 100644 --- a/backend/pium/src/main/java/com/official/pium/repository/SessionGroupRepository.java +++ b/backend/pium/src/main/java/com/official/pium/repository/SessionGroupRepository.java @@ -9,4 +9,6 @@ public interface SessionGroupRepository extends JpaRepository findBySessionIdAndSessionKey(String sessionId, String sessionKey); void deleteBySessionValue(String sessionValue); + + boolean existsBySessionIdAndSessionKey(String sessionId, String key); } diff --git a/backend/pium/src/main/java/com/official/pium/service/SessionGroupService.java b/backend/pium/src/main/java/com/official/pium/service/SessionGroupService.java index 038ebaf9..0991780c 100644 --- a/backend/pium/src/main/java/com/official/pium/service/SessionGroupService.java +++ b/backend/pium/src/main/java/com/official/pium/service/SessionGroupService.java @@ -45,10 +45,9 @@ private void extendsSession(SessionGroup sessionGroup, LocalDateTime currentTime @Transactional public void add(String sessionId, String key, String value) { - sessionGroupRepository.findBySessionIdAndSessionKey(sessionId, key) - .ifPresent(existsSessionGroup -> { - throw new AuthenticationException("이미 존재하는 세션입니다. sessionId: " + sessionId); - }); + if (sessionGroupRepository.existsBySessionIdAndSessionKey(sessionId, key)) { + return; + } SessionGroup sessionGroup = SessionGroup.builder() .sessionId(sessionId) diff --git a/backend/pium/src/test/java/com/official/pium/repository/SessionGroupRepositoryTest.java b/backend/pium/src/test/java/com/official/pium/repository/SessionGroupRepositoryTest.java index 411de5f5..dc83b241 100644 --- a/backend/pium/src/test/java/com/official/pium/repository/SessionGroupRepositoryTest.java +++ b/backend/pium/src/test/java/com/official/pium/repository/SessionGroupRepositoryTest.java @@ -1,16 +1,17 @@ package com.official.pium.repository; -import static org.assertj.core.api.Assertions.assertThat; - import com.official.pium.RepositoryTest; import com.official.pium.domain.SessionGroup; -import java.time.LocalDateTime; -import java.util.UUID; import org.junit.jupiter.api.DisplayNameGeneration; import org.junit.jupiter.api.DisplayNameGenerator; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.time.LocalDateTime; +import java.util.UUID; + +import static org.assertj.core.api.Assertions.assertThat; + @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) @SuppressWarnings("NonAsciiCharacters") class SessionGroupRepositoryTest extends RepositoryTest { @@ -80,4 +81,31 @@ class SessionGroupRepositoryTest extends RepositoryTest { assertThat(sessionGroupRepository.findById(savedSessionGroup.getId())).isEmpty(); } + + @Test + void 기존_세션이_존재하면_True() { + SessionGroup sessionGroup = SessionGroup.builder() + .sessionId("UUID.randomUUID().toString()") + .sessionKey("KAKAO_ID") + .sessionValue("1234546426") + .expireTime(LocalDateTime.now().plusMinutes(30)) + .build(); + SessionGroup savedSessionGroup = sessionGroupRepository.save(sessionGroup); + + boolean existsBySessionIdAndSessionKey = sessionGroupRepository.existsBySessionIdAndSessionKey( + savedSessionGroup.getSessionId(), + savedSessionGroup.getSessionKey() + ); + + assertThat(existsBySessionIdAndSessionKey).isTrue(); + } + + @Test + void 기존_세션이_존재하지않으면_False() { + boolean existsBySessionIdAndSessionKey = sessionGroupRepository.existsBySessionIdAndSessionKey( + "id", "sessionKey" + ); + + assertThat(existsBySessionIdAndSessionKey).isFalse(); + } } diff --git a/backend/pium/src/test/java/com/official/pium/service/SessionGroupServiceTest.java b/backend/pium/src/test/java/com/official/pium/service/SessionGroupServiceTest.java index 7a78ae2c..2d108a82 100644 --- a/backend/pium/src/test/java/com/official/pium/service/SessionGroupServiceTest.java +++ b/backend/pium/src/test/java/com/official/pium/service/SessionGroupServiceTest.java @@ -138,19 +138,6 @@ class 세션_그룹을_추가할_때 { assertThat(sessionGroupRepository.findBySessionIdAndSessionKey(sessionId, sessionKey)).isPresent(); } - - @Test - void 동일한_세션_그룹이_존재하면_예외가_발생한다() { - SessionGroup sessionGroup = sessionGroupSupport.builder().build(); - - assertThatThrownBy(() -> sessionGroupService.add( - sessionGroup.getSessionId(), - sessionGroup.getSessionKey(), - sessionGroup.getSessionValue() - )) - .isInstanceOf(AuthenticationException.class) - .hasMessage("이미 존재하는 세션입니다. sessionId: " + sessionGroup.getSessionId()); - } } @Nested