From 8ed211317778c5dafe99f27df6676b101ec6f662 Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 17:36:49 +0200 Subject: [PATCH 01/19] Create .gitignore --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..41914452 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Archivos del sistema macOS +.DS_Store + +# Configuración de Visual Studio Code +.vscode/ From a7a134ab286834c6a40265688baee014d5ecbb3b Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 18:06:47 +0200 Subject: [PATCH 02/19] Extract method to amountFor() desde Customer.statement() Extract method 'private double amountFor(Rental aRental)' from 'ubu.gii.dass.refactoring.Customer.statement()' to 'ubu.gii.dass.refactoring.Customer' - Original project: 'refactoring-fowler-example' - Method name: 'amountFor' - Destination type: 'ubu.gii.dass.refactoring.Customer' - Declared visibility: 'private' --- src/ubu/gii/dass/refactoring/Customer.java | 36 +++++++++++++--------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index a5631232..1689af8e 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -39,21 +39,7 @@ public String statement() { double thisAmount = 0; Rental each = rentals.next(); // determine amounts for each line - switch (each.getMovie().getPriceCode()) { - case Movie.REGULAR: - thisAmount += 2; - if (each.getDaysRented() > 2) - thisAmount += (each.getDaysRented() - 2) * 1.5; - break; - case Movie.NEW_RELEASE: - thisAmount += each.getDaysRented() * 3; - break; - case Movie.CHILDRENS: - thisAmount += 1.5; - if (each.getDaysRented() > 3) - thisAmount += (each.getDaysRented() - 3) * 1.5; - break; - } + thisAmount = amountFor(each); // add frequent renter points frequentRenterPoints++; @@ -72,4 +58,24 @@ public String statement() { + " frequent renter points"; return result; } + + private double amountFor(Rental aRental) { + double result=0; + switch (aRental.getMovie().getPriceCode()) { + case Movie.REGULAR: + result += 2; + if (aRental.getDaysRented() > 2) + result += (aRental.getDaysRented() - 2) * 1.5; + break; + case Movie.NEW_RELEASE: + result += aRental.getDaysRented() * 3; + break; + case Movie.CHILDRENS: + result += 1.5; + if (aRental.getDaysRented() > 3) + result += (aRental.getDaysRented() - 3) * 1.5; + break; + } + return result; + } } From 55d259ea7df9e7a6778b11fb3faf08e957d3ad8e Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 18:12:25 +0200 Subject: [PATCH 03/19] Revertido commit anterior Revertido commit anterior debido a un error al referirse al issue correspondiente. --- src/ubu/gii/dass/refactoring/Customer.java | 36 +++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index 1689af8e..a5631232 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -39,7 +39,21 @@ public String statement() { double thisAmount = 0; Rental each = rentals.next(); // determine amounts for each line - thisAmount = amountFor(each); + switch (each.getMovie().getPriceCode()) { + case Movie.REGULAR: + thisAmount += 2; + if (each.getDaysRented() > 2) + thisAmount += (each.getDaysRented() - 2) * 1.5; + break; + case Movie.NEW_RELEASE: + thisAmount += each.getDaysRented() * 3; + break; + case Movie.CHILDRENS: + thisAmount += 1.5; + if (each.getDaysRented() > 3) + thisAmount += (each.getDaysRented() - 3) * 1.5; + break; + } // add frequent renter points frequentRenterPoints++; @@ -58,24 +72,4 @@ public String statement() { + " frequent renter points"; return result; } - - private double amountFor(Rental aRental) { - double result=0; - switch (aRental.getMovie().getPriceCode()) { - case Movie.REGULAR: - result += 2; - if (aRental.getDaysRented() > 2) - result += (aRental.getDaysRented() - 2) * 1.5; - break; - case Movie.NEW_RELEASE: - result += aRental.getDaysRented() * 3; - break; - case Movie.CHILDRENS: - result += 1.5; - if (aRental.getDaysRented() > 3) - result += (aRental.getDaysRented() - 3) * 1.5; - break; - } - return result; - } } From 6e5febf14c6e3d478281a68e8ed488e8e13a2fb1 Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 18:15:59 +0200 Subject: [PATCH 04/19] #1 Extract method to amountFor() desde Customer.statement() Extract method 'private double amountFor(Rental aRental)' from 'ubu.gii.dass.refactoring.Customer.statement()' to 'ubu.gii.dass.refactoring.Customer' - Original project: 'refactoring-fowler-example' - Method name: 'amountFor' - Destination type: 'ubu.gii.dass.refactoring.Customer' - Declared visibility: 'private' --- src/ubu/gii/dass/refactoring/Customer.java | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index a5631232..330c6a18 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -39,21 +39,7 @@ public String statement() { double thisAmount = 0; Rental each = rentals.next(); // determine amounts for each line - switch (each.getMovie().getPriceCode()) { - case Movie.REGULAR: - thisAmount += 2; - if (each.getDaysRented() > 2) - thisAmount += (each.getDaysRented() - 2) * 1.5; - break; - case Movie.NEW_RELEASE: - thisAmount += each.getDaysRented() * 3; - break; - case Movie.CHILDRENS: - thisAmount += 1.5; - if (each.getDaysRented() > 3) - thisAmount += (each.getDaysRented() - 3) * 1.5; - break; - } + thisAmount = amountFor(each); // add frequent renter points frequentRenterPoints++; @@ -72,4 +58,25 @@ public String statement() { + " frequent renter points"; return result; } + + private double amountFor(Rental aRental) { + + double result=0; + switch (aRental.getMovie().getPriceCode()) { + case Movie.REGULAR: + result += 2; + if (aRental.getDaysRented() > 2) + result += (aRental.getDaysRented() - 2) * 1.5; + break; + case Movie.NEW_RELEASE: + result += aRental.getDaysRented() * 3; + break; + case Movie.CHILDRENS: + result += 1.5; + if (aRental.getDaysRented() > 3) + result += (aRental.getDaysRented() - 3) * 1.5; + break; + } + return result; + } } From 12c43e1d88ce751bc93b7bced3026514bd1fc3f5 Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 18:21:03 +0200 Subject: [PATCH 05/19] =?UTF-8?q?#1=20Extraer=20c=C3=B3digo=20de=20Custome?= =?UTF-8?q?r.statement()=20a=20m=C3=A9todo=20incrementFrequentRenterPoints?= =?UTF-8?q?()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extract method 'private int incrementFrequentRenterPoints(int frequentRenterPoints, Rental each)' from 'ubu.gii.dass.refactoring.Customer.statement()' to 'ubu.gii.dass.refactoring.Customer' - Original project: 'refactor_buena' - Method name: 'incrementFrequentRenterPoints' - Destination type: 'ubu.gii.dass.refactoring.Customer' - Declared visibility: 'private' --- src/ubu/gii/dass/refactoring/Customer.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index 330c6a18..f819eb68 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -42,11 +42,7 @@ public String statement() { thisAmount = amountFor(each); // add frequent renter points - frequentRenterPoints++; - // add bonus for a two day new release rental - if ((each.getMovie().getPriceCode() == Movie.NEW_RELEASE) - && each.getDaysRented() > 1) - frequentRenterPoints++; + frequentRenterPoints = incrementFrequentRenterPoints(frequentRenterPoints, each); // show figures for this rental result += "\t" + each.getMovie().getTitle() + "\t" + String.valueOf(thisAmount) + "\n"; @@ -58,6 +54,15 @@ public String statement() { + " frequent renter points"; return result; } + + private int incrementFrequentRenterPoints(int frequentRenterPoints, Rental each) { + frequentRenterPoints++; + // add bonus for a two day new release rental + if ((each.getMovie().getPriceCode() == Movie.NEW_RELEASE) + && each.getDaysRented() > 1) + frequentRenterPoints++; + return frequentRenterPoints; + } private double amountFor(Rental aRental) { From de73917ab69306318dc5431dafcd305929f8c26e Mon Sep 17 00:00:00 2001 From: David52PG Date: Thu, 15 May 2025 19:25:18 +0200 Subject: [PATCH 06/19] #1 Move method Customer.amountFor() to Rental Move method 'ubu.gii.dass.refactoring.Customer.amountFor(...)' to 'ubu.gii.dass.refactoring.Customer.amountFor(...).aRental' - Original project: 'refactoring-fowler-example' - Original element: 'ubu.gii.dass.refactoring.Customer.amountFor(...)' - Moved method: N/A - Target element: 'ubu.gii.dass.refactoring.Customer.amountFor(...).aRental' - Method name: 'amountFor' --- .classpath | 9 +++++++++ .gitignore | 1 + .project | 17 ++++++++++++++++ src/ubu/gii/dass/refactoring/Customer.java | 23 +--------------------- src/ubu/gii/dass/refactoring/Rental.java | 21 ++++++++++++++++++++ 5 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 .classpath create mode 100644 .project diff --git a/.classpath b/.classpath new file mode 100644 index 00000000..1330d8f7 --- /dev/null +++ b/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.gitignore b/.gitignore index 41914452..52bdd221 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ # Configuración de Visual Studio Code .vscode/ +/bin/ diff --git a/.project b/.project new file mode 100644 index 00000000..ae309aa9 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + refactoring-fowler-example + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index f819eb68..3537acd6 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -39,7 +39,7 @@ public String statement() { double thisAmount = 0; Rental each = rentals.next(); // determine amounts for each line - thisAmount = amountFor(each); + thisAmount = each.amountFor(); // add frequent renter points frequentRenterPoints = incrementFrequentRenterPoints(frequentRenterPoints, each); @@ -63,25 +63,4 @@ private int incrementFrequentRenterPoints(int frequentRenterPoints, Rental each) frequentRenterPoints++; return frequentRenterPoints; } - - private double amountFor(Rental aRental) { - - double result=0; - switch (aRental.getMovie().getPriceCode()) { - case Movie.REGULAR: - result += 2; - if (aRental.getDaysRented() > 2) - result += (aRental.getDaysRented() - 2) * 1.5; - break; - case Movie.NEW_RELEASE: - result += aRental.getDaysRented() * 3; - break; - case Movie.CHILDRENS: - result += 1.5; - if (aRental.getDaysRented() > 3) - result += (aRental.getDaysRented() - 3) * 1.5; - break; - } - return result; - } } diff --git a/src/ubu/gii/dass/refactoring/Rental.java b/src/ubu/gii/dass/refactoring/Rental.java index 265c5fca..381727cb 100644 --- a/src/ubu/gii/dass/refactoring/Rental.java +++ b/src/ubu/gii/dass/refactoring/Rental.java @@ -27,4 +27,25 @@ public Movie getMovie() { return _movie; } + double amountFor() { + + double result=0; + switch (getMovie().getPriceCode()) { + case Movie.REGULAR: + result += 2; + if (getDaysRented() > 2) + result += (getDaysRented() - 2) * 1.5; + break; + case Movie.NEW_RELEASE: + result += getDaysRented() * 3; + break; + case Movie.CHILDRENS: + result += 1.5; + if (getDaysRented() > 3) + result += (getDaysRented() - 3) * 1.5; + break; + } + return result; + } + } From 138af182e5fcd7527f6a71329f4b43ec093d846d Mon Sep 17 00:00:00 2001 From: David52PG Date: Thu, 15 May 2025 19:27:02 +0200 Subject: [PATCH 07/19] .gitignore actualizado --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 52bdd221..7936dbbc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ # Configuración de Visual Studio Code .vscode/ /bin/ +.classpath \ No newline at end of file From 08b89fe392c60758fadef95d64f38737792b6a98 Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 19:32:46 +0200 Subject: [PATCH 08/19] Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7936dbbc..7ebf60e5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ # Configuración de Visual Studio Code .vscode/ /bin/ -.classpath \ No newline at end of file +.classpath +.project From 88106e8d297d4af544f3926b0af7a000ea061674 Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 19:33:26 +0200 Subject: [PATCH 09/19] Delete .project --- .project | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .project diff --git a/.project b/.project deleted file mode 100644 index ae309aa9..00000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - refactoring-fowler-example - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - From 12c2d7593266a3c9e72a5ee2e3503119d16c71a9 Mon Sep 17 00:00:00 2001 From: ibai <142017599+ibaimoya@users.noreply.github.com> Date: Thu, 15 May 2025 19:33:35 +0200 Subject: [PATCH 10/19] Delete .classpath --- .classpath | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .classpath diff --git a/.classpath b/.classpath deleted file mode 100644 index 1330d8f7..00000000 --- a/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - From d331c700aa5555eba7ffdaeb53f4c285f6d11a2a Mon Sep 17 00:00:00 2001 From: David52PG Date: Thu, 15 May 2025 19:43:25 +0200 Subject: [PATCH 11/19] #1 Refactor rename method 'incrementFrequentRenterPoints(int frequentRenterPoints, Rental each)' to 'updatePoints(int frequentRenterPoints, Rental each)' Change method 'private int ubu.gii.dass.refactoring.Customer.incrementFrequentRenterPoints(int frequentRenterPoints, Rental each)' to 'private int updatePoints(int frequentRenterPoints, Rental each)' - Original project: 'refactoring-fowler-example' - Original element: 'ubu.gii.dass.refactoring.Customer.incrementFrequentRenterPoints(...)' - New name: 'updatePoints' --- src/ubu/gii/dass/refactoring/Customer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index 3537acd6..aa9e42f8 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -42,7 +42,7 @@ public String statement() { thisAmount = each.amountFor(); // add frequent renter points - frequentRenterPoints = incrementFrequentRenterPoints(frequentRenterPoints, each); + frequentRenterPoints = updatePoints(frequentRenterPoints, each); // show figures for this rental result += "\t" + each.getMovie().getTitle() + "\t" + String.valueOf(thisAmount) + "\n"; @@ -55,7 +55,7 @@ public String statement() { return result; } - private int incrementFrequentRenterPoints(int frequentRenterPoints, Rental each) { + private int updatePoints(int frequentRenterPoints, Rental each) { frequentRenterPoints++; // add bonus for a two day new release rental if ((each.getMovie().getPriceCode() == Movie.NEW_RELEASE) From 5ce5f9f9adb065491aa269072284388fd7708a28 Mon Sep 17 00:00:00 2001 From: Ibai Date: Thu, 15 May 2025 19:56:11 +0200 Subject: [PATCH 12/19] #1 Change method amountFor() signature to public getCharge() Change method 'double ubu.gii.dass.refactoring.Rental.amountFor()' to 'public double getCharge()' - Original project: 'refactoring-fowler-example' - Original element: 'ubu.gii.dass.refactoring.Rental.amountFor()' - New name: 'getCharge' - New visibility: 'public' --- src/ubu/gii/dass/refactoring/Customer.java | 2 +- src/ubu/gii/dass/refactoring/Rental.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index aa9e42f8..07ec1dfc 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -39,7 +39,7 @@ public String statement() { double thisAmount = 0; Rental each = rentals.next(); // determine amounts for each line - thisAmount = each.amountFor(); + thisAmount = each.getCharge(); // add frequent renter points frequentRenterPoints = updatePoints(frequentRenterPoints, each); diff --git a/src/ubu/gii/dass/refactoring/Rental.java b/src/ubu/gii/dass/refactoring/Rental.java index 381727cb..26ad9131 100644 --- a/src/ubu/gii/dass/refactoring/Rental.java +++ b/src/ubu/gii/dass/refactoring/Rental.java @@ -27,7 +27,7 @@ public Movie getMovie() { return _movie; } - double amountFor() { + public double getCharge() { double result=0; switch (getMovie().getPriceCode()) { From ace12ce8c0cf749bd40232bb384ec9c485465fc9 Mon Sep 17 00:00:00 2001 From: David52PG Date: Thu, 15 May 2025 20:05:31 +0200 Subject: [PATCH 13/19] #1 implementacion del informe HTML en Customer.statement() --- informe.html | 1 + src/ubu/gii/dass/refactoring/Customer.java | 69 +++++++++++++++------- 2 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 informe.html diff --git a/informe.html b/informe.html new file mode 100644 index 00000000..fd999096 --- /dev/null +++ b/informe.html @@ -0,0 +1 @@ +Rental Report

