Skip to content

Commit

Permalink
fix: 로그인 시 세션이 존재할 경우 정상 반환
Browse files Browse the repository at this point in the history
  • Loading branch information
Choi-JJunho committed Oct 19, 2023
1 parent 6575ffb commit 7c52f41
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ public interface SessionGroupRepository extends JpaRepository<SessionGroup, Long
Optional<SessionGroup> findBySessionIdAndSessionKey(String sessionId, String sessionKey);

void deleteBySessionValue(String sessionValue);

boolean existsBySessionIdAndSessionKey(String sessionId, String key);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 7c52f41

Please sign in to comment.