Skip to content

Commit

Permalink
Merge pull request #37 from DKU-Dgaja/choer(#35)-redis-setting
Browse files Browse the repository at this point in the history
[BE] chore(#35): Redis setting
  • Loading branch information
jusung-c authored Jan 20, 2024
2 parents 199c59c + 9e1024e commit 57002f9
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 7 deletions.
3 changes: 3 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ dependencies {

// Webflux
implementation 'org.springframework.boot:spring-boot-starter-webflux'

// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
}

tasks.named('test') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


import java.util.HashMap;
import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.example.backend.domain.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;

@Configuration
@EnableRedisRepositories
public class RedisConfig {

@Value("${spring.data.redis.host}")
private String host;

@Value("${spring.data.redis.port}")
private int port;

// Bean으로 등록해 Redis 연결 - Lettuce 사용
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(host, port);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.example.backend.domain.define.test;

import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;

import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
@RedisHash(value = "test", timeToLive = 60 * 3) // 3분
public class RedisTest {
@Id
private Long id;

private String description;

@Builder
public RedisTest(String description) {
this.description = description;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.backend.domain.define.test.repository;

import com.example.backend.domain.define.test.RedisTest;
import org.springframework.data.repository.CrudRepository;

public interface RedisTestRepository extends CrudRepository<RedisTest, Long> {
}
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
package com.example.backend.auth.api.service.jwt;

import com.example.backend.auth.TestConfig;
import com.example.backend.common.exception.ExceptionMessage;
import com.example.backend.common.exception.jwt.JwtException;
import com.example.backend.domain.define.user.User;
import com.example.backend.domain.define.user.constant.UserRole;
import com.example.backend.domain.define.user.repository.UserRepository;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Date;
import java.util.HashMap;

import static org.junit.jupiter.api.Assertions.*;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.*;

class JwtServiceTest extends TestConfig {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;

import java.net.URI;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.example.backend.domain.redis.define.test.repository;

import com.example.backend.auth.TestConfig;
import com.example.backend.domain.define.test.RedisTest;
import com.example.backend.domain.define.test.repository.RedisTestRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import static org.assertj.core.api.Assertions.assertThat;


class RedisTestRepositoryTest extends TestConfig {
@Autowired
private RedisTestRepository redisTestRepository;

@AfterEach
void tearDown() {
// redisTestRepository.deleteAll();
}

@Test
@DisplayName("Redis 저장 & 조회 테스트")
void redisSaveTest() {
// given
RedisTest savedEntity = redisTestRepository.save(RedisTest.builder()
.description("테스트 입니다.")
.build());

// when
RedisTest findEntity = redisTestRepository.findById(savedEntity.getId()).get();

// then
assertThat(findEntity).isNotNull();
assertThat(findEntity.getDescription()).isEqualTo("테스트 입니다.");
}
}

0 comments on commit 57002f9

Please sign in to comment.