package com.yj.test;

import com.yj.bean.Cart;
import com.yj.bean.CartItem;
import org.junit.Test;

import java.math.BigDecimal;

/**
 * @author yj
 * @create 2020-08-26 20:30
 */
// 定义一个测试类CartTest，用于测试Cart类的功能
public class CartTest {

    // 使用@Test注解标记的方法表示这是一个测试方法，通常与测试框架（如JUnit）一起使用
    @Test
    public void addItem() {
        // 创建一个新的Cart对象
        Cart cart = new Cart();
        // 向购物车中添加一个商品项，注意这里totalPrice应该是根据price和count计算得出的，但此处直接给出
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        // 再次添加相同的商品项，理论上应该更新数量而不是添加新项（但根据代码，它会添加新项）
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        // 添加一个不同的商品项
        cart.addItem(new CartItem(2,"你妹的",1,new BigDecimal(5),new BigDecimal(66)));
        // 打印购物车的内容，输出将取决于Cart类的toString方法实现
        System.out.println(cart);
    }

    // 另一个测试方法，用于测试删除商品项的功能
    @Test
    public void deleteItem() {
        // 创建一个新的Cart对象并添加一些商品项
        Cart cart = new Cart();
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(2,"你妹的",1,new BigDecimal(5),new BigDecimal(66)));
        // 根据商品ID删除商品项，理论上应该删除所有ID匹配的项
        cart.deleteItem(1);
        // 打印购物车的内容，查看删除操作的结果
        System.out.println(cart);
    }

    // 测试清空购物车的方法
    @Test
    public void clear() {
        // 创建一个新的Cart对象并添加一些商品项
        Cart cart = new Cart();
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(2,"你妹的",1,new BigDecimal(5),new BigDecimal(66)));
        // 清空购物车中的所有商品项
        cart.clear();
        // 打印购物车的内容，应该为空
        System.out.println(cart);
    }

    // 测试更新商品数量的方法
    @Test
    public void updateCount() {
        // 创建一个新的Cart对象并添加一些商品项
        Cart cart = new Cart();
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(1,"lkjs",1,new BigDecimal(5),new BigDecimal(66)));
        cart.addItem(new CartItem(2,"你妹的",1,new BigDecimal(5),new BigDecimal(66)));
        // 根据商品ID更新商品数量，注意这里可能需要根据业务逻辑决定是更新现有项还是添加新项
        cart.updateCount(1,5);
        // 假设意图是将ID为1的商品数量更新为5
        // 打印购物车的内容，查看更新操作的结果
        System.out.println(cart);
    }
}