/** * 订单处理系统测试类 */ package com.orderprocessing; import java.util.ArrayList; import java.util.List; public class OrderProcessingTest { public static void main(String[] args) { // 创建日志记录器 Logger logger = new ConsoleLogger(); // 创建订单验证器 OrderValidator validator = new OrderValidator(); // 创建订单通知器 OrderNotifier notifier = new OrderNotifier(logger); // 创建订单处理器 OrderProcessor processor = new OrderProcessor(validator, notifier, logger); // 创建测试订单项 List items = new ArrayList<>(); items.add(new OrderItem("P001", "笔记本电脑", 1, 5999.0)); items.add(new OrderItem("P002", "无线鼠标", 1, 99.0)); // 创建订单 Order order = new Order("ORD-2024-001", "张三", items); System.out.println("=== 测试1: 基本订单处理 ==="); processor.processOrder(order); System.out.println(); // 测试2:应用百分比折扣 System.out.println("=== 测试2: 应用10%折扣 ==="); Order order2 = new Order("ORD-2024-002", "李四", items); processor.setDiscountStrategy(new PercentageDiscountStrategy(0.1)); // 10%折扣 processor.processOrder(order2); System.out.println(); // 测试3:应用固定金额折扣 System.out.println("=== 测试3: 应用固定金额折扣 ==="); Order order3 = new Order("ORD-2024-003", "王五", items); processor.setDiscountStrategy(new FixedAmountDiscountStrategy(500, 1000)); // 固定500元折扣,最低消费1000元 processor.processOrder(order3); System.out.println(); // 测试4:无效订单 System.out.println("=== 测试4: 无效订单测试 ==="); List invalidItems = new ArrayList<>(); invalidItems.add(new OrderItem("", "无效商品", 1, 100.0)); // 产品ID为空 Order invalidOrder = new Order("ORD-2024-004", "赵六", invalidItems); processor.processOrder(invalidOrder); } }