Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'junit:junit:4.13.1'
testImplementation 'org.projectlombok:lombok:1.18.28'
testImplementation 'org.projectlombok:lombok:1.18.28'
runtimeOnly 'com.h2database:h2'
implementation 'org.postgresql:postgresql'
compileOnly 'org.projectlombok:lombok'
Expand Down Expand Up @@ -81,6 +84,12 @@ dependencies {
// implementation "org.flywaydb:flyway-core"
// implementation "org.springframework.boot:spring-boot-starter"

// testcontainers
testImplementation "org.testcontainers:testcontainers:1.17.2"
testImplementation "org.testcontainers:junit-jupiter:1.17.2"
testImplementation "org.testcontainers:postgresql:1.17.6"


}

tasks.named('test') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.uspray.uspray.DTO.auth.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class FindIdDto {

@Schema(example = "이름")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.uspray.uspray.DTO.auth.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class FindPwDTO {

@Schema(example = "test")
String userId;
@Schema(example = "01012345678")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.uspray.uspray.DTO.auth.request;

import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;

import javax.validation.constraints.NotBlank;

@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class MemberLoginRequestDto {

@NotBlank
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,21 @@
import com.uspray.uspray.Enums.Authority;
import com.uspray.uspray.domain.Member;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;
import org.springframework.security.crypto.password.PasswordEncoder;

import javax.validation.constraints.NotBlank;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "회원가입 요청")
@Builder
public class MemberRequestDto {

@NotBlank
Expand All @@ -28,6 +33,7 @@ public class MemberRequestDto {
private String name;

@NotBlank
@Length(min = 11, max = 11)
@Schema(description = "전화번호", example = "01012345678")
private String phone;

Expand All @@ -37,15 +43,16 @@ public class MemberRequestDto {
@Schema(description = "성별", example = "female")
private String gender;


public Member toMember(PasswordEncoder passwordEncoder) {
return Member.builder()
.userId(userId)
.password(passwordEncoder.encode(password))
.name(name)
.phone(phone)
.birth(birth)
.gender(gender)
.authority(Authority.ROLE_USER)
.build();
.userId(userId)
.password(passwordEncoder.encode(password))
.name(name)
.phone(phone)
.birth(birth)
.gender(gender)
.authority(Authority.ROLE_USER)
.build();
}
}
10 changes: 7 additions & 3 deletions src/main/java/com/uspray/uspray/controller/AuthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public class AuthController {
private final AuthService authService;

@PostMapping("/signup")
@Operation(summary = "회원가입")
@ApiResponse(
responseCode = "201",
description = "회원가입 성공",
Expand Down Expand Up @@ -103,7 +104,8 @@ public ApiResponseDto<?> changePw(@RequestBody ChangePwDto changePwDto) {
@GetMapping("/name")
@Operation(summary = "회원 이름 조회")
@SecurityRequirement(name = "JWT Auth")
public ApiResponseDto<MemberNameResponseDto> getName(@Parameter(hidden = true) @AuthenticationPrincipal User user) {
public ApiResponseDto<MemberNameResponseDto> getName(
@Parameter(hidden = true) @AuthenticationPrincipal User user) {
return ApiResponseDto.success(SuccessStatus.GET_USER_NAME_SUCCESS,
authService.getMemberName(user.getUsername()));
}
Expand All @@ -129,7 +131,9 @@ public ApiResponseDto<DupCheckResponseDto> dupCheck(@PathVariable("userId") Stri
@GetMapping("/login-check")
@Operation(summary = "사용한 로그인 방식 체크(일반, 소셜)")
@SecurityRequirement(name = "JWT Auth")
public ApiResponseDto<LoginTypeResponseDto> loginCheck (@Parameter(hidden = true) @AuthenticationPrincipal User user) {
return ApiResponseDto.success(SuccessStatus.LOGIN_CHECK_SUCCESS, authService.loginCheck(user.getUsername()));
public ApiResponseDto<LoginTypeResponseDto> loginCheck(
@Parameter(hidden = true) @AuthenticationPrincipal User user) {
return ApiResponseDto.success(SuccessStatus.LOGIN_CHECK_SUCCESS,
authService.loginCheck(user.getUsername()));
}
}
2 changes: 0 additions & 2 deletions src/main/java/com/uspray/uspray/service/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ public class AuthService {

@Transactional
public MemberResponseDto signup(MemberRequestDto memberRequestDto) {
// 핸드폰번호가 존재하거나 아이디가 존재하면 에러
// 핸드폰 번호 또는 아이디가 이미 존재하는지 확인
if (memberRepository.existsByUserId(memberRequestDto.getUserId())) {
throw new NotFoundException(ErrorStatus.ALREADY_EXIST_ID_EXCEPTION,
ErrorStatus.ALREADY_EXIST_ID_EXCEPTION.getMessage());
Expand Down
11 changes: 7 additions & 4 deletions src/test/java/com/uspray/uspray/UsprayApplicationTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;

//@SpringBootTest
@SpringBootTest
@ActiveProfiles("test")
//@Testcontainers
class UsprayApplicationTests {

@Test
void contextLoads() {
}
@Test
void contextLoads() {
}

}
43 changes: 43 additions & 0 deletions src/test/java/com/uspray/uspray/common/MemberTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.uspray.uspray.common;

import com.uspray.uspray.domain.Member;
import com.uspray.uspray.infrastructure.MemberRepository;
import com.uspray.uspray.service.AuthService;
import com.uspray.uspray.service.MemberService;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.transaction.annotation.Transactional;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Transactional
@ActiveProfiles("test")
public abstract class MemberTest {

@Autowired
protected MemberService memberService;
@Autowired
protected AuthService authService;
@Autowired
protected MemberRepository memberRepository;

@BeforeEach
void setUp() {
Member member = memberRepository.save(Member.builder()
.userId("leesunshin")
.password("test")
.name("이순신")
.phone("01011111111")
.gender("female")
.build());

Member member2 = memberRepository.save(Member.builder()
.userId("kimyushin")
.password("test2")
.name("김유신")
.phone("01022222222")
.gender("male")
.build());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.uspray.uspray.repository;

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

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

public class MemberRepositoryTest extends RepositoryTest {

@Test
@DisplayName("회원 아이디로 조회 시 존재하지 않는 아이디일 경우 예외를 던진다.")
void existsByUserId() {
// Given
String userId = "leesunshin";
String notExistUserId = "unknown";

// When
boolean existsByUserId = memberRepository.existsByUserId(userId);
boolean notExistsByUserId = memberRepository.existsByUserId(notExistUserId);

// Then
assertThat(existsByUserId).isTrue();
assertThat(notExistsByUserId).isFalse();
}

}
34 changes: 34 additions & 0 deletions src/test/java/com/uspray/uspray/repository/RepositoryTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.uspray.uspray.repository;

import com.uspray.uspray.domain.Member;
import com.uspray.uspray.infrastructure.CategoryRepository;
import com.uspray.uspray.infrastructure.MemberRepository;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.transaction.annotation.Transactional;

//@DataJpaTest
@Transactional
@SpringBootTest
@ActiveProfiles("test")
public abstract class RepositoryTest {

@Autowired
protected MemberRepository memberRepository;

@Autowired
protected CategoryRepository categoryRepository;

@BeforeEach
void userSetup() {
Member member = memberRepository.save(Member.builder()
.userId("leesunshin")
.password("test")
.name("이순신")
.phone("01011111111")
.build());
}

}
Loading