diff --git a/src/main/java/video/domain/Customer.java b/src/main/java/video/domain/Customer.java index 3bb6a68..f0e7881 100644 --- a/src/main/java/video/domain/Customer.java +++ b/src/main/java/video/domain/Customer.java @@ -1,11 +1,11 @@ package video.domain; -import java.util.ArrayList; -import java.util.List; +import video.domain.rental.Rental; +import video.domain.rental.Rentals; 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 +19,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/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/rental/Rentals.java b/src/main/java/video/domain/rental/Rentals.java new file mode 100644 index 0000000..3e6aca3 --- /dev/null +++ b/src/main/java/video/domain/rental/Rentals.java @@ -0,0 +1,16 @@ +package video.domain.rental; + +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..870276f 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.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; @@ -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..524471a 100644 --- a/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java +++ b/src/main/java/video/infrastructure/transfer/RentalNotificationTransfer.java @@ -2,16 +2,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import video.domain.Rental; - -import java.util.List; +import video.domain.rental.Rental; +import video.domain.rental.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); 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;