-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMemberService
More file actions
129 lines (93 loc) · 2.45 KB
/
MemberService
File metadata and controls
129 lines (93 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
pakage hello.core.member;
public enum Grade {
BASIC,
VIP
}
// Grade.java
pakage hello.core.member;
public class Member {
private Long id;
private String name;
private Grade grade;
public Member(Long id, String name, Grade grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
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;
}
}
//Member.java
package hello.core.member;
public interface MemberService {
void join(Member member);
Member findMember(Long memberId);
}
// MemberService.java
package hello.core.member;
public interface MemberRepository {
void save(Member member);
Member findById(Long memberId);
}
// MemberRepository.java
package hello.core.member;
import java.util.HashMap;
import java.util.Map;
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
@Override
public void save(Member member) {
store.put(member.getId(), member);
}
@Override
public Member findById(Long memberId) {
return store.get(memberId);
}
}
// MemoryMemberRepository.java
package hello.core.member;
public class MemberServiceImpl implements MemberService {
private final MemberRepository memberRepository = new MemoryMemberRepository();
@Override
public void join(Member member) {
memberRepository.save(member);
}
@Override
public Member findMember(Long memberId) {
return memberRepository.findById(memberId);
}
}
// MemberServiceImpl.java
package hello.core.member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class MemberServiceTest {
MemberService memberService = new MemberServiceImpl();
@Test
void join(){
//given ~가 주어졌을 때
Member member = new Member(1L, "memberA", Grade.VIP);
//when ~이렇게 실행했을 때
memberService.join(member);
Member findMember = memberService.findMember(1L);
//then 결과가 이렇다.
Assertions.assertThat(member).isEqualTo(findMember);
}
}
// MemberServiceTest.java