diff --git a/lesson_13/maps_java/maps_app/build.gradle.kts b/lesson_13/maps_java/maps_app/build.gradle.kts index a84f2c075..586cd40ba 100644 --- a/lesson_13/maps_java/maps_app/build.gradle.kts +++ b/lesson_13/maps_java/maps_app/build.gradle.kts @@ -32,7 +32,7 @@ dependencies { application { // Define the main class for the application. - mainClass.set("com.codedifferently.lesson12.Lesson12") + mainClass.set("com.codedifferently.lesson13.Lesson13") } tasks.named("test") { diff --git a/lesson_14/exceptions/exceptions_app/build.gradle.kts b/lesson_14/exceptions/exceptions_app/build.gradle.kts index a84f2c075..7fd6c75f2 100644 --- a/lesson_14/exceptions/exceptions_app/build.gradle.kts +++ b/lesson_14/exceptions/exceptions_app/build.gradle.kts @@ -32,7 +32,7 @@ dependencies { application { // Define the main class for the application. - mainClass.set("com.codedifferently.lesson12.Lesson12") + mainClass.set("com.codedifferently.lesson14.Lesson14") } tasks.named("test") { diff --git a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java index 77cf26937..2d9d184d2 100644 --- a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java +++ b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/EcommerceSystem.java @@ -5,6 +5,7 @@ import java.util.UUID; public class EcommerceSystem { + private Map products; private Map orders; @@ -17,8 +18,11 @@ public void addProduct(String productId, String name) { products.put(productId, new Product(productId, name)); } - public String placeOrder(String productId, int quantity) { + public String placeOrder(String productId, int quantity) throws ProductNotFoundException { Product product = products.get(productId); + if (product == null) { + throw new ProductNotFoundException("Product with ID " + productId + " not found"); + } String orderId = UUID.randomUUID().toString(); orders.put(orderId, new Order(orderId, product, quantity)); return orderId; @@ -28,8 +32,11 @@ public void cancelOrder(String orderId) { orders.remove(orderId); } - public String checkOrderStatus(String orderId) { + public String checkOrderStatus(String orderId) throws OrderNotFoundException { Order order = orders.get(orderId); + if (order == null) { + throw new OrderNotFoundException("Order with ID " + orderId + " not found"); + } return "Order ID: " + orderId + ", Product: " diff --git a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java index 25aa814eb..38aa320b5 100644 --- a/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java +++ b/lesson_14/exceptions/exceptions_app/src/main/java/com/codedifferently/lesson14/ecommerce/ProductNotFoundException.java @@ -2,7 +2,11 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ - package com.codedifferently.lesson14.ecommerce; -class ProductNotFoundException {} +class ProductNotFoundException extends RuntimeException { + + ProductNotFoundException(String message) { + super(message); + } +} diff --git a/lesson_14/exceptions/exceptions_app/src/test/java/com/codedifferently/lesson14/ecommerce/EcommerceSystemTest.java b/lesson_14/exceptions/exceptions_app/src/test/java/com/codedifferently/lesson14/ecommerce/EcommerceSystemTest.java index cf2493298..52194dfa3 100644 --- a/lesson_14/exceptions/exceptions_app/src/test/java/com/codedifferently/lesson14/ecommerce/EcommerceSystemTest.java +++ b/lesson_14/exceptions/exceptions_app/src/test/java/com/codedifferently/lesson14/ecommerce/EcommerceSystemTest.java @@ -40,6 +40,11 @@ void testPlaceOrder_productDoesNotExist() throws Exception { assertThatThrownBy(() -> ecommerceSystem.placeOrder("1", 1)) .isInstanceOf(ProductNotFoundException.class) .hasMessage("Product with ID 1 not found"); + + // Act + assertThatThrownBy(() -> ecommerceSystem.placeOrder("34", 1)) + .isInstanceOf(ProductNotFoundException.class) + .hasMessage("Product with ID 34 not found"); } @Test @@ -58,18 +63,23 @@ void testCheckOrderStatus_orderDoesNotExist() { assertThatThrownBy(() -> ecommerceSystem.checkOrderStatus("1")) .isInstanceOf(OrderNotFoundException.class) .hasMessage("Order with ID 1 not found"); + + // Act + assertThatThrownBy(() -> ecommerceSystem.checkOrderStatus("33")) + .isInstanceOf(OrderNotFoundException.class) + .hasMessage("Order with ID 33 not found"); } @Test void testCheckOrderStatus_orderCancelled() throws Exception { // Arrange - ecommerceSystem.addProduct("1", "Laptop"); - String orderId = ecommerceSystem.placeOrder("1", 1); + ecommerceSystem.addProduct("58", "Laptop"); + String orderId = ecommerceSystem.placeOrder("58", 1); ecommerceSystem.cancelOrder(orderId); // Act - assertThatThrownBy(() -> ecommerceSystem.checkOrderStatus("1")) + assertThatThrownBy(() -> ecommerceSystem.checkOrderStatus("58")) .isInstanceOf(OrderNotFoundException.class) - .hasMessage("Order with ID 1 not found"); + .hasMessage("Order with ID 58 not found"); } }