feat: jwtSerivce Test add

This commit is contained in:
minseokkang
2022-09-13 17:48:11 +09:00
parent 8c7dcf59e9
commit c95e1629bf
7 changed files with 55 additions and 9 deletions

View File

@@ -0,0 +1,23 @@
package com.io.realworld.DTO;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
@Getter
@AllArgsConstructor
@Builder
@JsonTypeName("user")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
public class UserSigninRequest {
@Email
private String email;
@NotBlank
private String password;
}

View File

@@ -5,7 +5,8 @@ import org.springframework.http.HttpStatus;
@Getter
public enum Error {
DUPLICATE_USER("duplicate user", HttpStatus.CONFLICT);
DUPLICATE_USER("duplicate user", HttpStatus.CONFLICT),
SIGNIN_EMAILNULL_OR_INVALID("email is blank or invalid check plz",HttpStatus.BAD_REQUEST);
private final String message;
private final HttpStatus status;

View File

@@ -1,5 +1,6 @@
package com.io.realworld.api.users;
import com.io.realworld.DTO.UserSigninRequest;
import com.io.realworld.DTO.UserSignupRequest;
import com.io.realworld.DTO.UserResponse;
import com.io.realworld.repository.User;
@@ -12,7 +13,7 @@ import javax.validation.Valid;
@RestController
@Slf4j
@RequestMapping("/api")
@RequestMapping("/api/users")
public class UserController {
@@ -27,10 +28,20 @@ public class UserController {
}
@PostMapping(value = "/users")
@PostMapping(value = "")
public UserResponse signup(@Valid @RequestBody UserSignupRequest userSignupRequest) {
User user = userService.signup(userSignupRequest);
log.info("register");
return UserResponse.builder().username(user.getUsername())
.email(user.getEmail())
.bio(user.getBio())
.image(user.getImage())
.token(jwtService.createToken(user.getEmail()))
.build();
}
@PostMapping(value = "/login")
public UserResponse signin(@Valid @RequestBody UserSigninRequest userSigninRequest){
User user = userService.signin(userSigninRequest);
return UserResponse.builder().username(user.getUsername())
.email(user.getEmail())

View File

@@ -38,11 +38,6 @@ public class User implements UserDetails {
return new User(username, email, password, "", "");
}
@Override
public String getUsername(){
return this.email;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;

View File

@@ -1,8 +1,11 @@
package com.io.realworld.service;
import com.io.realworld.DTO.UserSigninRequest;
import com.io.realworld.DTO.UserSignupRequest;
import com.io.realworld.repository.User;
public interface UserService {
User signup(UserSignupRequest userSignupRequest);
User signin(UserSigninRequest userSigninRequest);
}

View File

@@ -1,5 +1,6 @@
package com.io.realworld.service;
import com.io.realworld.DTO.UserSigninRequest;
import com.io.realworld.DTO.UserSignupRequest;
import com.io.realworld.Exception.CustomException;
import com.io.realworld.Exception.Error;
@@ -43,4 +44,11 @@ public class UserServiceImpl implements UserService {
return userRepository.findByEmail(email);
}
public User signin(UserSigninRequest userSigninRequest) {
User findUser = userRepository.findByEmail(userSigninRequest.getEmail());
if(findUser == null)
throw new CustomException(Error.SIGNIN_EMAILNULL_OR_INVALID);
return findUser;
}
}

View File

@@ -3,11 +3,13 @@ package com.io.realworld.api.users;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.io.realworld.DTO.UserSignupRequest;
import com.io.realworld.repository.User;
import com.io.realworld.service.JwtService;
import com.io.realworld.service.UserServiceImpl;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mockito;
import org.mockito.Spy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
@@ -41,6 +43,9 @@ class UserControllerTest {
@MockBean
private UserServiceImpl userService;
@MockBean
private JwtService jwtService;
@Test
@WithMockUser