forked from solid-connection/solid-connect-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApplicationFixtureBuilder.java
More file actions
86 lines (72 loc) · 2.88 KB
/
ApplicationFixtureBuilder.java
File metadata and controls
86 lines (72 loc) · 2.88 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
package com.example.solidconnection.application.fixture;
import com.example.solidconnection.application.domain.Application;
import com.example.solidconnection.application.domain.Gpa;
import com.example.solidconnection.application.domain.LanguageTest;
import com.example.solidconnection.application.domain.VerifyStatus;
import com.example.solidconnection.application.repository.ApplicationRepository;
import com.example.solidconnection.siteuser.domain.SiteUser;
import com.example.solidconnection.university.domain.UniversityInfoForApply;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.test.context.TestComponent;
@TestComponent
@RequiredArgsConstructor
public class ApplicationFixtureBuilder {
private final ApplicationRepository applicationRepository;
private Gpa gpa;
private LanguageTest languageTest;
private UniversityInfoForApply firstChoiceUniversity;
private UniversityInfoForApply secondChoiceUniversity;
private UniversityInfoForApply thirdChoiceUniversity;
private SiteUser siteUser;
private String nicknameForApply;
private String term;
public ApplicationFixtureBuilder application() {
return new ApplicationFixtureBuilder(applicationRepository);
}
public ApplicationFixtureBuilder gpa(Gpa gpa) {
this.gpa = gpa;
return this;
}
public ApplicationFixtureBuilder languageTest(LanguageTest languageTest) {
this.languageTest = languageTest;
return this;
}
public ApplicationFixtureBuilder firstChoiceUniversity(UniversityInfoForApply firstChoiceUniversity) {
this.firstChoiceUniversity = firstChoiceUniversity;
return this;
}
public ApplicationFixtureBuilder secondChoiceUniversity(UniversityInfoForApply secondChoiceUniversity) {
this.secondChoiceUniversity = secondChoiceUniversity;
return this;
}
public ApplicationFixtureBuilder thirdChoiceUniversity(UniversityInfoForApply thirdChoiceUniversity) {
this.thirdChoiceUniversity = thirdChoiceUniversity;
return this;
}
public ApplicationFixtureBuilder siteUser(SiteUser siteUser) {
this.siteUser = siteUser;
return this;
}
public ApplicationFixtureBuilder nicknameForApply(String nicknameForApply) {
this.nicknameForApply = nicknameForApply;
return this;
}
public ApplicationFixtureBuilder term(String term) {
this.term = term;
return this;
}
public Application create() {
Application application = new Application(
siteUser,
gpa,
languageTest,
term,
firstChoiceUniversity,
secondChoiceUniversity,
thirdChoiceUniversity,
nicknameForApply
);
application.setVerifyStatus(VerifyStatus.APPROVED);
return applicationRepository.save(application);
}
}