Implementing Additional Features for the Shopping Cart
Additional Features for Shopping Cart
Welcome to the fourth unit of our course, dedicated to practicing Test Driven Development (TDD) with Java and JUnit. We'll continue expanding our ShoppingCart system by adding additional features.
This hands-on course emphasizes receiving requirements through tests, one at a time. Your task is to write tests AND implement the code to pass each test, simulating a real-world TDD environment.
Remember to employ the core concepts of the Red-Green-Refactor cycle while completing these coding exercises. I'm here to assist! Just ask if needed.
New Requirements for ShoppingCart Class
The following requirements will introduce additional features for the ShoppingCart class, enabling robust handling of discounts, item management, and overall cart operations.
These enhancements will help solidify your TDD skills while building a more versatile system!
6. Removing a Non-Existent Item
-
Description: Trying to remove an item that is not present in the cart should throw an exception indicating that the item was not found.
-
Details
- Implement the removal through a
removeItem(int id)method. - Ensure the method throws an exception with an appropriate message if the item is not found in the cart.
- Implement the removal through a
-
Examples: Attempting to remove an item with
Id: 999should throw an exception with the message"Item not found".
7. Applying Percentage Discount
-
Description: Applying a percentage discount should adjust the total price of the items in the cart accordingly.
-
Details
- Use the
applyDiscount(double percentage)method to apply a percentage discount to the total. - Ensure
getTotal()returns the adjusted price after applying the discount.
- Use the
-
Examples: Applying a 10% discount to a total price of
100should result in a new total of90.
8. Applying a Bulk Discount
-
Description: Automatically apply a 10% discount when the total price of items in the cart exceeds $150.
-
Details
- If the total exceeds 150, the 10% discount should be automatically applied.
- The
getTotal()method should return the discounted total when the discount is applicable.
-
Examples: Adding a
"Book"with price200should result in a total of180after applying the bulk discount.