Rental Record for Manuel

  • Sky Captain - 15.0
  • Accion Mutante - 2.0
  • Hermano Oso - 12.0

Amount owed is 29.0

You earned 4 frequent renter points

\ No newline at end of file diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index 07ec1dfc..00713ea7 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -11,6 +11,9 @@ * */ import java.util.*; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Iterator; public class Customer { private String _name; @@ -31,29 +34,51 @@ public String getName() { }; public String statement() { - double totalAmount = 0; - int frequentRenterPoints = 0; - Iterator rentals = _rentals.iterator(); - String result = "Rental Record for " + getName() + "\n"; - while (rentals.hasNext()) { - double thisAmount = 0; - Rental each = rentals.next(); - // determine amounts for each line - thisAmount = each.getCharge(); - - // add frequent renter points - frequentRenterPoints = updatePoints(frequentRenterPoints, each); - // show figures for this rental - result += "\t" + each.getMovie().getTitle() + "\t" - + String.valueOf(thisAmount) + "\n"; - totalAmount += thisAmount; - } - // add footer lines - result += "Amount owed is " + String.valueOf(totalAmount) + "\n"; - result += "You earned " + String.valueOf(frequentRenterPoints) - + " frequent renter points"; - return result; + double totalAmount = 0; + int frequentRenterPoints = 0; + Iterator rentals = _rentals.iterator(); + String result = "Rental Record for " + getName() + "\n"; + StringBuilder htmlContent = new StringBuilder(); + + htmlContent.append("Rental Report"); + htmlContent.append("

Rental Record for " + getName() + "

    "); + + while (rentals.hasNext()) { + double thisAmount = 0; + Rental each = rentals.next(); + // determine amounts for each line + thisAmount = each.getCharge(); + + // add frequent renter points + frequentRenterPoints = updatePoints(frequentRenterPoints, each); + + // show figures for this rental + result += "\t" + each.getMovie().getTitle() + "\t" + String.valueOf(thisAmount) + "\n"; + totalAmount += thisAmount; + + // add to HTML content + htmlContent.append("
  • " + each.getMovie().getTitle() + " - " + thisAmount + "
  • "); + } + + // add footer lines + result += "Amount owed is " + String.valueOf(totalAmount) + "\n"; + result += "You earned " + String.valueOf(frequentRenterPoints) + " frequent renter points"; + + // add to HTML content + htmlContent.append("

Amount owed is " + totalAmount + "

"); + htmlContent.append("

You earned " + frequentRenterPoints + " frequent renter points

"); + htmlContent.append(""); + + // Write the HTML content to a file + try (FileWriter writer = new FileWriter("informe.html")) { + writer.write(htmlContent.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + + return result; } + private int updatePoints(int frequentRenterPoints, Rental each) { frequentRenterPoints++; From b0e1a2cdeecefcaba4de6626740a7351eea2615d Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 20:16:20 +0200 Subject: [PATCH 14/19] =?UTF-8?q?#1=20Implementaci=C3=B3n=20test=20informe?= =?UTF-8?q?=20HTML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gii/dass/refactoring/VideoClubTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/ubu/gii/dass/refactoring/VideoClubTest.java b/src/ubu/gii/dass/refactoring/VideoClubTest.java index 82205d33..03e6f1ec 100644 --- a/src/ubu/gii/dass/refactoring/VideoClubTest.java +++ b/src/ubu/gii/dass/refactoring/VideoClubTest.java @@ -2,6 +2,10 @@ import static org.junit.Assert.*; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -56,4 +60,31 @@ public void testAlquiler() { } + @Test + public void testHTMLStatementGeneration() throws IOException { + Customer customer = new Customer("HTMLClient"); + Movie movie = new Movie("HTML Movie", Movie.NEW_RELEASE); + Rental rental = new Rental(movie, 3); + customer.addRental(rental); + + // Llama a statement(), que genera el archivo HTML + customer.statement(); + + // Verifica que el archivo se ha creado + File htmlFile = new File("informe.html"); + assertTrue("El archivo HTML debería haberse creado.", htmlFile.exists()); + + // Lee el contenido del archivo HTML + String content = new String(Files.readAllBytes(htmlFile.toPath())); + + // Comprueba que el contenido esperado está presente + assertTrue("Debe contener etiqueta

.", content.contains("

Rental Record for HTMLClient

")); + assertTrue("Debe contener el título de la película dentro de
  • .", content.contains("
  • HTML Movie - 9.0
  • ")); + assertTrue("Debe mostrar el total adeudado.", content.contains("

    Amount owed is 9.0

    ")); + assertTrue("Debe mostrar puntos de cliente frecuente.", content.contains("frequent renter points")); + + // Limpia el archivo generado + htmlFile.delete(); + } + } From e1e302a27cf9f38ee474870250c9a203291cae8f Mon Sep 17 00:00:00 2001 From: David52PG Date: Thu, 15 May 2025 20:19:40 +0200 Subject: [PATCH 15/19] #2 Creadas clase de precio abstracta y subclases de cada tipo cada clase que herede precio sera un tipo de precio de peliculas --- src/ubu/gii/dass/refactoring/ChildrensPrice.java | 11 +++++++++++ src/ubu/gii/dass/refactoring/NewReleasePrice.java | 13 +++++++++++++ src/ubu/gii/dass/refactoring/Price.java | 8 ++++++++ src/ubu/gii/dass/refactoring/RegularPrice.java | 11 +++++++++++ 4 files changed, 43 insertions(+) create mode 100644 src/ubu/gii/dass/refactoring/ChildrensPrice.java create mode 100644 src/ubu/gii/dass/refactoring/NewReleasePrice.java create mode 100644 src/ubu/gii/dass/refactoring/Price.java create mode 100644 src/ubu/gii/dass/refactoring/RegularPrice.java diff --git a/src/ubu/gii/dass/refactoring/ChildrensPrice.java b/src/ubu/gii/dass/refactoring/ChildrensPrice.java new file mode 100644 index 00000000..00f33582 --- /dev/null +++ b/src/ubu/gii/dass/refactoring/ChildrensPrice.java @@ -0,0 +1,11 @@ +package ubu.gii.dass.refactoring; + +public class ChildrensPrice extends Price { + @Override + public double getCharge(int daysRented) { + double result = 1.5; + if (daysRented > 3) + result += (daysRented - 3) * 1.5; + return result; + } +} diff --git a/src/ubu/gii/dass/refactoring/NewReleasePrice.java b/src/ubu/gii/dass/refactoring/NewReleasePrice.java new file mode 100644 index 00000000..fc0e9271 --- /dev/null +++ b/src/ubu/gii/dass/refactoring/NewReleasePrice.java @@ -0,0 +1,13 @@ +package ubu.gii.dass.refactoring; + +public class NewReleasePrice extends Price { + @Override + public double getCharge(int daysRented) { + return daysRented * 3; + } + + @Override + public int getFrequentRenterPoints(int daysRented) { + return (daysRented > 1) ? 2 : 1; + } +} diff --git a/src/ubu/gii/dass/refactoring/Price.java b/src/ubu/gii/dass/refactoring/Price.java new file mode 100644 index 00000000..d811285c --- /dev/null +++ b/src/ubu/gii/dass/refactoring/Price.java @@ -0,0 +1,8 @@ +package ubu.gii.dass.refactoring; + +public abstract class Price { + public abstract double getCharge(int daysRented); + public int getFrequentRenterPoints(int daysRented) { + return 1; + } +} diff --git a/src/ubu/gii/dass/refactoring/RegularPrice.java b/src/ubu/gii/dass/refactoring/RegularPrice.java new file mode 100644 index 00000000..fd852730 --- /dev/null +++ b/src/ubu/gii/dass/refactoring/RegularPrice.java @@ -0,0 +1,11 @@ +package ubu.gii.dass.refactoring; + +public class RegularPrice extends Price { + @Override + public double getCharge(int daysRented) { + double result = 2; + if (daysRented > 2) + result += (daysRented - 2) * 1.5; + return result; + } +} From d721cafa28a09722fcb0a567f3539061d8dfa0c4 Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 20:53:51 +0200 Subject: [PATCH 16/19] =?UTF-8?q?#2=20Modificaci=C3=B3n=20Customer.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ubu/gii/dass/refactoring/Customer.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Customer.java b/src/ubu/gii/dass/refactoring/Customer.java index 00713ea7..6ef76782 100644 --- a/src/ubu/gii/dass/refactoring/Customer.java +++ b/src/ubu/gii/dass/refactoring/Customer.java @@ -81,11 +81,6 @@ public String statement() { private int updatePoints(int frequentRenterPoints, Rental each) { - frequentRenterPoints++; - // add bonus for a two day new release rental - if ((each.getMovie().getPriceCode() == Movie.NEW_RELEASE) - && each.getDaysRented() > 1) - frequentRenterPoints++; - return frequentRenterPoints; + return each.getMovie().getUpdatePoints(frequentRenterPoints); } } From ddb961e2edddbb53513973164f6b082af69ab858 Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 20:55:38 +0200 Subject: [PATCH 17/19] Modificacion Movie.java --- src/ubu/gii/dass/refactoring/Movie.java | 31 ++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Movie.java b/src/ubu/gii/dass/refactoring/Movie.java index c5e768f2..a2161a8c 100644 --- a/src/ubu/gii/dass/refactoring/Movie.java +++ b/src/ubu/gii/dass/refactoring/Movie.java @@ -17,21 +17,40 @@ public class Movie { public static final int NEW_RELEASE = 1; private String _title; - private int _priceCode; + private Price _price; public Movie(String title, int priceCode) { _title = title; - _priceCode = priceCode; + setPriceCode(priceCode); } - public int getPriceCode() { - return _priceCode; + public Price getPriceCode() { + return _price; } - public void setPriceCode(int arg) { - _priceCode = arg; + public void setPriceCode(int priceCode) { + switch (priceCode) { + case REGULAR: + _price = new RegularPrice(); + break; + case NEW_RELEASE: + _price = new NewReleasePrice(); + break; + case CHILDRENS: + _price = new ChildrensPrice(); + break; + + } } + public Double getCharge(int daysRented) { + return _price.getCharge(daysRented); + } + + public int getUpdatePoints(int daysRented) { + return _price.getUpdatePoints(daysRented); + } + public String getTitle() { return _title; } From 89d0ba9bcf4088735fb6c75a6b1ba8cafed67419 Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 20:56:19 +0200 Subject: [PATCH 18/19] Modificacion Price.java --- src/ubu/gii/dass/refactoring/Price.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ubu/gii/dass/refactoring/Price.java b/src/ubu/gii/dass/refactoring/Price.java index d811285c..f86612e7 100644 --- a/src/ubu/gii/dass/refactoring/Price.java +++ b/src/ubu/gii/dass/refactoring/Price.java @@ -2,7 +2,7 @@ public abstract class Price { public abstract double getCharge(int daysRented); - public int getFrequentRenterPoints(int daysRented) { + public int getUpdatePoints(int daysRented) { return 1; } } From f3a63b923ccba24103e365e3841962178cd1493a Mon Sep 17 00:00:00 2001 From: npi1001 <116637646+Nicop17@users.noreply.github.com> Date: Thu, 15 May 2025 20:57:57 +0200 Subject: [PATCH 19/19] Modificacion Rental.java --- src/ubu/gii/dass/refactoring/Rental.java | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/ubu/gii/dass/refactoring/Rental.java b/src/ubu/gii/dass/refactoring/Rental.java index 26ad9131..e5dcbc0a 100644 --- a/src/ubu/gii/dass/refactoring/Rental.java +++ b/src/ubu/gii/dass/refactoring/Rental.java @@ -28,24 +28,7 @@ public Movie getMovie() { } public double getCharge() { - - double result=0; - switch (getMovie().getPriceCode()) { - case Movie.REGULAR: - result += 2; - if (getDaysRented() > 2) - result += (getDaysRented() - 2) * 1.5; - break; - case Movie.NEW_RELEASE: - result += getDaysRented() * 3; - break; - case Movie.CHILDRENS: - result += 1.5; - if (getDaysRented() > 3) - result += (getDaysRented() - 3) * 1.5; - break; - } - return result; + return _movie.getCharge(_daysRented); } }