From 7e7630b7cbcf52c5ac5c77362754c3d776743abf Mon Sep 17 00:00:00 2001 From: Salem Ba-Rabuod Date: Tue, 19 May 2026 23:33:09 +0200 Subject: [PATCH 1/5] Add enums classes --- task-1/com/pizzacompany/enums/Size.java | 18 ++++++++++++++++++ task-1/com/pizzacompany/enums/Topping.java | 19 +++++++++++++++++++ task-1/com/pizzacompany/model/Order.java | 4 ++++ task-1/com/pizzacompany/model/Pizza.java | 4 ++++ 4 files changed, 45 insertions(+) create mode 100644 task-1/com/pizzacompany/enums/Size.java create mode 100644 task-1/com/pizzacompany/enums/Topping.java create mode 100644 task-1/com/pizzacompany/model/Order.java create mode 100644 task-1/com/pizzacompany/model/Pizza.java diff --git a/task-1/com/pizzacompany/enums/Size.java b/task-1/com/pizzacompany/enums/Size.java new file mode 100644 index 0000000..92d9472 --- /dev/null +++ b/task-1/com/pizzacompany/enums/Size.java @@ -0,0 +1,18 @@ +package com.pizzacompany.enums; + +public enum Size { + SMALL(6), + MEDIUM(9), + LARGE(12) + ; + + private final Integer price; + + Size(int price) { + this.price = price; + } + + public Integer getBasePrice(){ + return price; + } +} diff --git a/task-1/com/pizzacompany/enums/Topping.java b/task-1/com/pizzacompany/enums/Topping.java new file mode 100644 index 0000000..97540fa --- /dev/null +++ b/task-1/com/pizzacompany/enums/Topping.java @@ -0,0 +1,19 @@ +package com.pizzacompany.enums; + +public enum Topping { + CHEESE(1.00), + MUSHROOMS(1.50), + PEPPERONI(2.00), + OLIVES(1.00), + PINEAPPLE(1.50); + + private final double price; + + Topping(double price) { + this.price = price; + } + + public double getPrice() { + return price; + } +} diff --git a/task-1/com/pizzacompany/model/Order.java b/task-1/com/pizzacompany/model/Order.java new file mode 100644 index 0000000..1d50a52 --- /dev/null +++ b/task-1/com/pizzacompany/model/Order.java @@ -0,0 +1,4 @@ +package com.pizzacompany; + +public enum Order { +} diff --git a/task-1/com/pizzacompany/model/Pizza.java b/task-1/com/pizzacompany/model/Pizza.java new file mode 100644 index 0000000..14528e8 --- /dev/null +++ b/task-1/com/pizzacompany/model/Pizza.java @@ -0,0 +1,4 @@ +package com.pizzacompany; + +public class Pizza { +} From 7a79fec295255acff9c6e7d2159f828eaf2efa92 Mon Sep 17 00:00:00 2001 From: Salem Ba-Rabuod Date: Wed, 20 May 2026 13:46:53 +0200 Subject: [PATCH 2/5] implement all model logic --- task-1/com/pizzacompany/model/Order.java | 35 +++++++++++++++++++-- task-1/com/pizzacompany/model/Pizza.java | 39 +++++++++++++++++++++++- 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/task-1/com/pizzacompany/model/Order.java b/task-1/com/pizzacompany/model/Order.java index 1d50a52..0d64aba 100644 --- a/task-1/com/pizzacompany/model/Order.java +++ b/task-1/com/pizzacompany/model/Order.java @@ -1,4 +1,35 @@ -package com.pizzacompany; +package com.pizzacompany.model; -public enum Order { +import java.util.ArrayList; +import java.util.List; + +public class Order { + List pizzas; + + public Order() { + this.pizzas = new ArrayList<>(); + } + + public void addPizza(Pizza pizza) { + pizzas.add(pizza); + } + + public double getTotalPrice() { + double total = 0; + for (Pizza pizza : pizzas) { + total += pizza.getTotalPrice(); + } + return total; + } + + public void printReceipt(){ + System.out.println("=== Receipt ==="); + + for (Pizza pizza : pizzas) { + System.out.println(pizza); + } + + System.out.println("---------------"); + System.out.println("Total: €" + String.format("€%.2f", getTotalPrice())); + } } diff --git a/task-1/com/pizzacompany/model/Pizza.java b/task-1/com/pizzacompany/model/Pizza.java index 14528e8..6d31e84 100644 --- a/task-1/com/pizzacompany/model/Pizza.java +++ b/task-1/com/pizzacompany/model/Pizza.java @@ -1,4 +1,41 @@ -package com.pizzacompany; +package com.pizzacompany.model; + +import com.pizzacompany.enums.Size; +import com.pizzacompany.enums.Topping; + +import java.util.ArrayList; +import java.util.List; public class Pizza { + private final Size size; + private List toppingList = new ArrayList<>(); + + public Pizza(Size size, List toppingList) { + this.size = size; + this.toppingList = toppingList; + } + + public List getToppingList() { + return toppingList; + } + + public Size getSize() { + return size; + } + + public double getTotalPrice(){ + double totalPrice = 0; + for (Topping topping : toppingList) { + totalPrice += topping.getPrice(); + } + totalPrice += size.getBasePrice(); + return totalPrice; + } + + @Override + public String toString() { + // MEDIUM pizza with [CHEESE, MUSHROOMS] - €11.50 + return size + " pizza with " + toppingList + " - €" + String.format(" - €%.2f", getTotalPrice()); + } + } From 3863b6f127f50a32e22538ae49be2e61dd38c9fa Mon Sep 17 00:00:00 2001 From: Salem Ba-Rabuod Date: Wed, 20 May 2026 13:50:16 +0200 Subject: [PATCH 3/5] test & complete task1 --- task-1/com/pizzacompany/Main.java | 34 ++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/task-1/com/pizzacompany/Main.java b/task-1/com/pizzacompany/Main.java index 5c380fa..0c09f30 100644 --- a/task-1/com/pizzacompany/Main.java +++ b/task-1/com/pizzacompany/Main.java @@ -1,7 +1,39 @@ package com.pizzacompany; + +import com.pizzacompany.enums.Size; +import com.pizzacompany.enums.Topping; +import com.pizzacompany.model.Order; +import com.pizzacompany.model.Pizza; + +import java.util.ArrayList; +import java.util.List; + public class Main { public static void main(String[] args) { - System.out.println("Hello Pizza!"); + Order order = new Order(); + + List toppingsFirstPizza = new ArrayList<>(); + toppingsFirstPizza.add(Topping.CHEESE); + toppingsFirstPizza.add(Topping.MUSHROOMS); + + Pizza pizza1 = new Pizza(Size.MEDIUM, toppingsFirstPizza); + order.addPizza(pizza1); + + List toppingsSecondPizza = new ArrayList<>(); + toppingsSecondPizza.add(Topping.PINEAPPLE); + toppingsSecondPizza.add(Topping.OLIVES); + toppingsSecondPizza.add(Topping.CHEESE); + + Pizza pizza2 = new Pizza(Size.LARGE, toppingsSecondPizza); + order.addPizza(pizza2); + + List toppingsThirdPizza = new ArrayList<>(); + toppingsThirdPizza.add(Topping.PINEAPPLE); + + Pizza pizza3 = new Pizza(Size.SMALL, toppingsThirdPizza); + order.addPizza(pizza3); + + order.printReceipt(); } } \ No newline at end of file From aab58d3252ecd478e2b6f818f24f7a3bc919bacc Mon Sep 17 00:00:00 2001 From: Salem Ba-Rabuod Date: Wed, 20 May 2026 23:02:56 +0200 Subject: [PATCH 4/5] implement Cash Class --- task-2/src/main/java/org/my/cache/Cache.java | 16 +++++++++++----- task-2/src/main/java/org/my/cache/Main.java | 13 ++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/task-2/src/main/java/org/my/cache/Cache.java b/task-2/src/main/java/org/my/cache/Cache.java index 3804372..a6895fd 100644 --- a/task-2/src/main/java/org/my/cache/Cache.java +++ b/task-2/src/main/java/org/my/cache/Cache.java @@ -1,24 +1,30 @@ package org.my.cache; +import java.util.HashMap; +import java.util.Map; + class Cache { + + private Map cash = new HashMap<>(); + public void put(String key, T value) { - throw new UnsupportedOperationException("Not implemented yet"); + cash.put(key, value); } public T get(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return cash.get(key); } public T remove(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return cash.remove(key); } public int size() { - throw new UnsupportedOperationException("Not implemented yet"); + return cash.size(); } public void clear() { - throw new UnsupportedOperationException("Not implemented yet"); + cash.clear(); } } diff --git a/task-2/src/main/java/org/my/cache/Main.java b/task-2/src/main/java/org/my/cache/Main.java index 38c023b..1b6ffe3 100644 --- a/task-2/src/main/java/org/my/cache/Main.java +++ b/task-2/src/main/java/org/my/cache/Main.java @@ -2,6 +2,17 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello Cache!"); + Cache stringCache = new Cache(); + stringCache.put("name", "HackYourFuture"); + System.out.println(stringCache.get("name")); // -> "HackYourFuture" + System.out.println(stringCache.get("city")); // -> null + + Cache numberCache = new Cache(); + numberCache.put("c1", 12345); + numberCache.put("c2", 54321); + numberCache.put("c3", 54321); + System.out.println(numberCache.size()); // -> 2 + numberCache.remove("c1"); + System.out.println(numberCache.get("c1")); // -> null } } \ No newline at end of file From 9b8e0326b74668703f00efb083147eeab4153203 Mon Sep 17 00:00:00 2001 From: Salem Ba-Rabuod Date: Thu, 21 May 2026 21:51:47 +0200 Subject: [PATCH 5/5] Added test units --- task-2/src/main/java/org/my/cache/Main.java | 11 ++-- .../test/java/org/my/cache/CacheTests.java | 60 ++++++++++++++++++- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/task-2/src/main/java/org/my/cache/Main.java b/task-2/src/main/java/org/my/cache/Main.java index 1b6ffe3..2ae895a 100644 --- a/task-2/src/main/java/org/my/cache/Main.java +++ b/task-2/src/main/java/org/my/cache/Main.java @@ -7,11 +7,12 @@ public static void main(String[] args) { System.out.println(stringCache.get("name")); // -> "HackYourFuture" System.out.println(stringCache.get("city")); // -> null - Cache numberCache = new Cache(); - numberCache.put("c1", 12345); - numberCache.put("c2", 54321); - numberCache.put("c3", 54321); - System.out.println(numberCache.size()); // -> 2 + Cache numberCache = new Cache(); + numberCache.put("c1", 15.25); + numberCache.put("c2", 20.25); + numberCache.put("c3", 31.77); + System.out.println(numberCache.size()); // -> 3 + System.out.println(numberCache.get("c1")); // -> 15.25 numberCache.remove("c1"); System.out.println(numberCache.get("c1")); // -> null } diff --git a/task-2/src/test/java/org/my/cache/CacheTests.java b/task-2/src/test/java/org/my/cache/CacheTests.java index 3afbee4..2f1b585 100644 --- a/task-2/src/test/java/org/my/cache/CacheTests.java +++ b/task-2/src/test/java/org/my/cache/CacheTests.java @@ -1,12 +1,68 @@ package org.my.cache; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class CacheTests { + // Arrange + private Cache cache; + @BeforeEach + void setUp() { + cache = new Cache(); + } + + + @Test + void putIncreasesSize() { + // Act + cache.put("name", "Salem"); + + // Assert + assertEquals(1, cache.size()); + } + + @Test - void simpleTest() { - assertEquals(2, 1 + 1); + void getItemNotExist() { + // Act + cache.put("City", "Amsterdam"); + + // Assert + assertNull(cache.get("Age")); } + + + @Test + void removeItem() { + // Act + cache.put("City", "Amsterdam"); + cache.remove("City"); + + // Assert + assertEquals(0, cache.size()); + } + + + @Test + void returnSizeArray() { + // Act + cache.put("City", "Amsterdam"); + cache.put("Name", "Ali"); + + // Assert + assertEquals(2, cache.size()); + } + + @Test + void emptyArray() { + // Act + cache.put("City", "Amsterdam"); + cache.put("Name", "Ali"); + cache.clear(); + // Assert + assertEquals(0, cache.size()); + } + }