package cn.vscoder.experiment_3.test;

/* 测试功能：测试图书和读者的添加功能，并调用相关方法测试借书与还书功能 */
import  cn.vscoder.experiment_3.rent.*;       // 导入 rent 包中的所有类

public class TestRentBookManageNew {
    public static void main(String args[]) {
        System.out.println("RentBookManagenew 测试程序开始：");
        RentBookManagenew bm = new RentBookManagenew();

        /* 测试图书的添加和显示 */
        bm.addBook("978-7-305-13888-3", "Java 课程设计指导", "施伯乐", "南京大学出版社", 31, "IT-202-01");
        bm.addBook("978-7-103-01234-2", "数据结构", "严蔚敏", "清华大学出版社", 41.2, "IT-401-01");
        bm.addBook("978-7-113-07777-1", "VB学习与考研指导", "施伯乐", "中国铁道出版社", 35, "IT-301-01");

        bm.displayBook();  // 显示所有图书信息

        System.out.println("\n调用 editBook(“978-7-113-07777-1”, 28.5)：");
        bm.editBook("978-7-113-07777-1", 28.5);  // 修改图书价格

        /* 测试读者的添加和设置余额 */
        System.out.println("\n调用 addReader() 和 setBalance(1000 / 500 / 80)：");
        bm.addReader("张三", "普通会员");
        bm.addReader("李四", "非会员");
        bm.addReader("王小强", "VIP");
        bm.readerlist.get(0).setBalance(1000);  // 第1位读者余额为1000
        bm.readerlist.get(1).setBalance(500);   // 第2位读者余额为500
        bm.readerlist.get(2).setBalance(80);    // 第3位读者余额为80

        bm.displayReader();  // 显示所有读者信息

        /* 测试图书租借功能 */
        System.out.println("\n测试图书租借与归还功能：");

        // 1号读者借了图书1，租借日期：2017年7月7日
        bm.addRentRecord(bm.booklist.get(0), bm.readerlist.get(0), "20170707");

        // 2号读者借了图书2，租借日期：2019年9月9日
        bm.addRentRecord(bm.booklist.get(1), bm.readerlist.get(1), "20190909");

        // 2号读者归还图书2，归还日期：2020年2月18日
        bm.returnBook(bm.booklist.get(1), bm.readerlist.get(1), "20200218");

        // 3号读者借了图书2，租借日期：2020年3月1日
        bm.addRentRecord(bm.booklist.get(1), bm.readerlist.get(2), "20200301");

        // 2号读者试图归还图书3（未借出），归还日期：2020年6月16日（测试失败情况）
        bm.returnBook(bm.booklist.get(2), bm.readerlist.get(1), "20200616");

        // 1号读者归还图书1，归还日期：2020年10月1日
        bm.returnBook(bm.booklist.get(0), bm.readerlist.get(0), "20201001");

        System.out.println("\n显示所有归还记录：");
        bm.displayReturnInfo();  // 显示所有归还记录

        System.out.println("\n显示当前借阅清单：");
        bm.displayRentInfo();    // 显示当前仍在借阅的图书记录
    }
}