123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package adminuser
- import (
- "fmt"
- "github.com/pkg/errors"
- "golang.org/x/crypto/bcrypt"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "gorm.io/gorm/schema"
- req "sghgogs.com/sghblog/authorization-service/domain/model/request"
- "sghgogs.com/sghblog/authorization-service/domain/repository"
- "sghgogs.com/sghblog/authorization-service/domain/service"
- pb "sghgogs.com/sghblog/authorization-service/proto"
- "testing"
- )
- // hashPassword 使用 bcrypt 对密码进行哈希
- func hashPassword(password string) (string, error) {
- hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
- if err != nil {
- return "", err
- }
- return string(hash), nil
- }
- func TestAdminLogin(t *testing.T) {
- address := fmt.Sprintf("%v:%v@(%v:%v)/%v?charset=utf8mb4,utf8&parseTime=True&loc=Local", "root", "xugang131500", "47.56.16.206", 3306, "sghblog")
- db, err := gorm.Open(mysql.Open(address), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Info),
- NamingStrategy: schema.NamingStrategy{
- SingularTable: true,
- }})
- if err != nil {
- t.Fatal(err)
- }
- repo := repository.NewRepository(db)
- newService := service.NewService(repo)
- t.Run("sql 测试查询", func(t *testing.T) {
- var unassignedRoles []req.AdminRole
- db.Model(req.AdminRole{}).
- Where("NOT EXISTS (SELECT 1 FROM admin_user_role WHERE admin_role.id = admin_user_role.admin_role_id AND admin_user_role.admin_user_id = ?)", 1).
- Find(&unassignedRoles)
- fmt.Println("unassignedRoles", unassignedRoles)
- })
- t.Run("测试查询语句", func(t *testing.T) {
- if err = db.Where("id = ? ", 2).First(&req.AdminUser{}).Error; err != nil {
- if errors.Is(err, gorm.ErrRecordNotFound) {
- // ID 为 6 的用户不存在
- fmt.Println("用户不存在:", err)
- } else {
- // 处理其他错误
- fmt.Errorf("查找用户出错: %v", err)
- }
- }
- })
- t.Run("更新账号信息", func(t *testing.T) {
- // newService.ToggleAdminUser(&pb.ToggleAdminUserRequest{
- // UserId: 1,
- // Status: pb.StatusEnum_ENABLED,
- // })
- var users []req.AdminUser
- err2 := db.Model(req.AdminUser{}).Where("id IN ?", []int64{1, 2, 3, 4, 5, 6, 7}).Find(&users).Error
- fmt.Println(err2)
- fmt.Println("users", len(users))
- // db.Model(&req.AdminUser{}).Where("id = ?", 7).Updates(map[string]interface{}{
- // "status": pb.StatusEnum_ENABLED,
- // })
- })
- t.Run("创建账号", func(t *testing.T) {
- // Username: adminUser.Username,
- // Password: password,
- // PhoneNumber: adminUser.PhoneNumber,
- // Email: adminUser.Email,
- // Avatar: adminUser.Avatar,
- err2 := newService.CreateAdminUser(&pb.CreateAdminUserRequest{
- Username: "kube_admin",
- Password: "123456",
- PhoneNumber: "13900000000",
- Email: "sghblog@163.com",
- Avatar: "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
- })
- // request := &authorization_service.CreateAdminUserRequest{
- // Username: "admin",
- // Password: password,
- // // Status: "enabled",
- // // IsReserved: true,
- // // CreatedAt: time.Now().Unix(),
- // }
- // 调用 AdminLogin 方法
- // err = newService.CreateAdminUser(request)
- fmt.Println(err2)
- })
- t.Run("账号关联角色", func(t *testing.T) {
- // request := &authorization_service.AssociateAdminUserWithRoleRequest{
- // UserId: 1,
- // }
- // // 调用 AdminLogin 方法
- // err = newService.AssociateUserWithRole(request)
- // fmt.Println(err)
- })
- t.Run("取消关联", func(t *testing.T) {
- // newService.RevokeAdminUserWithRole()
- })
- t.Run("获取个人信息", func(t *testing.T) {
- user, err2 := newService.GetAdminUser(1)
- fmt.Println(err2)
- fmt.Println(user)
- })
- t.Run("获取列表", func(t *testing.T) {
- // var users []req.AdminUser
- adminUsers, _, _ := newService.ListAdminUsers(&pb.ListAdminUsersRequest{
- Page: 1,
- PageSize: 10,
- Keyword: "",
- })
- fmt.Println(adminUsers)
- })
- t.Run("获取列表", func(t *testing.T) {
- // roles, err2 := newService.GetAdminUserAssociatedRoles("role_admin")
- // fmt.Println(err2)
- // fmt.Println(roles)
- })
- t.Run("更新个人信息", func(t *testing.T) {
- // unix := time.Now().AddDate(-20, 0, 0).Unix()
- // profileInfoRequest := &authorization_service.UpdateAdminUserProfileInfoRequest{
- // UserId: 1,
- // Profile: &authorization_service.AdminUserProfile{
- // Avatar: "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
- // PhoneNumber: "13800000000",
- // Email: "sghblog@163.com",
- // Bio: "没啥要说的",
- // Birthdate: unix,
- // Gender: 0,
- // Address: "北京",
- // Website: "https://sghblog.com",
- // },
- // }
- // err = newService.UpdateAdminUserProfileInfoRequest(profileInfoRequest)
- fmt.Println(err)
- })
- // AssociateUserWithRole
- // user, err := repo.AdminLogin(loginRequest)
- // 断言期望的结果
- // assert.NoError(t, err)
- // assert.NotNil(t, user)
- // assert.Equal(t, loginRequest.Username, user.Username)
- }
|