admin_role_test.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package admin_role
  2. import (
  3. "context"
  4. "fmt"
  5. "golang.org/x/crypto/bcrypt"
  6. "gorm.io/driver/mysql"
  7. "gorm.io/gorm"
  8. "gorm.io/gorm/logger"
  9. "gorm.io/gorm/schema"
  10. req "sghgogs.com/sghblog/authorization-service/domain/model/request"
  11. "sghgogs.com/sghblog/authorization-service/domain/repository"
  12. "sghgogs.com/sghblog/authorization-service/domain/service"
  13. pb "sghgogs.com/sghblog/authorization-service/proto"
  14. "testing"
  15. )
  16. // hashPassword 使用 bcrypt 对密码进行哈希
  17. func hashPassword(password string) (string, error) {
  18. hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
  19. if err != nil {
  20. return "", err
  21. }
  22. return string(hash), nil
  23. }
  24. func TestAdminLogin(t *testing.T) {
  25. address := fmt.Sprintf("%v:%v@(%v:%v)/%v?charset=utf8mb4,utf8&parseTime=True&loc=Local", "root", "xugang131500", "47.56.16.206", 3306, "sghblog")
  26. db, err := gorm.Open(mysql.Open(address), &gorm.Config{
  27. Logger: logger.Default.LogMode(logger.Info),
  28. NamingStrategy: schema.NamingStrategy{
  29. SingularTable: true,
  30. }})
  31. if err != nil {
  32. t.Fatal(err)
  33. }
  34. repo := repository.NewRepository(db)
  35. newService := service.NewService(repo)
  36. t.Run("创建角色", func(t *testing.T) {
  37. roleRequest := &pb.CreateAdminRoleRequest{
  38. Name: "admin",
  39. Description: "管理员",
  40. }
  41. err = newService.CreateAdminRole(context.Background(), roleRequest)
  42. fmt.Println(err)
  43. fmt.Println(roleRequest)
  44. })
  45. t.Run("测试创建", func(t *testing.T) {
  46. // role := req.AdminRole{
  47. // Name: "12sdfa3",
  48. // Description: "12312312",
  49. // CreatedBy: "asdf",
  50. // CreatedAt: time.Time{},
  51. // UpdatedAt: nil,
  52. // Status: pb.StatusEnum_DELETED,
  53. // IsReserved: false,
  54. // }
  55. // db.Model(req.AdminRole{}).Create(&role)
  56. var res req.AdminRole
  57. db.Where("name = ?", "12sdfa3").Model(res)
  58. fmt.Println("res", res.Status == pb.StatusEnum_DELETED)
  59. fmt.Println("res", res.Status == pb.StatusEnum_ENABLED)
  60. fmt.Println("res", res.Status == pb.StatusEnum_DISABLED)
  61. // ids := []int64{1, 2, 3, 4, 5, 6, 7}
  62. // err2 := db.Model(req.AdminRole{}).Where("id IN ?", ids).Updates(map[string]interface{}{
  63. // "status": pb.StatusEnum_ENABLED,
  64. // }).Error
  65. // fmt.Println(err2)
  66. // err2 := newService.ToggleAdminRole(context.Background(), 1, pb.StatusEnum_ENABLED)
  67. // fmt.Println(err2)
  68. })
  69. t.Run("查询角色列表", func(t *testing.T) {
  70. rolesRequest := &pb.ListAdminRolesRequest{
  71. Page: 1,
  72. PageSize: 10,
  73. }
  74. roles, i, err2 := newService.ListAdminRoles(rolesRequest)
  75. for _, item := range roles {
  76. fmt.Println("item", item)
  77. }
  78. fmt.Println(i)
  79. fmt.Println(err2)
  80. })
  81. t.Run("获取所有启用的角色", func(t *testing.T) {
  82. roles, err2 := newService.RetrieveEnabledRoles()
  83. fmt.Println(err2)
  84. fmt.Println(roles)
  85. })
  86. t.Run("获取详情", func(t *testing.T) {
  87. role, err2 := newService.GetAdminRole(1)
  88. fmt.Println(err2)
  89. fmt.Println(role)
  90. // fmt.Println(role)
  91. })
  92. t.Run("授权角色", func(t *testing.T) {
  93. users := []int64{1}
  94. // var permissions []int64
  95. err2 := newService.UpdateAdminRole(&pb.UpdateAdminRoleRequest{
  96. RoleId: 1,
  97. Users: users,
  98. })
  99. fmt.Println(err2)
  100. })
  101. // user, err := repo.AdminLogin(loginRequest)
  102. // 断言期望的结果
  103. // assert.NoError(t, err)
  104. // assert.NotNil(t, user)
  105. // assert.Equal(t, loginRequest.Username, user.Username)
  106. }