-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: User도메인 을 수정하고, UserConnector를 구현한다
- Loading branch information
Showing
6 changed files
with
115 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package net.teumteum.user.domain; | ||
|
||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Embeddable; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Getter | ||
@Embeddable | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class Oauth { | ||
|
||
@Column(name = "oauth_authenticate_info", unique = true) | ||
private String oAuthAuthenticateInfo; | ||
|
||
@Column(name = "authenticated") | ||
private String authenticated; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package net.teumteum.user.domain; | ||
|
||
import java.util.Optional; | ||
|
||
public interface UserConnector { | ||
|
||
Optional<User> findUserById(Long id); | ||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/net/teumteum/user/service/UserConnectorImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package net.teumteum.user.service; | ||
|
||
import java.util.Optional; | ||
import lombok.RequiredArgsConstructor; | ||
import net.teumteum.user.domain.User; | ||
import net.teumteum.user.domain.UserConnector; | ||
import net.teumteum.user.domain.UserRepository; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
@Transactional(readOnly = true) | ||
public class UserConnectorImpl implements UserConnector { | ||
|
||
private final UserRepository userRepository; | ||
|
||
@Override | ||
public Optional<User> findUserById(Long id) { | ||
return userRepository.findById(id); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,7 +22,7 @@ public static User newUserByBuilder(UserBuilder userBuilder) { | |
userBuilder.birth, | ||
userBuilder.character, | ||
userBuilder.mannerTemperature, | ||
userBuilder.authenticated, | ||
userBuilder.oauth, | ||
userBuilder.activityArea, | ||
userBuilder.mbti, | ||
userBuilder.status, | ||
|
@@ -46,7 +46,7 @@ public static class UserBuilder { | |
@Builder.Default | ||
private int mannerTemperature = 36; | ||
@Builder.Default | ||
private String authenticated = "Kakao"; | ||
private Oauth oauth = new Oauth("[email protected]", "naver"); | ||
@Builder.Default | ||
private ActivityArea activityArea = new ActivityArea("서울", List.of("강남", "홍대")); | ||
@Builder.Default | ||
|
59 changes: 59 additions & 0 deletions
59
src/test/java/net/teumteum/user/service/UserConnectorTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package net.teumteum.user.service; | ||
|
||
import java.util.Optional; | ||
import net.teumteum.user.domain.UserConnector; | ||
import net.teumteum.user.domain.UserFixture; | ||
import net.teumteum.user.domain.UserRepository; | ||
import org.assertj.core.api.Assertions; | ||
import org.junit.jupiter.api.BeforeEach; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Nested; | ||
import org.junit.jupiter.api.Test; | ||
import org.junit.jupiter.api.extension.ExtendWith; | ||
import org.mockito.Mockito; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.boot.test.mock.mockito.MockBean; | ||
import org.springframework.test.context.ContextConfiguration; | ||
import org.springframework.test.context.junit.jupiter.SpringExtension; | ||
|
||
@ExtendWith(SpringExtension.class) | ||
@DisplayName("UserConnector 클래스의") | ||
@ContextConfiguration(classes = UserConnectorImpl.class) | ||
class UserConnectorTest { | ||
|
||
private static final Long EXIST_USER_ID = 1L; | ||
|
||
@Autowired | ||
private UserConnector userConnector; | ||
@MockBean | ||
private UserRepository userRepository; | ||
|
||
|
||
@BeforeEach | ||
void beforeEach() { | ||
Mockito.when(userRepository.findById(Mockito.anyLong())).thenReturn(Optional.empty()); | ||
Mockito.when(userRepository.findById(EXIST_USER_ID)).thenReturn(Optional.of(UserFixture.getDefaultUser())); | ||
} | ||
|
||
@Nested | ||
@DisplayName("findById 메소드는") | ||
class FindById_method { | ||
|
||
@Test | ||
@DisplayName("존재하는 user의 id가 들어오면, optional.user를 반환한다.") | ||
void Return_optional_user_if_exists_user_id() { | ||
// given | ||
var expect = Optional.of(UserFixture.getDefaultUser()); | ||
|
||
// when | ||
var result = userConnector.findUserById(EXIST_USER_ID); | ||
|
||
// then | ||
Assertions.assertThat(result) | ||
.isPresent() | ||
.usingRecursiveComparison() | ||
.isEqualTo(expect); | ||
} | ||
} | ||
|
||
} |