Skip to content
Draft
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
10 changes: 5 additions & 5 deletions src/main/java/video/domain/Customer.java
Original file line number Diff line number Diff line change
@@ -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<Rental> rentals = new ArrayList<>();
private Rentals rentals = new Rentals();

public Customer(String name) {
this.name = name;
Expand All @@ -19,14 +19,14 @@ public String getName() {
return name;
}

public List<Rental> 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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -17,7 +20,7 @@ public Movie getMovie() {
return movie;
}

int amount() {
public int amount() {
int thisAmount = 0;
// 金額を計算
switch (getMovie().getPriceType()) {
Expand All @@ -38,7 +41,7 @@ int amount() {
return thisAmount;
}

int frequentRenterPoints() {
public int frequentRenterPoints() {
// 新作を二日以上借りた場合はボーナスポイント
if ((getMovie().getPriceType() == PriceType.NEW_RELEASE) &&
getDaysRented() > 1) return 2;
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/video/domain/rental/Rentals.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package video.domain.rental;

import java.util.ArrayList;
import java.util.List;

public class Rentals {
List<Rental> list = new ArrayList<>();

public void add(Rental rental) {
list.add(rental);
}

public List<Rental> list() {
return list;
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -22,12 +23,12 @@ public class RentalDataSource {
/**
* レンタルの記録
*/
public int registerRental(String customerName, List<Rental> rentals, int totalAmount) {
public int registerRental(String customerName, Rentals rentals, int totalAmount) {

int rentalId = rentalNumber.incrementAndGet();
rentalRecords.put(rentalId, new RentalRecord(customerName, totalAmount));
ArrayList<RentalItem> items = new ArrayList<>();
for (Rental rental : rentals) {
for (Rental rental : rentals.list()) {
items.add(new RentalItem(rental.getMovie(), rental.getDaysRented()));
}
rentalItems.put(rentalId, items);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Rental> 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);
Expand Down
1 change: 1 addition & 0 deletions src/test/java/video/domain/CustomerTest.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
1 change: 1 addition & 0 deletions src/test/java/video/domain/RentalTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down