-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathLabAdminFacadeTest.java
More file actions
112 lines (95 loc) · 3.26 KB
/
LabAdminFacadeTest.java
File metadata and controls
112 lines (95 loc) · 3.26 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
package lab.application;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import kgu.developers.admin.lab.application.LabAdminFacade;
import kgu.developers.admin.lab.presentation.request.LabRequest;
import kgu.developers.admin.lab.presentation.response.LabPersistResponse;
import kgu.developers.domain.file.application.query.FileQueryService;
import kgu.developers.domain.file.domain.FileEntity;
import kgu.developers.domain.lab.application.command.LabCommandService;
import kgu.developers.domain.lab.application.query.LabQueryService;
import kgu.developers.domain.lab.domain.Lab;
import mock.repository.FakeFileRepository;
import mock.repository.FakeLabRepository;
public class LabAdminFacadeTest {
private LabAdminFacade labAdminFacade;
private FakeLabRepository fakeLabRepository;
private static final Long TEST_FILE_ID = 1L;
@BeforeEach
public void init() {
FakeFileRepository fakeFileRepository = new FakeFileRepository();
fakeLabRepository = new FakeLabRepository();
labAdminFacade = new LabAdminFacade(
new LabCommandService(new FileQueryService(fakeFileRepository), fakeLabRepository),
new LabQueryService(fakeLabRepository)
);
FileEntity testFile = fakeFileRepository.save(FileEntity.builder().id(TEST_FILE_ID).build());
fakeLabRepository.save(Lab.builder()
.name("Lab A")
.loc("8500")
.site("http://labA.kyonggi.ac.kr")
.advisor("박민준")
.imgFile(testFile)
.build()
);
}
@Test
@DisplayName("createLab은 Lab을 생성한다")
public void createLab_Success() {
// given
LabRequest request = LabRequest.builder()
.name("Lab B")
.loc("8501")
.site("http://labB.kyonggi.ac.kr")
.advisor("박교수")
.build();
// when
LabPersistResponse response = labAdminFacade.createLab(TEST_FILE_ID, request);
// then
Lab lab = fakeLabRepository.findById(response.id()).orElse(null);
assertNotNull(lab);
assertEquals(2, lab.getId());
assertEquals(request.name(), lab.getName());
assertEquals(request.loc(), lab.getLoc());
assertEquals(request.site(), lab.getSite());
assertEquals(request.advisor(), lab.getAdvisor());
}
@Test
@DisplayName("updateLab은 Lab을 수정한다")
public void updateLab_Success() {
// given
Long labId = 1L;
LabRequest request = LabRequest.builder()
.name("Lab B")
.loc("8501")
.site("http://labB.kyonggi.ac.kr")
.advisor("박교수")
.build();
// when
labAdminFacade.updateLab(labId, request);
// then
Lab lab = fakeLabRepository.findById(labId).orElse(null);
assertNotNull(lab);
assertEquals(1L, lab.getId());
assertEquals(request.name(), lab.getName());
assertEquals(request.loc(), lab.getLoc());
assertEquals(request.site(), lab.getSite());
assertEquals(request.advisor(), lab.getAdvisor());
}
@Test
@DisplayName("deleteLab은 Lab을 삭제한다")
public void deleteLab_Success() {
// given
Long labId = 1L;
// when
labAdminFacade.deleteLab(labId);
// then
Optional<Lab> deletedLab = fakeLabRepository.findById(labId);
assertThat(deletedLab).isEmpty();
}
}