package com.yj.test;

import com.yj.bean.User;
import com.yj.dao.UserDao;
import com.yj.dao.impl.UserDaoImpl;
import com.yj.service.impl.UserServiceImpl;
import org.junit.Test;

import java.sql.SQLOutput;
import java.util.List;

/**
 * @author yj
 * @create 2020-08-21 15:14
 */
import org.junit.Test;

public class UserDaoTest {

    // 创建UserDao的实例，用于测试
    UserDao userDao = new UserDaoImpl();

    /**
     * 测试根据用户名查询用户
     * 如果返回值为null，则表示用户名可用，否则表示用户名已存在
     */
    @Test
    public void querybyUsername() {
        if (userDao.querybyUsername("yan1gjie") == null) {
            System.out.println("用户名可用");
        } else {
            System.out.println("用户名已存在!");
        }
        // System.out.println(userDao.querybyUsername("yangjie"));
    }

    /**
     * 测试根据用户名和密码查询用户
     * 如果返回值为null，则表示登录失败（密码错误或用户名错误），否则表示登录成功
     */
    @Test
    public void querybyUsernameAndPassword() {
        if (userDao.querybyUsernameAndPassword("yagjie", "yanjie") == null) {
            System.out.println("密码错误或用户名错误");
        } else {
            System.out.println("登陆成功");
        }
    }

    /**
     * 测试保存用户信息
     * 输出保存用户操作的结果
     */
    @Test
    public void saveUser() {
        System.out.println(userDao.saveUser(new User(null, "yangjie2", "yangjie", "wzg168@qq.com", "大河湾")));
    }

    /**
     * 测试添加新用户
     * 输出添加用户操作的结果
     */
    @Test
    public void addUser() {
        System.out.println(userDao.addUser(new User(null, "舒胡2贤", "123456", "123456@qq.com", "贵州")));
    }

    /**
     * 测试根据用户ID删除用户
     * 输出删除用户操作的结果
     */
    @Test
    public void deleteUserById() {
        System.out.println(userDao.deleteUserById(3));
    }

    /**
     * 测试更新用户信息
     * 输出更新用户操作的结果
     */
    @Test
    public void updateUser() {
        System.out.println(userDao.updateUser(new User(3, "舒胡贤", "123456", "123456@qq.com", "贵州")));
    }

    @Test
    public void queryUserById() {
        // 根据用户ID查询用户信息
        User user = userDao.queryUserById(1);
        // 输出查询到的用户信息
        System.out.println(user);
    }

    @Test
    public void queryUsers() {
        // 查询所有用户的信息
        List<User> users = userDao.queryUsers();
        // 输出所有用户的信息
        System.out.println(users);
    }

    @Test
    public void queryForPageTotalCount() {
        // 查询用户总数，用于分页功能
        System.out.println(userDao.queryForPageTotalCount());
    }

    @Test
    public void queryForPageItems() {
        // 查询指定页码和每页数量的用户信息
        // 这里查询第一页的2条用户记录
        System.out.println(userDao.queryForPageItems(1, 2));
    }
}