From 8804a66ae523dcbce7466a66a45c467d332f653c Mon Sep 17 00:00:00 2001 From: Dagim02 Date: Thu, 21 May 2026 19:24:44 +0200 Subject: [PATCH] git commit -m feat: pizza model and cache system + testfile --- .gitignore | 3 +- task-1/com/pizzacompany/Main.java | 19 +++++++- task-1/com/pizzacompany/Order.java | 32 ++++++++++++++ task-1/com/pizzacompany/Pizza.java | 25 +++++++++++ task-1/com/pizzacompany/Size.java | 14 ++++++ task-1/com/pizzacompany/Topping.java | 16 +++++++ task-2/src/main/java/org/my/cache/Cache.java | 18 +++++--- task-2/src/main/java/org/my/cache/Main.java | 24 ++++++++++- .../test/java/org/my/cache/CacheTests.java | 43 ++++++++++++++++++- 9 files changed, 183 insertions(+), 11 deletions(-) create mode 100644 task-1/com/pizzacompany/Order.java create mode 100644 task-1/com/pizzacompany/Pizza.java create mode 100644 task-1/com/pizzacompany/Size.java create mode 100644 task-1/com/pizzacompany/Topping.java diff --git a/.gitignore b/.gitignore index 8bf518f..f4f66cb 100644 --- a/.gitignore +++ b/.gitignore @@ -156,4 +156,5 @@ dist vite.config.js.timestamp-* vite.config.ts.timestamp-* -target \ No newline at end of file +target +*.class diff --git a/task-1/com/pizzacompany/Main.java b/task-1/com/pizzacompany/Main.java index 5c380fa..5d293ba 100644 --- a/task-1/com/pizzacompany/Main.java +++ b/task-1/com/pizzacompany/Main.java @@ -1,7 +1,24 @@ package com.pizzacompany; +import java.util.List; + public class Main { public static void main(String[] args) { - System.out.println("Hello Pizza!"); + + Order myOrder = new Order(); + + Pizza pizza1 = new Pizza(Size.MEDIUM, List.of(Topping.CHEESE, Topping.MUSHROOMS)); + myOrder.addPizza(pizza1); + + + Pizza pizza2 = new Pizza(Size.LARGE, List.of(Topping.PEPPERONI, Topping.OLIVES, Topping.CHEESE)); + myOrder.addPizza(pizza2); + + + Pizza pizza3 = new Pizza(Size.SMALL, List.of(Topping.PINEAPPLE)); + myOrder.addPizza(pizza3); + + + myOrder.printReceipt(); } } \ No newline at end of file diff --git a/task-1/com/pizzacompany/Order.java b/task-1/com/pizzacompany/Order.java new file mode 100644 index 0000000..b84fe15 --- /dev/null +++ b/task-1/com/pizzacompany/Order.java @@ -0,0 +1,32 @@ +package com.pizzacompany; + +import java.util.ArrayList; +import java.util.List; + +public class Order { + + private List pizzas = new ArrayList<>(); + + public void addPizza(Pizza pizza) { + pizzas.add(pizza); + } + + public double getTotalPrice() { + double totalOrderPrice = 0.0; + for (Pizza pizza : pizzas) { + totalOrderPrice += pizza.getTotalPrice(); + } + return totalOrderPrice; + } + + 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())); + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Pizza.java b/task-1/com/pizzacompany/Pizza.java new file mode 100644 index 0000000..04f2c35 --- /dev/null +++ b/task-1/com/pizzacompany/Pizza.java @@ -0,0 +1,25 @@ +package com.pizzacompany; + +import java.util.List; + +public class Pizza { + private Size size; + private List toppings; + + public Pizza (Size size, List toppings) { + this.size = size; + this.toppings = toppings; + } + + public double getTotalPrice(){ + double total = size.getBasePrice(); + for (Topping topping : toppings){ + total += topping.getPrice(); + } + return total; + } + @Override + public String toString(){ + return size + " pizza with " + toppings + " -$" + String.format("%.2f", getTotalPrice()); + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Size.java b/task-1/com/pizzacompany/Size.java new file mode 100644 index 0000000..314ade8 --- /dev/null +++ b/task-1/com/pizzacompany/Size.java @@ -0,0 +1,14 @@ +package com.pizzacompany; + +public enum Size{ + SMALL(6.00), MEDIUM(9.00), LARGE(12.00); + private final double basePrice; + + Size(double basePrice){ + this.basePrice = basePrice; + } + + public double getBasePrice(){ + return basePrice; + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Topping.java b/task-1/com/pizzacompany/Topping.java new file mode 100644 index 0000000..a39b505 --- /dev/null +++ b/task-1/com/pizzacompany/Topping.java @@ -0,0 +1,16 @@ +package com.pizzacompany; + +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; + } + +} \ No newline at end of file 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..48d02cc 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,28 @@ package org.my.cache; +import java.util.HashMap; +import java.util.Map; + class Cache { + private final Map storage = new HashMap<>(); + public void put(String key, T value) { - throw new UnsupportedOperationException("Not implemented yet"); + storage.put(key, value); } public T get(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return storage.get(key); } public T remove(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return storage.remove(key); } public int size() { - throw new UnsupportedOperationException("Not implemented yet"); + return storage.size(); } public void clear() { - throw new UnsupportedOperationException("Not implemented yet"); + storage.clear(); } - -} +} \ No newline at end of file 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..c8b1dec 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,28 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello Cache!"); + + + System.out.println(" Hello Cache!"); + + Cache stringCache = new Cache(); + + stringCache.put("name", "Daniel"); + System.out.println(stringCache.get("name")); + System.out.println(stringCache.get("city")); + + System.out.println(); + + + Cache numberCache = new Cache(); + numberCache.put("Tata", 6757575); + numberCache.put("Paul", 7878787); + + System.out.println(numberCache.size()); + numberCache.remove("Tata"); + System.out.println(numberCache.get("Tata")); + + + } } \ No newline at end of file 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..cbbd653 100644 --- a/task-2/src/test/java/org/my/cache/CacheTests.java +++ b/task-2/src/test/java/org/my/cache/CacheTests.java @@ -9,4 +9,45 @@ class CacheTests { void simpleTest() { assertEquals(2, 1 + 1); } -} + + @Test + void putAndGetReturnsValue() { + Cache stringCache = new Cache<>(); + stringCache.put("name", "Daniel"); + assertEquals("Daniel", stringCache.get("name")); + } + + @Test + void getMissingReturnsNull() { + Cache stringCache = new Cache<>(); + assertNull(stringCache.get("city")); + } + + @Test + void removeReturnValueAndRemoves() { + Cache numberCache = new Cache<>(); + numberCache.put("Tata", 6757575); + + assertEquals(6757575, numberCache.remove("Tata")); + assertNull(numberCache.get("Tata")); + } + + @Test + void sizeCountsEntries() { + Cache numberCache = new Cache<>(); + numberCache.put("Tata", 6757575); + numberCache.put("Paul", 7878787); + + assertEquals(2, numberCache.size()); + } + + @Test + void clearEmptiesCache() { + Cache cache = new Cache<>(); + cache.put("name", "Daniel"); + + assertEquals(1, cache.size()); + cache.clear(); + assertEquals(0, cache.size()); + } +} \ No newline at end of file