본 게시글은 김영한님의 스프링 핵심 원리 기본편을 정리한 글입니다.
public enum Grade {
Basic,
VIP;
}
public class Member {
private Long memberId;
private String name;
private Grade grade;
public Member(Long memberId, String name, Grade grade) {
this.memberId = memberId;
this.name = name;
this.grade = grade;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
}
public interface MemberRepository {
void save(Member member);
Member findById(Long memberId);
}
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
@Override
public void save(Member member) {
store.put(member.getMemberId(), member);
}
@Override
public Member findById(Long memberId) {
return store.get(memberId);
}
}
public interface MemberService {
void join(Member member);
Member findMember(Long memberId);
}
public class MemberServiceImpl implements MemberService{
MemberRepository memberRepository = new MemoryMemberRepository();
@Override
public void join(Member member) {
memberRepository.save(member);
}
@Override
public Member findMember(Long memberId) {
return memberRepository.findById(memberId);
}
}
public class memberTest {
MemberService memberService = new MemberService();
@Test
void 회원가입(){
//given
//when
Member member = new Member(1L, "memberA", Grade.VIP);
memberService.join(member);
Member findMember= memberService.findMember(1L);
//then
Assertions.assertThat(findMember).isEqualTo(member);
}
}