Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/main/java/eatda/domain/AuditingEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ public abstract class AuditingEntity {

@PrePersist
protected void onCreate() {
this.createdAt = LocalDateTime.now();
if (createdAt == null) {
this.createdAt = LocalDateTime.now();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import static org.assertj.core.api.Assertions.assertThat;

import eatda.controller.BaseControllerTest;
import eatda.domain.article.Article;
import java.time.LocalDateTime;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

Expand All @@ -14,8 +14,9 @@ class GetArticles {

@Test
void 가게의_담긴_이야기_목록을_조회할_수_있다() {
Article article1 = articleGenerator.generate("국밥의 모든 것");
Article article2 = articleGenerator.generate("순대국의 진실");
LocalDateTime startAt = LocalDateTime.of(2023, 10, 1, 0, 0);
articleGenerator.generate("국밥의 모든 것", startAt);
articleGenerator.generate("순대국의 진실", startAt.plusHours(1));

ArticlesResponse response = given()
.queryParam("size", 3)
Expand Down
8 changes: 5 additions & 3 deletions src/test/java/eatda/controller/store/CheerControllerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import eatda.domain.store.Store;
import eatda.util.ImageUtils;
import eatda.util.MappingUtils;
import java.time.LocalDateTime;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.http.HttpHeaders;
Expand Down Expand Up @@ -64,9 +65,10 @@ class GetCheers {
Member member = memberGenerator.generateRegisteredMember("nickname", "[email protected]", "123", "01011111111");
Store store1 = storeGenerator.generate("111", "서울시 노원구 월계3동 123-45");
Store store2 = storeGenerator.generate("222", "서울시 성북구 석관동 123-45");
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1);
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1);
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2);
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1, startAt);
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1, startAt.plusHours(1));
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2, startAt.plusHours(2));

