1+ package umc .th .juinjang .api .limjang .service ;
2+
3+ import static org .assertj .core .api .Assertions .*;
4+
5+ import org .junit .jupiter .api .Test ;
6+ import org .springframework .beans .factory .annotation .Autowired ;
7+
8+ import umc .th .juinjang .api .IntegrationTestSupport ;
9+ import umc .th .juinjang .api .limjang .controller .request .NoteInitRequest ;
10+ import umc .th .juinjang .api .limjang .service .response .NotePostResponse ;
11+ import umc .th .juinjang .domain .limjang .model .Limjang ;
12+ import umc .th .juinjang .domain .limjang .model .LimjangPriceType ;
13+ import umc .th .juinjang .domain .limjang .model .LimjangPropertyType ;
14+ import umc .th .juinjang .domain .limjang .model .LimjangPurpose ;
15+ import umc .th .juinjang .domain .limjang .repository .LimjangRepository ;
16+ import umc .th .juinjang .domain .member .model .Member ;
17+ import umc .th .juinjang .domain .member .repository .MemberRepository ;
18+
19+ class NoteCommandServiceV2Test extends IntegrationTestSupport {
20+
21+ Member firstMember ;
22+ Member secondMember ;
23+ Member thirdMember ;
24+
25+ @ Autowired
26+ private MemberRepository memberRepository ;
27+
28+ @ Autowired
29+ private NoteCommandServiceV2 noteCommandServiceV2 ;
30+
31+ @ Autowired
32+ private LimjangRepository limjangRepository ;
33+
34+ private void flushAndTestUsers () {
35+ memberRepository .deleteAll ();
36+
37+ // 첫 번째 멤버 (Apple)
38+ firstMember = Member .createAppleMember (
39+ "first@apple.com" ,
40+ "apple_sub_001" ,
41+ "첫번째유저" ,
42+ "1.0.0"
43+ );
44+ memberRepository .save (firstMember );
45+
46+ // 두 번째 멤버 (Kakao)
47+ secondMember = Member .createKakaoMember (
48+ "second@kakao.com" ,
49+ 12345L ,
50+ "두번째유저" ,
51+ "1.0.0"
52+ );
53+ memberRepository .save (secondMember );
54+
55+ // 세 번째 멤버 (Apple)
56+ thirdMember = Member .createAppleMember (
57+ "third@apple.com" ,
58+ "apple_sub_002" ,
59+ "세번째유저" ,
60+ "1.0.0"
61+ );
62+ memberRepository .save (thirdMember );
63+
64+ memberRepository .flush ();
65+ }
66+
67+ @ Test
68+ void initNote () {
69+ flushAndTestUsers ();
70+
71+ NoteInitRequest request = new NoteInitRequest (
72+ LimjangPurpose .RESIDENTIAL_PURPOSE ,
73+ LimjangPropertyType .APARTMENT ,
74+ LimjangPriceType .MONTHLY_RENT ,
75+ "50000" ,
76+ "4000"
77+ );
78+ NotePostResponse response = noteCommandServiceV2 .initNote (request , firstMember );
79+ Long createNoteId = response .noteId ();
80+
81+ Limjang note = limjangRepository .findById (createNoteId ).orElseThrow ();
82+ assertThat (note ).extracting (
83+ "memberId.memberId" ,
84+ "purpose" ,
85+ "propertyType" ,
86+ "priceType" ,
87+ "deleted" ,
88+ "recordCount"
89+ ).containsExactly (
90+ firstMember .getMemberId (),
91+ LimjangPurpose .RESIDENTIAL_PURPOSE ,
92+ LimjangPropertyType .APARTMENT ,
93+ LimjangPriceType .MONTHLY_RENT ,
94+ false ,
95+ 0
96+ );
97+ assertThat (note ).extracting ("limjangPrice" ).isNotNull ();
98+ assertThat (note ).extracting ("nickname" ).satisfies (n -> assertThat ((String )n ).endsWith (" 매물노트" ));
99+ }
100+ }
0 commit comments