Skip to content

Commit 59ca9d6

Browse files
committed
feat: 봉사 기록 등록 유스케이스및 구현체 생성
- 봉사 기록 등록 유스케이스 생성 - 봉사 기록 등록 구현체 생성 - 테스트 코드 작성및 검증 완
1 parent da4b11b commit 59ca9d6

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.somemore.domains.volunteerrecord.service;
2+
3+
import com.somemore.domains.volunteerrecord.domain.VolunteerRecord;
4+
import com.somemore.domains.volunteerrecord.repository.VolunteerRecordRepository;
5+
import com.somemore.domains.volunteerrecord.usecase.VolunteerRecordCreateUseCase;
6+
import lombok.RequiredArgsConstructor;
7+
import org.springframework.stereotype.Service;
8+
import org.springframework.transaction.annotation.Transactional;
9+
10+
@RequiredArgsConstructor
11+
@Service
12+
@Transactional
13+
public class VolunteerRecordCreateService implements VolunteerRecordCreateUseCase {
14+
15+
private final VolunteerRecordRepository volunteerRecordRepository;
16+
17+
public void create(VolunteerRecord volunteerRecord) {
18+
volunteerRecordRepository.save(volunteerRecord);
19+
}
20+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.somemore.domains.volunteerrecord.usecase;
2+
3+
import com.somemore.domains.volunteerrecord.domain.VolunteerRecord;
4+
5+
public interface VolunteerRecordCreateUseCase {
6+
void create(VolunteerRecord volunteerRecord);
7+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.somemore.domains.volunteerrecord.service;
2+
3+
import com.somemore.domains.volunteerrecord.domain.VolunteerRecord;
4+
import com.somemore.domains.volunteerrecord.repository.VolunteerRecordJpaRepository;
5+
import com.somemore.support.IntegrationTestSupport;
6+
import org.junit.jupiter.api.DisplayName;
7+
import org.junit.jupiter.api.Test;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
10+
import java.time.LocalDate;
11+
import java.util.UUID;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
15+
class VolunteerRecordCreateServiceTest extends IntegrationTestSupport {
16+
17+
@Autowired
18+
private VolunteerRecordCreateService volunteerRecordCreateService;
19+
20+
@Autowired
21+
private VolunteerRecordJpaRepository volunteerRecordJpaRepository;
22+
23+
@DisplayName("봉사 기록을 저장할 수 있다.")
24+
@Test
25+
void createVolunteerRecord() {
26+
//given
27+
UUID volunteerId = UUID.randomUUID();
28+
VolunteerRecord volunteerRecord = VolunteerRecord.create(
29+
volunteerId,
30+
"서울 도서관 봉사",
31+
LocalDate.now(),
32+
4
33+
);
34+
35+
//when
36+
volunteerRecordCreateService.create(volunteerRecord);
37+
38+
//then
39+
VolunteerRecord savedRecord = volunteerRecordJpaRepository.findById(volunteerRecord.getId())
40+
.orElseThrow(() -> new AssertionError("저장되지 않은 데이터"));
41+
42+
assertThat(savedRecord).isNotNull();
43+
assertThat(savedRecord.getVolunteerId()).isEqualTo(volunteerId);
44+
assertThat(savedRecord.getTitle()).isEqualTo("서울 도서관 봉사");
45+
assertThat(savedRecord.getVolunteerDate()).isEqualTo(volunteerRecord.getVolunteerDate());
46+
assertThat(savedRecord.getVolunteerHours()).isEqualTo(4);
47+
}
48+
49+
}

0 commit comments

Comments
 (0)