CheersResponse response = given()
.when()
Expand Down
8 changes: 5 additions & 3 deletions src/test/java/eatda/controller/store/StoreControllerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import eatda.controller.BaseControllerTest;
import eatda.domain.member.Member;
import eatda.domain.store.Store;
import java.time.LocalDateTime;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.http.HttpHeaders;
Expand All @@ -18,9 +19,10 @@ class GetStores {
@Test
void 음식점_목록을_최신순으로_조회한다() {
Member member = memberGenerator.generate("111");
Store store1 = storeGenerator.generate("111", "서울 강남구 대치동 896-33");
Store store2 = storeGenerator.generate("222", "서울 강남구 대치동 896-34");
Store store3 = storeGenerator.generate("333", "서울 강남구 대치동 896-35");
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
Store store1 = storeGenerator.generate("111", "서울 강남구 대치동 896-33", startAt);
Store store2 = storeGenerator.generate("222", "서울 강남구 대치동 896-34", startAt.plusHours(1));
Store store3 = storeGenerator.generate("333", "서울 강남구 대치동 896-35", startAt.plusHours(2));
cheerGenerator.generateCommon(member, store1, "image-key-1");
cheerGenerator.generateCommon(member, store2, "image-key-2");
cheerGenerator.generateCommon(member, store3, "image-key-3");
Expand Down
8 changes: 8 additions & 0 deletions src/test/java/eatda/fixture/ArticleGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import eatda.domain.ImageKey;
import eatda.domain.article.Article;
import eatda.repository.article.ArticleRepository;
import eatda.util.DomainUtils;
import java.time.LocalDateTime;
import org.springframework.stereotype.Component;

@Component
Expand All @@ -27,6 +29,12 @@ public Article generate(String title) {
return generate(title, DEFAULT_SUBTITLE);
}

public Article generate(String title, LocalDateTime createdAt) {
Article article = generate(title, DEFAULT_SUBTITLE);
DomainUtils.setCreatedAt(article, createdAt);
return articleRepository.save(article);
}

public Article generate(String title, String subtitle) {
return generate(title, subtitle, DEFAULT_URL);
}
Expand Down
5 changes: 4 additions & 1 deletion src/test/java/eatda/fixture/CheerGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import eatda.domain.store.Cheer;
import eatda.domain.store.Store;
import eatda.repository.store.CheerRepository;
import eatda.util.DomainUtils;
import java.time.LocalDateTime;
import org.springframework.stereotype.Component;

@Component
Expand All @@ -19,8 +21,9 @@ public CheerGenerator(CheerRepository cheerRepository) {
this.cheerRepository = cheerRepository;
}

public Cheer generateAdmin(Member member, Store store) {
public Cheer generateAdmin(Member member, Store store, LocalDateTime createdAt) {
Cheer cheer = new Cheer(member, store, DEFAULT_DESCRIPTION, new ImageKey(DEFAULT_IMAGE_KEY), true);
DomainUtils.setCreatedAt(cheer, createdAt);
return cheerRepository.save(cheer);
}

Expand Down
8 changes: 8 additions & 0 deletions src/test/java/eatda/fixture/StoreGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import eatda.domain.store.Store;
import eatda.domain.store.StoreCategory;
import eatda.repository.store.StoreRepository;
import eatda.util.DomainUtils;
import java.time.LocalDateTime;
import org.springframework.stereotype.Component;

@Component
Expand Down Expand Up @@ -37,4 +39,10 @@ public Store generate(String kakaoId, String lotNumberAddress) {
.build();
return storeRepository.save(store);
}

public Store generate(String kakaoId, String lotNumberAddress, LocalDateTime createdAt) {
Store store = generate(kakaoId, lotNumberAddress);
DomainUtils.setCreatedAt(store, createdAt);
return storeRepository.save(store);
}
}
10 changes: 7 additions & 3 deletions src/test/java/eatda/service/article/ArticleServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import eatda.controller.article.ArticleResponse;
import eatda.service.BaseServiceTest;
import java.util.stream.LongStream;
import java.time.LocalDateTime;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -19,8 +19,12 @@ class GetAllArticles {

@Test
void 가게의_담긴_이야기를_최신순으로_조회할_수_있다() {
LongStream.rangeClosed(1, 5)
.forEach(i -> articleGenerator.generate("아티클 제목 " + i));
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 12, 0, 0);
articleGenerator.generate("아티클 제목 1", startAt);
articleGenerator.generate("아티클 제목 2", startAt.plusHours(1));
articleGenerator.generate("아티클 제목 3", startAt.plusHours(2));
articleGenerator.generate("아티클 제목 4", startAt.plusHours(3));
articleGenerator.generate("아티클 제목 5", startAt.plusHours(4));

var response = articleService.getAllArticles(3);

Expand Down
8 changes: 5 additions & 3 deletions src/test/java/eatda/service/store/CheerServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import eatda.exception.BusinessErrorCode;
import eatda.exception.BusinessException;
import eatda.service.BaseServiceTest;
import java.time.LocalDateTime;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
Expand Down Expand Up @@ -134,9 +135,10 @@ class GetCheers {
Member member = memberGenerator.generate("123");
Store store1 = storeGenerator.generate("123", "서울시 강남구 역삼동 123-45");
Store store2 = storeGenerator.generate("456", "서울시 성북구 석관동 123-45");
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1);
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1);
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2);
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
Cheer cheer1 = cheerGenerator.generateAdmin(member, store1, startAt);
Cheer cheer2 = cheerGenerator.generateAdmin(member, store1, startAt.plusHours(1));
Cheer cheer3 = cheerGenerator.generateAdmin(member, store2, startAt.plusHours(2));

CheersResponse response = cheerService.getCheers(2);

Expand Down
8 changes: 5 additions & 3 deletions src/test/java/eatda/service/store/StoreServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import eatda.domain.member.Member;
import eatda.domain.store.Store;
import eatda.service.BaseServiceTest;
import java.time.LocalDateTime;
import java.util.List;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
Expand All @@ -25,11 +26,12 @@ class GetStores {
@Test
void 음식점_목록을_최신순으로_조회한다() {
Member member = memberGenerator.generate("111");
Store store1 = storeGenerator.generate("농민백암순대", "서울 강남구 대치동 896-33");
LocalDateTime startAt = LocalDateTime.of(2025, 7, 26, 1, 0, 0);
Store store1 = storeGenerator.generate("농민백암순대", "서울 강남구 대치동 896-33", startAt);
Store store2 = storeGenerator.generate("석관동떡볶이", "서울 성북구 석관동 123-45", startAt.plusHours(1));
Store store3 = storeGenerator.generate("강남순대국", "서울 강남구 역삼동 678-90", startAt.plusHours(2));
cheerGenerator.generateCommon(member, store1, "image-key-1");
Store store2 = storeGenerator.generate("석관동떡볶이", "서울 성북구 석관동 123-45");
cheerGenerator.generateCommon(member, store2, "image-key-2");
Store store3 = storeGenerator.generate("강남순대국", "서울 강남구 역삼동 678-90");
cheerGenerator.generateCommon(member, store3, "image-key-3");

int size = 2;
Expand Down
21 changes: 21 additions & 0 deletions src/test/java/eatda/util/DomainUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package eatda.util;

import eatda.domain.AuditingEntity;
import java.time.LocalDateTime;
import org.springframework.test.util.ReflectionTestUtils;

public final class DomainUtils {

private static final String CREATED_AT_FIELD = "createdAt";

private DomainUtils() {
}

public static <T extends AuditingEntity> void setCreatedAt(T entity, LocalDateTime createdAt) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지네릭 좋군요 👍🏻

try {
ReflectionTestUtils.setField(entity, CREATED_AT_FIELD, createdAt);
} catch (Exception e) {
throw new IllegalArgumentException("Failed to set createdAt field", e);
}
}
}