From dc32fb47cbdead0e7facd5aea02f987a6a940a5e Mon Sep 17 00:00:00 2001 From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de> Date: Sat, 10 Oct 2020 15:40:28 +0200 Subject: [PATCH] Add constructor injection in franchise --- src/pizzeria/PizzaFranchise.java | 13 +++++++++++ src/pizzeria/PizzaTestDrive.java | 38 ++++++++++--------------------- src/pizzeria/TestCheesePizza.java | 12 ++++++++++ src/pizzeria/TestPizzaStore.java | 14 ++++++++++++ src/pizzeria/TestVeggiePizza.java | 12 ++++++++++ 5 files changed, 63 insertions(+), 26 deletions(-) create mode 100644 src/pizzeria/PizzaFranchise.java create mode 100644 src/pizzeria/TestCheesePizza.java create mode 100644 src/pizzeria/TestPizzaStore.java create mode 100644 src/pizzeria/TestVeggiePizza.java diff --git a/src/pizzeria/PizzaFranchise.java b/src/pizzeria/PizzaFranchise.java new file mode 100644 index 0000000..cb98968 --- /dev/null +++ b/src/pizzeria/PizzaFranchise.java @@ -0,0 +1,13 @@ +package pizzeria; + +public class PizzaFranchise { + private PizzaStore store; + + public PizzaFranchise(PizzaStore store) { + this.store = store; + } + + public Pizza orderPizza(String type) { + return store.orderPizza(type); + } +} diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java index a4ce31a..575749a 100644 --- a/src/pizzeria/PizzaTestDrive.java +++ b/src/pizzeria/PizzaTestDrive.java @@ -3,31 +3,17 @@ package pizzeria; public class PizzaTestDrive { public static void main(String[] args) { - PizzaStore nyStore = new NYPizzaStore(); - PizzaStore chicagoStore = new ChicagoPizzaStore(); - - Pizza pizza = nyStore.orderPizza("cheese"); - System.out.println("Ethan ordered a " + pizza.getName() + "\n"); - - pizza = chicagoStore.orderPizza("cheese"); - System.out.println("Joel ordered a " + pizza.getName() + "\n"); - - pizza = nyStore.orderPizza("clam"); - System.out.println("Ethan ordered a " + pizza.getName() + "\n"); - - pizza = chicagoStore.orderPizza("clam"); - System.out.println("Joel ordered a " + pizza.getName() + "\n"); - - pizza = nyStore.orderPizza("pepperoni"); - System.out.println("Ethan ordered a " + pizza.getName() + "\n"); - - pizza = chicagoStore.orderPizza("pepperoni"); - System.out.println("Joel ordered a " + pizza.getName() + "\n"); - - pizza = nyStore.orderPizza("veggie"); - System.out.println("Ethan ordered a " + pizza.getName() + "\n"); - - pizza = chicagoStore.orderPizza("veggie"); - System.out.println("Joel ordered a " + pizza.getName() + "\n"); + PizzaStore[] storeList = {new TestPizzaStore(), new NYPizzaStore(), new ChicagoPizzaStore()}; + String[] customerList = {"Ethan", "Joel", "Martha"}; + String[] pizzaType = {"cheese", "veggie"}; + + for (int i=0; i<storeList.length; i++) { + PizzaFranchise franchise = new PizzaFranchise(storeList[i]); + + for (int j=0; j<pizzaType.length; j++) { + Pizza pizza = franchise.orderPizza(pizzaType[j]); + System.out.println(customerList[i] + " ordered a " + pizza.getName() + "\n"); + } + } } } diff --git a/src/pizzeria/TestCheesePizza.java b/src/pizzeria/TestCheesePizza.java new file mode 100644 index 0000000..f1755ee --- /dev/null +++ b/src/pizzeria/TestCheesePizza.java @@ -0,0 +1,12 @@ +package pizzeria; + +public class TestCheesePizza extends Pizza { + + public TestCheesePizza() { + name = "Test Cheese Pizza"; + dough = "Test Dough"; + sauce = "Test Sauce"; + + toppings.add("Testing cheese toppings"); + } +} diff --git a/src/pizzeria/TestPizzaStore.java b/src/pizzeria/TestPizzaStore.java new file mode 100644 index 0000000..83679eb --- /dev/null +++ b/src/pizzeria/TestPizzaStore.java @@ -0,0 +1,14 @@ +package pizzeria; + +public class TestPizzaStore extends PizzaStore { + + Pizza createPizza(String item) { + if (item.equals("cheese")) { + return new TestCheesePizza(); + } else if (item.equals("veggie")) { + return new TestVeggiePizza(); + } else return null; + } + + +} diff --git a/src/pizzeria/TestVeggiePizza.java b/src/pizzeria/TestVeggiePizza.java new file mode 100644 index 0000000..ffc72cb --- /dev/null +++ b/src/pizzeria/TestVeggiePizza.java @@ -0,0 +1,12 @@ +package pizzeria; + +public class TestVeggiePizza extends Pizza { + + public TestVeggiePizza() { + name = "Test Veggie Pizza"; + dough = "Test Dough"; + sauce = "Test Sauce"; + + toppings.add("Testing veggie toppings"); + } +} -- GitLab