Skip to content

Commit

Permalink
test : 테스트 오류 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
Choon0414 committed Oct 5, 2024
1 parent 1d1fe28 commit b850ec5
Show file tree
Hide file tree
Showing 10 changed files with 97 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ record InnerCoopShop(
public static InnerCoopShop from(CoopShop coopShop) {
return new InnerCoopShop(
coopShop.getId(),
coopShop.getName().getCoopShopName(),
coopShop.getName(),
coopShop.getCoopOpens().stream()
.map(InnerCoopOpens::from)
.toList(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ public record CoopShopResponse(
public static CoopShopResponse from(CoopShop coopShop) {
return new CoopShopResponse(
coopShop.getId(),
coopShop.getName().getCoopShopName(),
coopShop.getCoopShopSemester().getSemester(),
coopShop.getName(),
coopShop.getSemester().getSemester(),
coopShop.getCoopOpens().stream()
.map(InnerCoopOpens::from)
.toList(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public record InnerCoopShop(
public static InnerCoopShop from(CoopShop coopShop) {
return new InnerCoopShop(
coopShop.getId(),
coopShop.getName().getCoopShopName(),
coopShop.getName(),
coopShop.getCoopOpens().stream()
.map(InnerCoopOpens::from)
.toList(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
import in.koreatech.koin.global.domain.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
Expand All @@ -36,12 +34,11 @@ public class CoopShop extends BaseEntity {

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "semester_id", referencedColumnName = "id", nullable = false)
private CoopShopSemester coopShopSemester;
private CoopShopSemester semester;

@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "name", nullable = false)
private CoopShopType name;
private String name;

@NotNull
@Column(name = "phone", nullable = false)
Expand All @@ -60,13 +57,13 @@ public class CoopShop extends BaseEntity {

@Builder
private CoopShop(
CoopShopSemester coopShopSemester,
CoopShopType name,
CoopShopSemester semester,
String name,
String phone,
String location,
String remarks
) {
this.coopShopSemester = coopShopSemester;
this.semester = semester;
this.name = name;
this.phone = phone;
this.location = location;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class CoopShopSemester extends BaseEntity {
@Column(name = "is_applied", columnDefinition = "TINYINT", nullable = false)
private boolean isApplied = false;

@OneToMany(mappedBy = "coopShopSemester", orphanRemoval = true, cascade = {PERSIST, REFRESH, MERGE, REMOVE},
@OneToMany(mappedBy = "semester", orphanRemoval = true, cascade = {PERSIST, REFRESH, MERGE, REMOVE},
fetch = FetchType.EAGER)
private List<CoopShop> coopShops = new ArrayList<>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,16 @@ public interface CoopShopRepository extends Repository<CoopShop, Integer> {

Optional<CoopShop> findById(Integer id);

Optional<CoopShop> findByName(CoopShopType name);
Optional<CoopShop> findByNameAndSemester_Id(String name, Integer semesterId);

default CoopShop getById(Integer id) {
return findById(id)
.orElseThrow(() -> CoopShopNotFoundException.withDetail("coopShopId : " + id));
}

default CoopShop getByName(CoopShopType name) {
return findByName(name)
.orElseThrow(() -> CoopShopNotFoundException.withDetail("coopShopName : " + name.getCoopShopName()));
default CoopShop getByNameAndSemester_Id(CoopShopType name, Integer semesterId) {
return findByNameAndSemester_Id(name.getCoopShopName(), semesterId)
.orElseThrow(() -> CoopShopNotFoundException
.withDetail("coopShopName : " + name.getCoopShopName() + ", semesterId: " + semesterId));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public boolean getIsOpened(LocalDateTime now, CoopShopType coopShopType, DiningT
DayType todayType =
(now.getDayOfWeek() == DayOfWeek.SATURDAY || now.getDayOfWeek() == DayOfWeek.SUNDAY)
? DayType.WEEKEND : DayType.WEEKDAYS;
CoopShop coopShop = coopShopRepository.getByName(coopShopType);
CoopShopSemester semester = coopShopSemesterRepository.getByIsApplied(true);
CoopShop coopShop = coopShopRepository.getByNameAndSemester_Id(coopShopType, semester.getId());
CoopOpen open = coopOpenRepository
.getByCoopShopAndTypeAndDayOfWeek(coopShop, type.getDiningName(), todayType);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
insert into `coop_shop_semester` (`semester`, `from_date`, `to_date`, `is_applied`)
values ('24-2학기', '2024-09-02', '2024-12-20', 1);

update `coop_shop` set `semester_id` = 1, `name` = 'CAFETERIA' where `id` = 1;

update `coop_opens` set `day_of_week` = 'WEEKDAYS' where `id` = 1;
update `coop_opens` set `day_of_week` = 'WEEKDAYS' where `id` = 2;
update `coop_opens` set `day_of_week` = 'WEEKDAYS' where `id` = 3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class DiningApiTest extends AcceptanceTest {
@BeforeAll
void setUp() {
clear();
coopShopFixture.현재학기();
coop_준기 = userFixture.준기_영양사().getUser();
token_준기 = userFixture.getToken(coop_준기);
owner_현수 = userFixture.현수_사장님().getUser();
Expand Down
86 changes: 79 additions & 7 deletions src/test/java/in/koreatech/koin/fixture/CoopShopFixture.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package in.koreatech.koin.fixture;

import static in.koreatech.koin.domain.coopshop.model.CoopShopType.CAFETERIA;
import static in.koreatech.koin.domain.coopshop.model.CoopShopType.LAUNDRY;

import java.time.LocalDate;
import java.util.List;

Expand All @@ -8,7 +11,6 @@
import in.koreatech.koin.domain.coopshop.model.CoopOpen;
import in.koreatech.koin.domain.coopshop.model.CoopShop;
import in.koreatech.koin.domain.coopshop.model.CoopShopSemester;
import in.koreatech.koin.domain.coopshop.model.CoopShopType;
import in.koreatech.koin.domain.coopshop.model.DayType;
import in.koreatech.koin.domain.coopshop.repository.CoopShopRepository;
import in.koreatech.koin.domain.coopshop.repository.CoopShopSemesterRepository;
Expand Down Expand Up @@ -39,11 +41,11 @@ public CoopShopFixture(
coopShopSemester.updateApply(true);

var cafeteria = CoopShop.builder()
.name(CoopShopType.CAFETERIA)
.name(CAFETERIA.getCoopShopName())
.location("학생회관 1층")
.phone("041-000-0000")
.remarks("공휴일 휴무")
.coopShopSemester(coopShopSemester)
.semester(coopShopSemester)
.build();

cafeteria.getCoopOpens().addAll(
Expand All @@ -59,11 +61,11 @@ public CoopShopFixture(
);

var laundry = CoopShop.builder()
.name(CoopShopType.LAUNDRY)
.name(LAUNDRY.getCoopShopName())
.location("학생회관 2층")
.phone("041-000-0000")
.remarks("연중무휴")
.coopShopSemester(coopShopSemester)
.semester(coopShopSemester)
.build();

coopShopRepository.save(cafeteria);
Expand All @@ -81,11 +83,11 @@ public CoopShopFixture(
);

var coopShop = CoopShop.builder()
.name(CoopShopType.LAUNDRY)
.name(LAUNDRY.getCoopShopName())
.location("학생회관 2층")
.phone("041-000-0000")
.remarks("연중무휴")
.coopShopSemester(coopShopSemester)
.semester(coopShopSemester)
.build();

coopShop.getCoopOpens().addAll(
Expand All @@ -102,4 +104,74 @@ public CoopShopFixture(
coopShopSemester.getCoopShops().addAll(List.of(coopShop));
return coopShopSemesterRepository.save(coopShopSemester);
}

public CoopShopSemester 현재학기() {
var coopShopSemester = coopShopSemesterRepository.save(
CoopShopSemester.builder()
.semester("현재 학기")
.fromDate(LocalDate.of(2023, 12, 21))
.toDate(LocalDate.of(2024, 2, 28))
.build()
);

coopShopSemester.updateApply(true);

var coopShop = CoopShop.builder()
.name(CAFETERIA.getCoopShopName())
.location("학생회관 2층")
.phone("041-000-0000")
.remarks("연중무휴")
.semester(coopShopSemester)
.build();

coopShop.getCoopOpens().addAll(
List.of(
CoopOpen.builder()
.type("아침")
.openTime("08:30")
.closeTime("09:30")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKDAYS)
.build(),
CoopOpen.builder()
.type("점심")
.openTime("11:30")
.closeTime("13:30")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKDAYS)
.build(),
CoopOpen.builder()
.type("저녁")
.openTime("17:30")
.closeTime("18:30")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKDAYS)
.build(),
CoopOpen.builder()
.type("아침")
.openTime("미운영")
.closeTime("미운영")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKEND)
.build(),
CoopOpen.builder()
.type("점심")
.openTime("11:30")
.closeTime("13:30")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKEND)
.build(),
CoopOpen.builder()
.type("저녁")
.openTime("17:30")
.closeTime("18:30")
.coopShop(coopShop)
.dayOfWeek(DayType.WEEKEND)
.build()
)
);

coopShopSemester.getCoopShops().addAll(List.of(coopShop));
return coopShopSemesterRepository.save(coopShopSemester);
}
}

0 comments on commit b850ec5

Please sign in to comment.