Skip to content

Commit e22303b

Browse files
authored
[DDING-000] 통계 조회시 파일조회 누락 에러 수정 (#302)
1 parent 30638dd commit e22303b

File tree

8 files changed

+60
-62
lines changed

8 files changed

+60
-62
lines changed

src/main/java/ddingdong/ddingdongBE/domain/formapplication/service/FacadeUserFormApplicationServiceImpl.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,19 @@ public class FacadeUserFormApplicationServiceImpl implements FacadeUserFormAppli
3232
@Override
3333
public void createFormApplication(CreateFormApplicationCommand createFormApplicationCommand) {
3434
Form form = formService.getById(createFormApplicationCommand.formId());
35-
LocalDate now = LocalDate.now();
36-
validateFormPeriod(form.getStartDate(), form.getEndDate(), now);
35+
validateFormPeriod(form);
3736
FormApplication formApplication = createFormApplicationCommand.toEntity(form);
3837
FormApplication savedFormApplication = formApplicationService.create(formApplication);
3938

4039
List<FormAnswer> formAnswers = toFormAnswers(savedFormApplication,
4140
createFormApplicationCommand.formAnswerCommands());
42-
updateFileMetaDataStatusToCoupled(formAnswers);
43-
formAnswerService.createAll(formAnswers);
41+
List<FormAnswer> createdFormAnswers = formAnswerService.createAll(formAnswers);
42+
43+
updateFileMetaDataStatusToCoupled(createdFormAnswers);
4444
}
4545

46-
private void validateFormPeriod(LocalDate startDate,
47-
LocalDate endDate, LocalDate now) {
48-
if (startDate.isAfter(now) || endDate.isBefore(now)) {
46+
private void validateFormPeriod(Form form) { // TODO : Form 내부로 옮기기
47+
if (form.getStartDate().isAfter(LocalDate.now()) || form.getEndDate().isBefore(LocalDate.now())) {
4948
throw new FormPeriodException();
5049
}
5150
}

src/main/java/ddingdong/ddingdongBE/domain/formapplication/service/FormAnswerService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
public interface FormAnswerService {
1010

11-
void createAll(List<FormAnswer> formAnswers);
11+
List<FormAnswer> createAll(List<FormAnswer> formAnswers);
1212

1313
List<FormAnswer> getAllByApplication(FormApplication formApplication);
1414

src/main/java/ddingdong/ddingdongBE/domain/formapplication/service/GeneralFormAnswerService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public class GeneralFormAnswerService implements FormAnswerService {
2020

2121
@Transactional
2222
@Override
23-
public void createAll(List<FormAnswer> formAnswers) {
24-
formAnswerRepository.saveAll(formAnswers);
23+
public List<FormAnswer> createAll(List<FormAnswer> formAnswers) {
24+
return formAnswerRepository.saveAll(formAnswers);
2525
}
2626

2727
@Override
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package ddingdong.ddingdongBE.common.fixture;
2+
3+
import ddingdong.ddingdongBE.domain.form.entity.Form;
4+
import ddingdong.ddingdongBE.domain.formapplication.entity.FormApplication;
5+
import ddingdong.ddingdongBE.domain.formapplication.entity.FormApplicationStatus;
6+
7+
public class FormApplicationFixture {
8+
9+
public static FormApplication create(String name, Form form) {
10+
return FormApplication.builder()
11+
.name(name)
12+
.studentNumber("20231234")
13+
.department("컴퓨터공학과")
14+
.phoneNumber("010-1234-5678")
15+
.email("example@email.com")
16+
.status(FormApplicationStatus.SUBMITTED) // 예시 상태, 필요에 따라 바꿔도 됨
17+
.form(form)
18+
.deletedAt(null)
19+
.build();
20+
}
21+
}

src/test/java/ddingdong/ddingdongBE/common/support/FixtureMonkeyFactory.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
package ddingdong.ddingdongBE.common.support;
22

33
import com.navercorp.fixturemonkey.FixtureMonkey;
4-
import com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext;
54
import com.navercorp.fixturemonkey.api.introspector.BuilderArbitraryIntrospector;
6-
import com.navercorp.fixturemonkey.api.jqwik.JavaArbitraryResolver;
7-
import com.navercorp.fixturemonkey.api.jqwik.JqwikPlugin;
8-
import net.jqwik.api.Arbitrary;
9-
import net.jqwik.api.arbitraries.StringArbitrary;
105

116
public class FixtureMonkeyFactory {
127

@@ -20,18 +15,6 @@ public static FixtureMonkey getNotNullBuilderIntrospectorMonkey() {
2015
return FixtureMonkey.builder()
2116
.objectIntrospector(BuilderArbitraryIntrospector.INSTANCE)
2217
.defaultNotNull(true)
23-
.plugin(
24-
new JqwikPlugin()
25-
.javaArbitraryResolver(new JavaArbitraryResolver() {
26-
@Override
27-
public Arbitrary<String> strings(StringArbitrary stringArbitrary, ArbitraryGeneratorContext context) {
28-
// if (context.findAnnotation(MaxOfLength.class).isPresent()) {
29-
// return stringArbitrary.ofMaxLength(10);
30-
// }
31-
return stringArbitrary;
32-
}
33-
})
34-
)
3518
.build();
3619
}
3720

src/test/java/ddingdong/ddingdongBE/domain/form/entity/FormStatusTest.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/test/java/ddingdong/ddingdongBE/domain/form/entity/FormTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.time.LocalDate;
56
import java.util.List;
67
import org.assertj.core.api.Assertions;
78
import org.junit.jupiter.api.BeforeEach;
@@ -135,4 +136,29 @@ void shouldUpdateExistingFields() {
135136
.contains("옵션1", "옵션2", "새 옵션");
136137
}
137138

139+
@DisplayName("현재 날짜가 기간 내 포함된다면 알맞는 FormStatus를 반환한다.")
140+
@Test
141+
void isDateInRange() {
142+
// given
143+
LocalDate now = LocalDate.now();
144+
LocalDate startDate = now.minusDays(1);
145+
LocalDate endDate = now.plusDays(1);
146+
147+
Form form = Form.builder()
148+
.title("테스트 폼")
149+
.description("설명")
150+
.startDate(startDate)
151+
.endDate(endDate)
152+
.hasInterview(false)
153+
.sections(List.of())
154+
.club(null)
155+
.formFields(List.of())
156+
.build();
157+
158+
// when
159+
FormStatus formStatus = form.getFormStatus(now);
160+
161+
// then
162+
Assertions.assertThat(formStatus).isEqualTo(FormStatus.ONGOING);
163+
}
138164
}

src/test/java/ddingdong/ddingdongBE/domain/formapplication/repository/FormApplicationRepositoryTest.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import static org.assertj.core.api.SoftAssertions.assertSoftly;
44

5-
import com.navercorp.fixturemonkey.FixtureMonkey;
5+
import ddingdong.ddingdongBE.common.fixture.FormApplicationFixture;
66
import ddingdong.ddingdongBE.common.support.DataJpaTestSupport;
7-
import ddingdong.ddingdongBE.common.support.FixtureMonkeyFactory;
87
import ddingdong.ddingdongBE.domain.filemetadata.entity.DomainType;
98
import ddingdong.ddingdongBE.domain.filemetadata.entity.FileMetaData;
109
import ddingdong.ddingdongBE.domain.filemetadata.entity.FileStatus;
@@ -29,26 +28,19 @@ class FormApplicationRepositoryTest extends DataJpaTestSupport {
2928
@Autowired
3029
private FormAnswerRepository formAnswerRepository;
3130

32-
private FixtureMonkey fixtureMonkey = FixtureMonkeyFactory.getNotNullBuilderIntrospectorMonkey();
33-
3431
@DisplayName("폼 지원서id와 FileMetaData의 entityId와 조인하여 정보를 조회한다")
3532
@Test
3633
void findAllFileApplicationInfo() {
3734
// given
38-
FormApplication formApplication = fixtureMonkey.giveMeBuilder(FormApplication.class)
39-
.set("name", "이름1")
40-
.set("form", null)
41-
.sample();
35+
FormApplication formApplication = FormApplicationFixture.create("이름1", null);
4236
FormApplication savedFormApplication = formApplicationRepository.save(formApplication);
4337
FormAnswer formAnswer = FormAnswer.builder()
4438
.formApplication(savedFormApplication)
4539
.value(List.of())
4640
.build();
4741
FormAnswer savedFormAnswer = formAnswerRepository.save(formAnswer);
48-
FormApplication formApplication2 = fixtureMonkey.giveMeBuilder(FormApplication.class)
49-
.set("name", "이름2")
50-
.set("form", null)
51-
.sample();
42+
FormApplication formApplication2 = FormApplicationFixture.create("이름2", null);
43+
5244
FormApplication savedFormApplication2 = formApplicationRepository.save(formApplication2);
5345
FormAnswer formAnswer2 = FormAnswer.builder()
5446
.formApplication(savedFormApplication2)

0 commit comments

Comments
 (0)