rentals = _rentals.elements();
+ String result = "Rental Record for " + getName() + "
\n";
while (rentals.hasMoreElements()) {
Rental each = (Rental) rentals.nextElement();
- // показать результаты по каждой аренде
- result += each.getMovie().getTitle() +
- String.valueOf(each.getCharge()) + "
\n";
+ // show figures for this rental
+ result += each.getMovie().getTitle() + ": "
+ + String.valueOf( each.getCharge() ) + "
\n";
}
- //добавить нижний колонтитул
- result += "<Р>Ваша задолженность составляет <ЕМ>" +
- String.valueOf(getTotalCharge()) + "
\n";
- result += "На этой аренде вы заработали <ЕМ>" +
- String.valueOf(getTotalFrequentRenterPoints()) + "ЕМ> очков за активность<Р>";
+ // add footer lines
+ result += "
Amount owed is " + String.valueOf( getTotalCharge() ) + "
\n";
+ result += "You earned " + String.valueOf( getTotalFrequentRenterPoints() )
+ + " frequent renter points
";
return result;
}
- private double getTotalCharge() {
- double result = 0;
- Enumeration rentals = _rentals.elements();
+ private double getTotalCharge(){
+ double totalCharge = 0;
+ Enumeration rentals = _rentals.elements();
while (rentals.hasMoreElements()) {
- Rental each = (Rental)rentals.nextElement();
- result += each.getCharge();
+ Rental each = (Rental) rentals.nextElement();
+ totalCharge += each.getCharge();
}
- return result;
+ return totalCharge;
}
private int getTotalFrequentRenterPoints(){
- int result = 0;
- Enumeration rentals = _rentals.elements();
+ int totalPoints = 0;
+ Enumeration rentals = _rentals.elements();
while (rentals.hasMoreElements()) {
Rental each = (Rental) rentals.nextElement();
- result += each.getFrequentRenterPoints();
+ totalPoints += each.getFrequentRenterPoints();
}
- return result;
+ return totalPoints;
}
-
-
}
\ No newline at end of file
diff --git a/src/main/java/org/kranonit/rentalStore/Main.java b/src/main/java/org/kranonit/rentalStore/Main.java
index 8b6f5f8..17cb770 100644
--- a/src/main/java/org/kranonit/rentalStore/Main.java
+++ b/src/main/java/org/kranonit/rentalStore/Main.java
@@ -12,7 +12,9 @@ public static void main(String[] args) {
c.addRental(new Rental(m2, 4));
c.addRental(new Rental(m3, 5));
c.addRental(new Rental(m4, 6));
- System.out.println(c.statement());
+ System.out.print(c.statement());
+ System.out.print( "\n\nVersion for HTML:\n\n" );
+ System.out.print(c.htmlStatement());
}
}
\ No newline at end of file
diff --git a/src/main/java/org/kranonit/rentalStore/Movie.java b/src/main/java/org/kranonit/rentalStore/Movie.java
index f29968d..3b16e02 100644
--- a/src/main/java/org/kranonit/rentalStore/Movie.java
+++ b/src/main/java/org/kranonit/rentalStore/Movie.java
@@ -5,11 +5,11 @@ public class Movie {
public static final int REGULAR = 0;
public static final int NEW_RELEASE = 1;
private String _title;
- Price _price;
+ private Price _price;
public Movie(String title, int priceCode) {
_title = title;
- setPriceCode(priceCode);
+ setPriceCode( priceCode );
}
public int getPriceCode() {
@@ -17,13 +17,13 @@ public int getPriceCode() {
}
public void setPriceCode(int arg) {
- switch (arg) {
- case REGULAR:
- _price = new RegularPrice();
- break;
+ switch (arg){
case CHILDRENS:
_price = new ChildrensPrice();
break;
+ case REGULAR:
+ _price = new RegularPrice();
+ break;
case NEW_RELEASE:
_price = new NewReleasePrice();
break;
@@ -32,15 +32,15 @@ public void setPriceCode(int arg) {
}
}
- double getCharge(int daysRented) {
- return _price.getCharge(daysRented);
- }
-
public String getTitle() {
return _title;
}
- int getFrequentRenterPoints(int daysRented) {
+ public double getCharge( int daysRented ) {
+ return _price.getCharge(daysRented);
+ }
+
+ public int getFrequentRenterPoints( int daysRented ){
return _price.getFrequentRenterPoints(daysRented);
}
}
\ No newline at end of file
diff --git a/src/main/java/org/kranonit/rentalStore/Price.java b/src/main/java/org/kranonit/rentalStore/Price.java
index 53a6a71..887fa08 100644
--- a/src/main/java/org/kranonit/rentalStore/Price.java
+++ b/src/main/java/org/kranonit/rentalStore/Price.java
@@ -1,52 +1,52 @@
package org.kranonit.rentalStore;
abstract class Price {
+
abstract int getPriceCode();
- abstract double getCharge(int daysRented);
+ abstract double getCharge( int daysRented );
- int getFrequentRenterPoints(int daysRented) {
- return 1;
+ public int getFrequentRenterPoints( int daysRented ){
+ if ((getPriceCode() == Movie.NEW_RELEASE) && daysRented > 1)
+ return 2;
+ return 1;
}
}
-class ChildrensPrice extends Price {
- int getPriceCode() {
- return Movie.CHILDRENS;
+class RegularPrice extends Price {
+
+ int getPriceCode(){
+ return Movie.REGULAR;
}
- double getCharge(int daysRented) {
- double result = 1.5;
- if (daysRented > 3) {
- result += (daysRented - 3) * 1.5;
- }
+ double getCharge( int daysRented ){
+ double result = 2;
+ if (daysRented > 2)
+ result += (daysRented - 2) * 1.5;
return result;
}
}
class NewReleasePrice extends Price {
- int getPriceCode() {
+
+ int getPriceCode(){
return Movie.NEW_RELEASE;
}
- double getCharge(int daysRented) {
+ double getCharge( int daysRented ){
return daysRented * 3;
}
-
- int getFrequentRenterPoints(int daysRented) {
- return (daysRented > 1) ? 2 : 1;
- }
}
-class RegularPrice extends Price {
- int getPriceCode() {
- return Movie.REGULAR;
+class ChildrensPrice extends Price {
+
+ int getPriceCode(){
+ return Movie.CHILDRENS;
}
- double getCharge(int daysRented){
- double result = 2;
- if (daysRented > 2) {
- result += (daysRented - 2) * 1.5;
- }
+ double getCharge( int daysRented ){
+ double result = 1.5;
+ if (daysRented > 3)
+ result += (daysRented - 3) * 1.5;
return result;
}
}
diff --git a/src/main/java/org/kranonit/rentalStore/Rental.java b/src/main/java/org/kranonit/rentalStore/Rental.java
index bf03032..13f797d 100644
--- a/src/main/java/org/kranonit/rentalStore/Rental.java
+++ b/src/main/java/org/kranonit/rentalStore/Rental.java
@@ -3,6 +3,7 @@
class Rental {
private Movie _movie;
+
private int _daysRented;
public Rental(Movie movie, int daysRented) {
@@ -11,15 +12,14 @@ public Rental(Movie movie, int daysRented) {
}
public double getCharge() {
- return _movie.getCharge(_daysRented);
+ return _movie.getCharge( getDaysRented() );
}
- public int getFrequentRenterPoints() {
-
- return _movie.getFrequentRenterPoints(_daysRented);
+ public int getFrequentRenterPoints(){
+ return _movie.getFrequentRenterPoints( getDaysRented() );
}
- public int getDaysRented() {
+ public int getDaysRented() {
return _daysRented;
}
diff --git a/src/test/java/org/kranonit/rentalStore/CustomerTest.java b/src/test/java/org/kranonit/rentalStore/CustomerTest.java
index 94da5cb..431c9b9 100644
--- a/src/test/java/org/kranonit/rentalStore/CustomerTest.java
+++ b/src/test/java/org/kranonit/rentalStore/CustomerTest.java
@@ -22,7 +22,7 @@ public void testStatement() throws Exception {
c.addRental(new Rental(m3, 5));
c.addRental(new Rental(m4, 6));
String statementResult = c.statement();
- System.out.println(statementResult);
+ System.out.print(statementResult);
Assert.assertEquals("Rental Record for stokito\n" +
"\tЗа двумя зайцами\t3.5\n" +
"\tВсё просто\t12.0\n" +
@@ -33,7 +33,7 @@ public void testStatement() throws Exception {
}
@Test
- public void testHtmlStatement() throws Exception {
+ public void testHTMLStatement() throws Exception {
Movie m1 = new Movie("За двумя зайцами", Movie.REGULAR);
Movie m2 = new Movie("Всё просто", Movie.NEW_RELEASE);
Movie m3 = new Movie("Хоббит", Movie.CHILDRENS);
@@ -44,13 +44,14 @@ public void testHtmlStatement() throws Exception {
c.addRental(new Rental(m2, 4));
c.addRental(new Rental(m3, 5));
c.addRental(new Rental(m4, 6));
- String htmlStatementResult = c.htmlStatement();
- Assert.assertEquals("<Н1>0перации аренды для <ЕМ>stokito\n" +
- "За двумя зайцами3.5
\n" +
- "Всё просто12.0
\n" +
- "Хоббит4.5
\n" +
- "Альф18.0
\n" +
- "<Р>Ваша задолженность составляет <ЕМ>38.0
\n" +
- "На этой аренде вы заработали <ЕМ>6ЕМ> очков за активность<Р>", htmlStatementResult);
+ String statementResult = c.htmlStatement();
+ System.out.print(statementResult);
+ Assert.assertEquals("
Rental Record for stokito
\n" +
+ "За двумя зайцами: 3.5
\n" +
+ "Всё просто: 12.0
\n" +
+ "Хоббит: 4.5
\n" +
+ "Альф: 18.0
\n" +
+ "
Amount owed is 38.0
\n" +
+ "You earned 6 frequent renter points
", statementResult);
}
}