From f144428dd580353bff5b39da3a136b5f987a4d9a Mon Sep 17 00:00:00 2001 From: waterricecake Date: Thu, 27 Jul 2023 20:50:11 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EB=AA=85=20=EB=B0=8F=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9C=84?= =?UTF-8?q?=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/hanglog/expense/Currency.java | 41 ------------------- .../{Currencies.java => domain/Currency.java} | 9 ++-- .../hanglog/expense/{ => domain}/Expense.java | 2 +- .../domain/repository/CurrencyRepository.java | 11 +++++ .../repository/ExpenseRepository.java | 4 +- .../expense/domain/type/CurrencyCodeType.java | 39 ++++++++++++++++++ .../response/CategoriesInExpenseResponse.java | 11 ++--- .../response/CategoryInExpenseResponse.java | 21 ---------- ...sponse.java => CityInExpenseResponse.java} | 6 +-- .../response/CurrencyInExpenseResponse.java | 10 ++--- .../dto/response/ExpenseGetResponse.java | 10 ++--- .../dto/response/ExpenseInItemResponse.java | 7 ++-- .../dto/response/RatesInExpenseResponse.java | 8 ++-- .../repository/CurrenciesRepository.java | 11 ----- .../expense/service/ExpenseService.java | 30 +++++++------- .../main/java/hanglog/trip/domain/Item.java | 2 +- .../trip/dto/response/ExpenseResponse.java | 2 +- .../trip/dto/response/ItemResponse.java | 2 +- .../hanglog/trip/service/ItemService.java | 2 +- .../expense/fixture/CurrenciesFixture.java | 4 +- .../presentation/ExpenseControllerTest.java | 4 +- .../expense/service/ExpenseServiceTest.java | 28 ++++++------- .../hanglog/trip/fixture/ExpenseFixture.java | 2 +- 23 files changed, 123 insertions(+), 143 deletions(-) delete mode 100644 backend/src/main/java/hanglog/expense/Currency.java rename backend/src/main/java/hanglog/expense/{Currencies.java => domain/Currency.java} (85%) rename backend/src/main/java/hanglog/expense/{ => domain}/Expense.java (98%) create mode 100644 backend/src/main/java/hanglog/expense/domain/repository/CurrencyRepository.java rename backend/src/main/java/hanglog/expense/{ => domain}/repository/ExpenseRepository.java (63%) create mode 100644 backend/src/main/java/hanglog/expense/domain/type/CurrencyCodeType.java delete mode 100644 backend/src/main/java/hanglog/expense/dto/response/CategoryInExpenseResponse.java rename backend/src/main/java/hanglog/expense/dto/response/{CitiesInExpenseResponse.java => CityInExpenseResponse.java} (72%) delete mode 100644 backend/src/main/java/hanglog/expense/repository/CurrenciesRepository.java diff --git a/backend/src/main/java/hanglog/expense/Currency.java b/backend/src/main/java/hanglog/expense/Currency.java deleted file mode 100644 index 8dd353c6b..000000000 --- a/backend/src/main/java/hanglog/expense/Currency.java +++ /dev/null @@ -1,41 +0,0 @@ -package hanglog.expense; - -import static hanglog.global.exception.ExceptionCode.INVALID_CURRENCY; - -import hanglog.global.exception.InvalidDomainException; -import java.util.Arrays; -import java.util.function.Function; -import lombok.Getter; - -@Getter -public enum Currency { - - usd("usd", Currencies::getUsd), - eur("eur", Currencies::getEur), - gbp("gbp", Currencies::getGbp), - jpy("jpy", Currencies::getUnitRateOfJpy), - cny("cny", Currencies::getCny), - chf("chf", Currencies::getChf), - sgd("sgd", Currencies::getSgd), - thb("thb", Currencies::getThb), - hkd("hkd", Currencies::getHkd), - krw("krw", Currencies::getKrw); - private final String currency; - private final Function getRate; - - Currency(final String currency, final Function getRate) { - this.currency = currency; - this.getRate = getRate; - } - - public static double mappingCurrency(final String currency, final Currencies currencies) { - return Arrays.stream(values()) - .filter(value -> value.is(currency.toLowerCase())) - .findAny().orElseThrow(() -> new InvalidDomainException(INVALID_CURRENCY)) - .getRate.apply(currencies); - } - - private boolean is(final String currency) { - return this.currency.equals(currency); - } -} diff --git a/backend/src/main/java/hanglog/expense/Currencies.java b/backend/src/main/java/hanglog/expense/domain/Currency.java similarity index 85% rename from backend/src/main/java/hanglog/expense/Currencies.java rename to backend/src/main/java/hanglog/expense/domain/Currency.java index 4d29b2834..29845f005 100644 --- a/backend/src/main/java/hanglog/expense/Currencies.java +++ b/backend/src/main/java/hanglog/expense/domain/Currency.java @@ -1,4 +1,4 @@ -package hanglog.expense; +package hanglog.expense.domain; import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; @@ -16,7 +16,7 @@ @Getter @AllArgsConstructor @NoArgsConstructor(access = PROTECTED) -public class Currencies { +public class Currency { @Id @GeneratedValue(strategy = IDENTITY) @@ -54,8 +54,9 @@ public class Currencies { @Column(nullable = false) private Double krw; - public static Currencies ofDefault() { - return new Currencies(); + // TODO : 추후 currency 데이터 입력 후 default 값 생성시 삭제 + public static Currency ofDefault() { + return new Currency(); } public double getUnitRateOfJpy() { diff --git a/backend/src/main/java/hanglog/expense/Expense.java b/backend/src/main/java/hanglog/expense/domain/Expense.java similarity index 98% rename from backend/src/main/java/hanglog/expense/Expense.java rename to backend/src/main/java/hanglog/expense/domain/Expense.java index 127a6d20b..ec2ed15b0 100644 --- a/backend/src/main/java/hanglog/expense/Expense.java +++ b/backend/src/main/java/hanglog/expense/domain/Expense.java @@ -1,4 +1,4 @@ -package hanglog.expense; +package hanglog.expense.domain; import static jakarta.persistence.FetchType.LAZY; import static jakarta.persistence.GenerationType.IDENTITY; diff --git a/backend/src/main/java/hanglog/expense/domain/repository/CurrencyRepository.java b/backend/src/main/java/hanglog/expense/domain/repository/CurrencyRepository.java new file mode 100644 index 000000000..6a55bbd26 --- /dev/null +++ b/backend/src/main/java/hanglog/expense/domain/repository/CurrencyRepository.java @@ -0,0 +1,11 @@ +package hanglog.expense.domain.repository; + +import hanglog.expense.domain.Currency; +import java.time.LocalDate; +import java.util.Optional; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CurrencyRepository extends JpaRepository { + + Optional findCurrenciesBySearchDate(final LocalDate searchDate); +} diff --git a/backend/src/main/java/hanglog/expense/repository/ExpenseRepository.java b/backend/src/main/java/hanglog/expense/domain/repository/ExpenseRepository.java similarity index 63% rename from backend/src/main/java/hanglog/expense/repository/ExpenseRepository.java rename to backend/src/main/java/hanglog/expense/domain/repository/ExpenseRepository.java index 90f08c4a7..9940cc4b2 100644 --- a/backend/src/main/java/hanglog/expense/repository/ExpenseRepository.java +++ b/backend/src/main/java/hanglog/expense/domain/repository/ExpenseRepository.java @@ -1,6 +1,6 @@ -package hanglog.expense.repository; +package hanglog.expense.domain.repository; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; import org.springframework.data.jpa.repository.JpaRepository; public interface ExpenseRepository extends JpaRepository { diff --git a/backend/src/main/java/hanglog/expense/domain/type/CurrencyCodeType.java b/backend/src/main/java/hanglog/expense/domain/type/CurrencyCodeType.java new file mode 100644 index 000000000..18ebdace4 --- /dev/null +++ b/backend/src/main/java/hanglog/expense/domain/type/CurrencyCodeType.java @@ -0,0 +1,39 @@ +package hanglog.expense.domain.type; + +import static hanglog.global.exception.ExceptionCode.INVALID_CURRENCY; + +import hanglog.expense.domain.Currency; +import hanglog.global.exception.InvalidDomainException; +import java.util.Arrays; +import java.util.function.Function; +import lombok.Getter; + +@Getter +public enum CurrencyCodeType { + + USD("usd", Currency::getUsd), + EUR("eur", Currency::getEur), + GBP("gbp", Currency::getGbp), + JPY("jpy", Currency::getUnitRateOfJpy), + CNY("cny", Currency::getCny), + CHF("chf", Currency::getChf), + SGD("sgd", Currency::getSgd), + THB("thb", Currency::getThb), + HKD("hkd", Currency::getHkd), + KRW("krw", Currency::getKrw); + + private final String code; + private final Function getRate; + + CurrencyCodeType(final String code, final Function getRate) { + this.code = code; + this.getRate = getRate; + } + + public static double mappingCurrency(final String currency, final Currency currencies) { + return Arrays.stream(values()) + .filter(value -> value.code.equals(currency.toLowerCase())) + .findAny().orElseThrow(() -> new InvalidDomainException(INVALID_CURRENCY)) + .getRate.apply(currencies); + } +} diff --git a/backend/src/main/java/hanglog/expense/dto/response/CategoriesInExpenseResponse.java b/backend/src/main/java/hanglog/expense/dto/response/CategoriesInExpenseResponse.java index 6dc74bf9c..63eff47e2 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/CategoriesInExpenseResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/CategoriesInExpenseResponse.java @@ -2,6 +2,7 @@ import hanglog.category.domain.Category; +import hanglog.category.dto.CategoryResponse; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; @@ -9,19 +10,19 @@ import java.util.Map.Entry; import lombok.Getter; import lombok.RequiredArgsConstructor; -import lombok.ToString; @Getter @RequiredArgsConstructor -@ToString public class CategoriesInExpenseResponse { - private final CategoryInExpenseResponse category; + private final CategoryResponse category; private final int amount; private final BigDecimal percentage; public static List of(final Map categories) { - final int totalAmount = categories.values().stream().reduce(Integer::sum).orElse(0); + final int totalAmount = categories.values().stream() + .reduce(Integer::sum) + .orElse(0); if (totalAmount == 0) { return categories.entrySet().stream() .map(entry -> getResponse(0, entry)) @@ -37,7 +38,7 @@ private static CategoriesInExpenseResponse getResponse( final Entry entry ) { return new CategoriesInExpenseResponse( - CategoryInExpenseResponse.of(entry.getKey()), + CategoryResponse.of(entry.getKey()), entry.getValue(), BigDecimal.valueOf(amount * 100).setScale(2, RoundingMode.CEILING)//.setScale(2) ); diff --git a/backend/src/main/java/hanglog/expense/dto/response/CategoryInExpenseResponse.java b/backend/src/main/java/hanglog/expense/dto/response/CategoryInExpenseResponse.java deleted file mode 100644 index 282d09905..000000000 --- a/backend/src/main/java/hanglog/expense/dto/response/CategoryInExpenseResponse.java +++ /dev/null @@ -1,21 +0,0 @@ -package hanglog.expense.dto.response; - - -import hanglog.category.domain.Category; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@Getter -@RequiredArgsConstructor -public class CategoryInExpenseResponse { - - private final long id; - private final String name; - - public static CategoryInExpenseResponse of(final Category category) { - return new CategoryInExpenseResponse( - category.getId(), - category.getKorName() - ); - } -} diff --git a/backend/src/main/java/hanglog/expense/dto/response/CitiesInExpenseResponse.java b/backend/src/main/java/hanglog/expense/dto/response/CityInExpenseResponse.java similarity index 72% rename from backend/src/main/java/hanglog/expense/dto/response/CitiesInExpenseResponse.java rename to backend/src/main/java/hanglog/expense/dto/response/CityInExpenseResponse.java index d8f52f1ac..3b6fff44b 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/CitiesInExpenseResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/CityInExpenseResponse.java @@ -7,14 +7,14 @@ @Getter @RequiredArgsConstructor -public class CitiesInExpenseResponse { +public class CityInExpenseResponse { private final long id; private final String name; - public static List of(final List cities) { + public static List of(final List cities) { return cities.stream().map(city -> - new CitiesInExpenseResponse( + new CityInExpenseResponse( city.getCity().getId(), city.getCity().getName() ) diff --git a/backend/src/main/java/hanglog/expense/dto/response/CurrencyInExpenseResponse.java b/backend/src/main/java/hanglog/expense/dto/response/CurrencyInExpenseResponse.java index ff344353f..70a3596f8 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/CurrencyInExpenseResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/CurrencyInExpenseResponse.java @@ -1,7 +1,7 @@ package hanglog.expense.dto.response; -import hanglog.expense.Currencies; -import hanglog.expense.Currency; +import hanglog.expense.domain.Currency; +import hanglog.expense.domain.type.CurrencyCodeType; import java.util.Arrays; import java.util.List; import lombok.Getter; @@ -14,9 +14,9 @@ public class CurrencyInExpenseResponse { private final String currency; private final double rate; - public static List of(final Currencies currencies) { - return Arrays.stream(Currency.values()) - .map(value -> new CurrencyInExpenseResponse(value.getCurrency(), value.getGetRate().apply(currencies))) + public static List of(final Currency currency) { + return Arrays.stream(CurrencyCodeType.values()) + .map(value -> new CurrencyInExpenseResponse(value.getCode(), value.getGetRate().apply(currency))) .toList(); } } diff --git a/backend/src/main/java/hanglog/expense/dto/response/ExpenseGetResponse.java b/backend/src/main/java/hanglog/expense/dto/response/ExpenseGetResponse.java index e001a1fac..a4330b340 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/ExpenseGetResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/ExpenseGetResponse.java @@ -2,7 +2,7 @@ import hanglog.category.domain.Category; -import hanglog.expense.Currencies; +import hanglog.expense.domain.Currency; import hanglog.trip.domain.DayLog; import hanglog.trip.domain.Trip; import hanglog.trip.domain.TripCity; @@ -20,7 +20,7 @@ public class ExpenseGetResponse { private final String title; private final LocalDate startDate; private final LocalDate endDate; - private final List cities; + private final List cities; private final int totalAmount; private final List categories; private final RatesInExpenseResponse rates; @@ -31,7 +31,7 @@ public static ExpenseGetResponse of( final int totalAmount, final List cities, final Map categories, - final Currencies currencies, + final Currency currency, final Map dayLogs ) { return new ExpenseGetResponse( @@ -39,10 +39,10 @@ public static ExpenseGetResponse of( trip.getTitle(), trip.getStartDate(), trip.getEndDate(), - CitiesInExpenseResponse.of(cities), + CityInExpenseResponse.of(cities), totalAmount, CategoriesInExpenseResponse.of(categories), - RatesInExpenseResponse.of(currencies), + RatesInExpenseResponse.of(currency), DayLogInExpenseResponse.of(dayLogs) ); } diff --git a/backend/src/main/java/hanglog/expense/dto/response/ExpenseInItemResponse.java b/backend/src/main/java/hanglog/expense/dto/response/ExpenseInItemResponse.java index 45b407655..c9cbd5044 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/ExpenseInItemResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/ExpenseInItemResponse.java @@ -1,6 +1,7 @@ package hanglog.expense.dto.response; -import hanglog.expense.Expense; +import hanglog.category.dto.CategoryResponse; +import hanglog.expense.domain.Expense; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -11,14 +12,14 @@ public class ExpenseInItemResponse { private final long id; private final String currency; private final double amount; - private final CategoryInExpenseResponse category; + private final CategoryResponse category; public static ExpenseInItemResponse of(final Expense expense) { return new ExpenseInItemResponse( expense.getId(), expense.getCurrency(), expense.getAmount(), - CategoryInExpenseResponse.of(expense.getCategory()) + CategoryResponse.of(expense.getCategory()) ); } } diff --git a/backend/src/main/java/hanglog/expense/dto/response/RatesInExpenseResponse.java b/backend/src/main/java/hanglog/expense/dto/response/RatesInExpenseResponse.java index 5d9b43fdd..c70bf7d5c 100644 --- a/backend/src/main/java/hanglog/expense/dto/response/RatesInExpenseResponse.java +++ b/backend/src/main/java/hanglog/expense/dto/response/RatesInExpenseResponse.java @@ -1,6 +1,6 @@ package hanglog.expense.dto.response; -import hanglog.expense.Currencies; +import hanglog.expense.domain.Currency; import java.time.LocalDate; import java.util.List; import lombok.Getter; @@ -13,10 +13,10 @@ public class RatesInExpenseResponse { private final LocalDate date; private final List values; - public static RatesInExpenseResponse of(final Currencies currencies) { + public static RatesInExpenseResponse of(final Currency currency) { return new RatesInExpenseResponse( - currencies.getSearchDate(), - CurrencyInExpenseResponse.of(currencies) + currency.getSearchDate(), + CurrencyInExpenseResponse.of(currency) ); } } diff --git a/backend/src/main/java/hanglog/expense/repository/CurrenciesRepository.java b/backend/src/main/java/hanglog/expense/repository/CurrenciesRepository.java deleted file mode 100644 index ab63b4f7e..000000000 --- a/backend/src/main/java/hanglog/expense/repository/CurrenciesRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package hanglog.expense.repository; - -import hanglog.expense.Currencies; -import java.time.LocalDate; -import java.util.Optional; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface CurrenciesRepository extends JpaRepository { - - Optional findCurrenciesBySearchDate(final LocalDate searchDate); -} diff --git a/backend/src/main/java/hanglog/expense/service/ExpenseService.java b/backend/src/main/java/hanglog/expense/service/ExpenseService.java index 7dc585a62..712524197 100644 --- a/backend/src/main/java/hanglog/expense/service/ExpenseService.java +++ b/backend/src/main/java/hanglog/expense/service/ExpenseService.java @@ -3,11 +3,11 @@ import static hanglog.global.exception.ExceptionCode.NOT_FOUND_TRIP_ID; import hanglog.category.domain.Category; -import hanglog.expense.Currencies; -import hanglog.expense.Currency; -import hanglog.expense.Expense; +import hanglog.expense.domain.Currency; +import hanglog.expense.domain.Expense; +import hanglog.expense.domain.repository.CurrencyRepository; +import hanglog.expense.domain.type.CurrencyCodeType; import hanglog.expense.dto.response.ExpenseGetResponse; -import hanglog.expense.repository.CurrenciesRepository; import hanglog.global.exception.BadRequestException; import hanglog.trip.domain.DayLog; import hanglog.trip.domain.Item; @@ -28,23 +28,23 @@ public class ExpenseService { // TODO: 추후 Currency 데이터 생길시 deafault 값 추가 - private static final Currencies DEFAULT_CURRENCIES = Currencies.ofDefault(); + private static final Currency DEFAULT_CURRENCY = Currency.ofDefault(); private final TripRepository tripRepository; - private final CurrenciesRepository currenciesRepository; + private final CurrencyRepository currencyRepository; private final TripCityRepository tripCityRepository; public ExpenseGetResponse getAllExpenses(final long tripId) { final Trip trip = tripRepository.findById(tripId) .orElseThrow(() -> new BadRequestException(NOT_FOUND_TRIP_ID)); - final Currencies currencies = currenciesRepository.findCurrenciesBySearchDate(trip.getStartDate()) - .orElse(DEFAULT_CURRENCIES); + final Currency currency = currencyRepository.findCurrenciesBySearchDate(trip.getStartDate()) + .orElse(DEFAULT_CURRENCY); final Map dayLogTotalAmounts = new HashMap<>(); final Map categoryTotalAmounts = new HashMap<>(); final List cities = tripCityRepository.findByTripId(tripId); for (final DayLog dayLog : trip.getDayLogs()) { - calculateAmounts(dayLog, currencies, dayLogTotalAmounts, categoryTotalAmounts); + calculateAmounts(dayLog, currency, dayLogTotalAmounts, categoryTotalAmounts); } final int totalAmount = dayLogTotalAmounts.values().stream().reduce(Integer::sum).orElse(0); @@ -54,29 +54,29 @@ public ExpenseGetResponse getAllExpenses(final long tripId) { totalAmount, cities, categoryTotalAmounts, - currencies, + currency, dayLogTotalAmounts ); } private void calculateAmounts( final DayLog dayLog, - final Currencies currencies, + final Currency currency, final Map dayLogTotalAmounts, final Map categoryTotalAmounts ) { for (final Item item : dayLog.getItems()) { final Expense expense = item.getExpense(); - putKeyAndValue(dayLogTotalAmounts, dayLog, changeToKRW(expense, currencies)); - putKeyAndValue(categoryTotalAmounts, expense.getCategory(), changeToKRW(expense, currencies)); + putKeyAndValue(dayLogTotalAmounts, dayLog, changeToKRW(expense, currency)); + putKeyAndValue(categoryTotalAmounts, expense.getCategory(), changeToKRW(expense, currency)); } } - private int changeToKRW(final Expense expense, final Currencies currencies) { + private int changeToKRW(final Expense expense, final Currency currency) { if (expense == null) { return 0; } - final double rate = Currency.mappingCurrency(expense.getCurrency(), currencies); + final double rate = CurrencyCodeType.mappingCurrency(expense.getCurrency(), currency); return (int) (expense.getAmount() * rate); } diff --git a/backend/src/main/java/hanglog/trip/domain/Item.java b/backend/src/main/java/hanglog/trip/domain/Item.java index dd5618692..f6ccebb31 100644 --- a/backend/src/main/java/hanglog/trip/domain/Item.java +++ b/backend/src/main/java/hanglog/trip/domain/Item.java @@ -9,7 +9,7 @@ import static jakarta.persistence.GenerationType.IDENTITY; import static lombok.AccessLevel.PROTECTED; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; import hanglog.global.BaseEntity; import hanglog.global.exception.InvalidDomainException; import hanglog.global.type.StatusType; diff --git a/backend/src/main/java/hanglog/trip/dto/response/ExpenseResponse.java b/backend/src/main/java/hanglog/trip/dto/response/ExpenseResponse.java index 0de2bf494..727fda4d3 100644 --- a/backend/src/main/java/hanglog/trip/dto/response/ExpenseResponse.java +++ b/backend/src/main/java/hanglog/trip/dto/response/ExpenseResponse.java @@ -1,7 +1,7 @@ package hanglog.trip.dto.response; import hanglog.category.dto.CategoryResponse; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/backend/src/main/java/hanglog/trip/dto/response/ItemResponse.java b/backend/src/main/java/hanglog/trip/dto/response/ItemResponse.java index 78dba3dbf..cffb3fbe9 100644 --- a/backend/src/main/java/hanglog/trip/dto/response/ItemResponse.java +++ b/backend/src/main/java/hanglog/trip/dto/response/ItemResponse.java @@ -1,6 +1,6 @@ package hanglog.trip.dto.response; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; import hanglog.image.domain.Image; import hanglog.trip.domain.Item; import hanglog.trip.domain.Place; diff --git a/backend/src/main/java/hanglog/trip/service/ItemService.java b/backend/src/main/java/hanglog/trip/service/ItemService.java index e89e13a42..d7ca22fe6 100644 --- a/backend/src/main/java/hanglog/trip/service/ItemService.java +++ b/backend/src/main/java/hanglog/trip/service/ItemService.java @@ -8,7 +8,7 @@ import hanglog.category.domain.Category; import hanglog.category.domain.repository.CategoryRepository; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; import hanglog.global.exception.BadRequestException; import hanglog.global.type.StatusType; import hanglog.image.domain.Image; diff --git a/backend/src/test/java/hanglog/expense/fixture/CurrenciesFixture.java b/backend/src/test/java/hanglog/expense/fixture/CurrenciesFixture.java index e9e0869e1..50974648b 100644 --- a/backend/src/test/java/hanglog/expense/fixture/CurrenciesFixture.java +++ b/backend/src/test/java/hanglog/expense/fixture/CurrenciesFixture.java @@ -1,11 +1,11 @@ package hanglog.expense.fixture; -import hanglog.expense.Currencies; +import hanglog.expense.domain.Currency; import java.time.LocalDate; public class CurrenciesFixture { - public static final Currencies DEFAULT_CURRENCIES = new Currencies( + public static final Currency DEFAULT_CURRENCY = new Currency( 1L, LocalDate.of(2023, 1, 1), 1300.0, diff --git a/backend/src/test/java/hanglog/expense/presentation/ExpenseControllerTest.java b/backend/src/test/java/hanglog/expense/presentation/ExpenseControllerTest.java index 90b3955db..454fb892b 100644 --- a/backend/src/test/java/hanglog/expense/presentation/ExpenseControllerTest.java +++ b/backend/src/test/java/hanglog/expense/presentation/ExpenseControllerTest.java @@ -1,7 +1,7 @@ package hanglog.expense.presentation; import static hanglog.category.fixture.CategoryFixture.EXPENSE_CATEGORIES; -import static hanglog.expense.fixture.CurrenciesFixture.DEFAULT_CURRENCIES; +import static hanglog.expense.fixture.CurrenciesFixture.DEFAULT_CURRENCY; import static hanglog.trip.fixture.CityFixture.LONDON; import static hanglog.trip.fixture.CityFixture.TOKYO; import static hanglog.trip.fixture.ItemFixture.LONDON_EYE_ITEM; @@ -45,7 +45,7 @@ void getExpenses() throws Exception { 10000, List.of(new TripCity(LONDON_TRIP, LONDON), new TripCity(LONDON_TRIP, TOKYO)), Map.of(EXPENSE_CATEGORIES.get(1), 1000), - DEFAULT_CURRENCIES, + DEFAULT_CURRENCY, Map.of(LONDON_DAY, 1000) ); diff --git a/backend/src/test/java/hanglog/expense/service/ExpenseServiceTest.java b/backend/src/test/java/hanglog/expense/service/ExpenseServiceTest.java index 78e77d0e2..a44c1e1d2 100644 --- a/backend/src/test/java/hanglog/expense/service/ExpenseServiceTest.java +++ b/backend/src/test/java/hanglog/expense/service/ExpenseServiceTest.java @@ -2,7 +2,7 @@ import static hanglog.category.fixture.CategoryFixture.EXPENSE_CATEGORIES; -import static hanglog.expense.fixture.CurrenciesFixture.DEFAULT_CURRENCIES; +import static hanglog.expense.fixture.CurrenciesFixture.DEFAULT_CURRENCY; import static hanglog.trip.fixture.CityFixture.LONDON; import static hanglog.trip.fixture.CityFixture.TOKYO; import static hanglog.trip.fixture.DayLogFixture.EXPENSE_JAPAN_DAYLOG; @@ -19,12 +19,12 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; +import hanglog.category.dto.CategoryResponse; +import hanglog.expense.domain.repository.CurrencyRepository; import hanglog.expense.dto.response.CategoriesInExpenseResponse; -import hanglog.expense.dto.response.CategoryInExpenseResponse; import hanglog.expense.dto.response.DayLogInExpenseResponse; import hanglog.expense.dto.response.ExpenseGetResponse; import hanglog.expense.dto.response.ItemInDayLogResponse; -import hanglog.expense.repository.CurrenciesRepository; import hanglog.trip.domain.TripCity; import hanglog.trip.domain.repository.TripCityRepository; import hanglog.trip.domain.repository.TripRepository; @@ -54,7 +54,7 @@ class ExpenseServiceTest { private TripRepository tripRepository; @Mock - private CurrenciesRepository currenciesRepository; + private CurrencyRepository currencyRepository; @Mock private TripCityRepository tripCityRepository; @@ -67,8 +67,8 @@ void getAllExpenses() { when(tripRepository.findById(1L)) .thenReturn(Optional.of(LONDON_TO_JAPAN)); - when(currenciesRepository.findCurrenciesBySearchDate(any(LocalDate.class))) - .thenReturn(Optional.of(DEFAULT_CURRENCIES)); + when(currencyRepository.findCurrenciesBySearchDate(any(LocalDate.class))) + .thenReturn(Optional.of(DEFAULT_CURRENCY)); when(tripCityRepository.findByTripId(1L)) .thenReturn(List.of(new TripCity(LONDON_TRIP, LONDON), new TripCity(LONDON_TRIP, TOKYO))); final List expectItemList = List.of( @@ -76,8 +76,8 @@ void getAllExpenses() { ItemInDayLogResponse.of(JAPAN_HOTEL), ItemInDayLogResponse.of(AIRPLANE_ITEM) ); - final int japanAmount = (int) (JPY_10000.getAmount() * DEFAULT_CURRENCIES.getUnitRateOfJpy()); - final int londonAmount = (int) (EURO_10000.getAmount() * DEFAULT_CURRENCIES.getEur()); + final int japanAmount = (int) (JPY_10000.getAmount() * DEFAULT_CURRENCY.getUnitRateOfJpy()); + final int londonAmount = (int) (EURO_10000.getAmount() * DEFAULT_CURRENCY.getEur()); final int totalAmount = japanAmount + londonAmount * 2; // when @@ -95,7 +95,7 @@ void getAllExpenses() { EXPENSE_CATEGORIES.get(3), japanAmount, EXPENSE_CATEGORIES.get(1), londonAmount * 2), - DEFAULT_CURRENCIES, + DEFAULT_CURRENCY, Map.of(EXPENSE_JAPAN_DAYLOG, japanAmount, EXPENSE_LONDON_DAYLOG, londonAmount * 2) ) ); @@ -103,12 +103,12 @@ void getAllExpenses() { .usingRecursiveFieldByFieldElementComparator() .contains( new CategoriesInExpenseResponse( - CategoryInExpenseResponse.of(EXPENSE_CATEGORIES.get(3)), + CategoryResponse.of(EXPENSE_CATEGORIES.get(3)), japanAmount, BigDecimal.valueOf((double) 100 * japanAmount / totalAmount) .setScale(2, RoundingMode.CEILING)), new CategoriesInExpenseResponse( - CategoryInExpenseResponse.of(EXPENSE_CATEGORIES.get(1)), + CategoryResponse.of(EXPENSE_CATEGORIES.get(1)), londonAmount * 2, BigDecimal.valueOf((double) 100 * londonAmount * 2 / totalAmount) .setScale(2, RoundingMode.CEILING)) @@ -147,8 +147,8 @@ void getNoExpenseTrip() { when(tripRepository.findById(1L)) .thenReturn(Optional.of(LONDON_TRIP)); - when(currenciesRepository.findCurrenciesBySearchDate(any(LocalDate.class))) - .thenReturn(Optional.of(DEFAULT_CURRENCIES)); + when(currencyRepository.findCurrenciesBySearchDate(any(LocalDate.class))) + .thenReturn(Optional.of(DEFAULT_CURRENCY)); when(tripCityRepository.findByTripId(1L)) .thenReturn(List.of()); @@ -162,7 +162,7 @@ void getNoExpenseTrip() { 0, List.of(), Map.of(), - DEFAULT_CURRENCIES, + DEFAULT_CURRENCY, Map.of() ) ); diff --git a/backend/src/test/java/hanglog/trip/fixture/ExpenseFixture.java b/backend/src/test/java/hanglog/trip/fixture/ExpenseFixture.java index 5fbd96824..ea000a0de 100644 --- a/backend/src/test/java/hanglog/trip/fixture/ExpenseFixture.java +++ b/backend/src/test/java/hanglog/trip/fixture/ExpenseFixture.java @@ -2,7 +2,7 @@ import static hanglog.category.fixture.CategoryFixture.EXPENSE_CATEGORIES; -import hanglog.expense.Expense; +import hanglog.expense.domain.Expense; public final class ExpenseFixture {