From 5821d1e4510ccb5a373a8a5586c3e800f4a29a39 Mon Sep 17 00:00:00 2001 From: stgctkm Date: Tue, 22 Aug 2023 13:06:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Rentals=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE?= =?UTF-8?q?=E5=B0=8E=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/video/domain/Customer.java | 9 +++------ src/main/java/video/domain/Rentals.java | 16 ++++++++++++++++ .../datasource/RentalDataSource.java | 5 +++-- .../transfer/RentalNotificationTransfer.java | 7 +++---- 4 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 src/main/java/video/domain/Rentals.java diff --git a/src/main/java/video/domain/Customer.java b/src/main/java/video/domain/Customer.java index 3bb6a68..4326ebd 100644 --- a/src/main/java/video/domain/Customer.java +++ b/src/main/java/video/domain/Customer.java @@ -1,11 +1,8 @@ package video.domain; -import java.util.ArrayList; -import java.util.List; - public class Customer { private String name; - private List rentals = new ArrayList<>(); + private Rentals rentals = new Rentals(); public Customer(String name) { this.name = name; @@ -19,14 +16,14 @@ public String getName() { return name; } - public List getRentals() { + public Rentals getRentals() { return rentals; } public RentalResult rentalMovies() { int totalAmount = 0; int frequentRenterPoints = 0; - for (Rental each : rentals) { + for (Rental each : rentals.list()) { int thisAmount = each.amount(); frequentRenterPoints += each.frequentRenterPoints(); totalAmount += thisAmount; diff --git a/src/main/java/video/domain/Rentals.java b/src/main/java/video/domain/Rentals.java new file mode 100644 index 0000000..84fc790 --- /dev/null +++ b/src/main/java/video/domain/Rentals.java @@ -0,0 +1,16 @@ +package video.domain; + +import java.util.ArrayList; +import java.util.List; + +public class Rentals { + List list = new ArrayList<>(); + + public void add(Rental rental) { + list.add(rental); + } + + public List list() { + return list; + } +} diff --git a/src/main/java/video/infrastructure/datasource/RentalDataSource.java b/src/main/java/video/infrastructure/datasource/RentalDataSource.java index cafd262..78eaca7 100644 --- a/src/main/java/video/infrastructure/datasource/RentalDataSource.java +++ b/src/main/java/video/infrastructure/datasource/RentalDataSource.java @@ -1,6 +1,7 @@ package video.infrastructure.datasource; import video.domain.Rental; +import video.domain.Rentals; import video.infrastructure.datasource.data.RentalItem; import video.infrastructure.datasource.data.RentalRecord; import video.infrastructure.datasource.data.RentalSummary; @@ -22,12 +23,12 @@ public class RentalDataSource { /** * レンタルの記録 */ - public int registerRental(String customerName, List rentals, int totalAmount) { + public int registerRental(String customerName, Rentals rentals, int totalAmount) { int rentalId = rentalNumber.incrementAndGet(); rentalRecords.put(rentalId, new RentalRecord(customerName, totalAmount)); ArrayList items = new ArrayList<>(); - for (Rental rental : rentals) { + for (Rental rental : rentals.list()) { items.add(new RentalItem(rental.getMovie(), rental.getDaysRented())); } rentalItems.put(rentalId, items); diff --git a/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java b/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java index fbdba73..1423866 100644 --- a/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java +++ b/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java @@ -3,15 +3,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import video.domain.Rental; - -import java.util.List; +import video.domain.Rentals; public class RentalNotificationTransfer { private static final Logger logger = LoggerFactory.getLogger(RentalNotificationTransfer.class); - public void notice(String customerName, List rentals) { + public void notice(String customerName, Rentals rentals) { StringBuilder result = new StringBuilder(); - for (Rental rental : rentals) { + for (Rental rental : rentals.list()) { result.append("Movie: " + rental.getMovie().getTitle() + " Days Rented: " + rental.getDaysRented() + " "); } logger.info(customerName + ": " + result); From 212a9f3f7c1325e3ed2befaa84f07f8f9d6931d6 Mon Sep 17 00:00:00 2001 From: stgctkm Date: Tue, 22 Aug 2023 13:09:03 +0900 Subject: [PATCH 2/2] =?UTF-8?q?rental=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=AB=E7=A7=BB=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/video/domain/Customer.java | 3 +++ src/main/java/video/domain/{ => rental}/Rental.java | 9 ++++++--- src/main/java/video/domain/{ => rental}/Rentals.java | 2 +- .../infrastructure/datasource/RentalDataSource.java | 4 ++-- .../transfer/RentalNotificationTransfer.java | 4 ++-- src/test/java/video/domain/CustomerTest.java | 1 + src/test/java/video/domain/RentalTest.java | 1 + 7 files changed, 16 insertions(+), 8 deletions(-) rename src/main/java/video/domain/{ => rental}/Rental.java (88%) rename src/main/java/video/domain/{ => rental}/Rentals.java (89%) diff --git a/src/main/java/video/domain/Customer.java b/src/main/java/video/domain/Customer.java index 4326ebd..f0e7881 100644 --- a/src/main/java/video/domain/Customer.java +++ b/src/main/java/video/domain/Customer.java @@ -1,5 +1,8 @@ package video.domain; +import video.domain.rental.Rental; +import video.domain.rental.Rentals; + public class Customer { private String name; private Rentals rentals = new Rentals(); diff --git a/src/main/java/video/domain/Rental.java b/src/main/java/video/domain/rental/Rental.java similarity index 88% rename from src/main/java/video/domain/Rental.java rename to src/main/java/video/domain/rental/Rental.java index 0652924..6c6f094 100644 --- a/src/main/java/video/domain/Rental.java +++ b/src/main/java/video/domain/rental/Rental.java @@ -1,4 +1,7 @@ -package video.domain; +package video.domain.rental; + +import video.domain.Movie; +import video.domain.PriceType; public class Rental { private Movie movie; @@ -17,7 +20,7 @@ public Movie getMovie() { return movie; } - int amount() { + public int amount() { int thisAmount = 0; // 金額を計算 switch (getMovie().getPriceType()) { @@ -38,7 +41,7 @@ int amount() { return thisAmount; } - int frequentRenterPoints() { + public int frequentRenterPoints() { // 新作を二日以上借りた場合はボーナスポイント if ((getMovie().getPriceType() == PriceType.NEW_RELEASE) && getDaysRented() > 1) return 2; diff --git a/src/main/java/video/domain/Rentals.java b/src/main/java/video/domain/rental/Rentals.java similarity index 89% rename from src/main/java/video/domain/Rentals.java rename to src/main/java/video/domain/rental/Rentals.java index 84fc790..3e6aca3 100644 --- a/src/main/java/video/domain/Rentals.java +++ b/src/main/java/video/domain/rental/Rentals.java @@ -1,4 +1,4 @@ -package video.domain; +package video.domain.rental; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/video/infrastructure/datasource/RentalDataSource.java b/src/main/java/video/infrastructure/datasource/RentalDataSource.java index 78eaca7..870276f 100644 --- a/src/main/java/video/infrastructure/datasource/RentalDataSource.java +++ b/src/main/java/video/infrastructure/datasource/RentalDataSource.java @@ -1,7 +1,7 @@ package video.infrastructure.datasource; -import video.domain.Rental; -import video.domain.Rentals; +import video.domain.rental.Rental; +import video.domain.rental.Rentals; import video.infrastructure.datasource.data.RentalItem; import video.infrastructure.datasource.data.RentalRecord; import video.infrastructure.datasource.data.RentalSummary; diff --git a/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java b/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java index 1423866..524471a 100644 --- a/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java +++ b/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java @@ -2,8 +2,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import video.domain.Rental; -import video.domain.Rentals; +import video.domain.rental.Rental; +import video.domain.rental.Rentals; public class RentalNotificationTransfer { diff --git a/src/test/java/video/domain/CustomerTest.java b/src/test/java/video/domain/CustomerTest.java index 5bad885..899fff4 100644 --- a/src/test/java/video/domain/CustomerTest.java +++ b/src/test/java/video/domain/CustomerTest.java @@ -1,6 +1,7 @@ package video.domain; import org.junit.jupiter.api.Test; +import video.domain.rental.Rental; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/video/domain/RentalTest.java b/src/test/java/video/domain/RentalTest.java index e0465c0..968916e 100644 --- a/src/test/java/video/domain/RentalTest.java +++ b/src/test/java/video/domain/RentalTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import video.domain.rental.Rental; import static org.junit.jupiter.api.Assertions.assertEquals;