|
|
/**
|
|
|
* 订单处理系统测试类
|
|
|
*/
|
|
|
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<OrderItem> 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<OrderItem> invalidItems = new ArrayList<>();
|
|
|
invalidItems.add(new OrderItem("", "无效商品", 1, 100.0)); // 产品ID为空
|
|
|
Order invalidOrder = new Order("ORD-2024-004", "赵六", invalidItems);
|
|
|
processor.processOrder(invalidOrder);
|
|
|
}
|
|
|
} |