feat: jwtSerivce Test add
This commit is contained in:
23
src/main/java/com/io/realworld/DTO/UserSigninRequest.java
Normal file
23
src/main/java/com/io/realworld/DTO/UserSigninRequest.java
Normal 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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user