Class: TestManagementClient

Inherits:
Minitest::Test
  • Object
show all
Defined in:
lib/authing_ruby/test/mini_test/TestManagementClient.rb

Instance Method Summary collapse

Instance Method Details

#create_random_user(userInfo = {}) ⇒ Object

创建一个用户, 并返回这个用户



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 58

def create_random_user(userInfo = {})
  # 如果没传参数就用一个默认的,随机生成的。
  if userInfo.empty?
    random_phone = "1760000#{rand(1000..9999)}"
    userInfo = {
      nickname: "Nick #{random_phone}",
      phone: random_phone, # 由于是管理员操作,所以不需要检验手机号验证码, 如果你需要检验,请使用  AuthenticationClient
    }
  end

  managementClient = AuthingRuby::ManagementClient.new(@options)
  res = managementClient.users.create(userInfo)
  json = JSON.parse(res)
  user = json.dig("data", "createUser")
  return user
end

#setupObject



10
11
12
13
14
15
16
17
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 10

def setup
  @options = {
    host: 'https://core.authing.cn',
    userPoolId: ENV["userPoolId"],
    secret: ENV["secret"],
  }
  @helper = Test::Helper.new
end

#test_deleteObject

测试删除用户 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_delete



110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 110

def test_delete
  user = create_random_user()
  user_id = user.dig("id")

  managementClient = AuthingRuby::ManagementClient.new(@options)
  res = managementClient.users.delete(user_id)

  # puts res
  # {"data":{"deleteUser":{"message":"删除成功!","code":200}}}

  json = JSON.parse(res)
  assert(json.dig("data", "deleteUser") != nil, json)
end

#test_deleteManyObject

测试删除多个用户 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_deleteMany



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 126

def test_deleteMany
  user1 = create_random_user()
  user1_id = user1.dig("id")

  user2 = create_random_user()
  user2_id = user2.dig("id")

  user_ids = [user1_id, user2_id]

  managementClient = AuthingRuby::ManagementClient.new(@options)
  res = managementClient.users.deleteMany(user_ids)
  # puts res
  # {"data":{"deleteUsers":{"message":"删除成功!","code":200}}}

  json = JSON.parse(res)
  assert(json.dig("data", "deleteUsers") != nil, json)
end

#test_detailObject

测试通过 ID 获取用户信息 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_detail



97
98
99
100
101
102
103
104
105
106
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 97

def test_detail
  user = create_random_user()
  user_id = user.dig("id")

  managementClient = AuthingRuby::ManagementClient.new(@options)
  res = managementClient.users.detail(user_id)

  json = JSON.parse(res)
  assert(json.dig("data", "user") != nil, json)
end

#test_existsObject

测试 检查用户是否存在 (返回 true | false) ruby ./lib/test/mini_test/TestManagementClient.rb -n test_exists



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 156

def test_exists
  # 第一步:先创建用户
  userInfo = {
    "username": "bob",
  }
  create_random_user(userInfo)

  # 第二步:检查是否存在
  managementClient = AuthingRuby::ManagementClient.new(@options)
  options = { 
    "username": "bob",
    # "email": "[email protected]",
    # "phone": "13700001111",
  }
  boolean = managementClient.users.exists(options)
  assert(boolean)
end

#test_findObject

测试 查找用户 (返回这个用户) ruby ./lib/test/mini_test/TestManagementClient.rb -n test_find



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 176

def test_find
  # 第一步:先创建用户
  userInfo = {
    "username": "alice",
  }
  create_random_user(userInfo)

  managementClient = AuthingRuby::ManagementClient.new(@options)
  options = { 
    "username": "alice",
    # "email": "[email protected]",
    # "phone": "13700001111",
  }
  result = managementClient.users.find(options)
  assert(result.dig("data", "findUser"), result)
end

#test_listObject

测试获取用户列表 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_list



146
147
148
149
150
151
152
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 146

def test_list
  managementClient = AuthingRuby::ManagementClient.new(@options)
  res = managementClient.users.list()
  # puts res
  json = JSON.parse(res)
  assert(json.dig("data", "users") != nil, json)
end

#test_update_userObject

更新用户 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_update_user



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 77

def test_update_user
  # 第一步:创建用户
  user = create_random_user()
  user_id = user.dig("id") # "6088decdcc904f5c993d6226"

  # 第二步:更新用户
  managementClient = AuthingRuby::ManagementClient.new(@options)
  res2 = managementClient.users.update(user_id, {
    nickname: 'Nick',
  })
  # puts res2
  # 如果失败
  # {"errors":[{"message":{"code":2004,"message":"用户不存在"},"locations":[{"line":2,"column":3}],"path":["updateUser"],"extensions":{"code":"INTERNAL_SERVER_ERROR"}}],"data":null}

  json2 = JSON.parse(res2)
  assert(json2.dig("data", "updateUser") != nil, json2)
end

#test_user_create_2Object

创建用户 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_user_create_2



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 42

def test_user_create_2
  managementClient = AuthingRuby::ManagementClient.new(@options)
  random_phone = "1350000#{rand(1000..9999)}"
  userInfo = {
    nickname: 'Nick Water3',
    phone: random_phone, # 由于是管理员操作,所以不需要检验手机号验证码, 如果你需要检验,请使用  AuthenticationClient
    loginsCount: 2, # 原有用户系统记录的用户登录次数
    signedUp: '2020-10-15T17:55:37+08:00' # 原有用户系统记录的用户注册时间
  }
  res = managementClient.users.create(userInfo)
  # puts res
  json = JSON.parse(res)
  assert(json.dig("data", "createUser") != nil, json)
end

#test_users_createObject

创建用户 ruby ./lib/test/mini_test/TestManagementClient.rb -n test_users_create



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/authing_ruby/test/mini_test/TestManagementClient.rb', line 21

def test_users_create
  managementClient = AuthingRuby::ManagementClient.new(@options)
  userInfo = {
    username: @helper.randomString, # 随机字符串,比如 "mpflok"
    # username: 'SpongeBob3', # 或者明确指定用户名
    password: 'passw0rd',
  }
  res = managementClient.users.create(userInfo)
  json = JSON.parse(res)
  # puts res
  # 如果成功
  # {"data":{"createUser":{"id":"608ab9828eab7e35e81bd732","arn":"arn:cn:authing:60800b8ee5b66b23128b4980:user:608ab9828eab7e35e81bd732","userPoolId":"60800b8ee5b66b23128b4980","status":"Activated","username":"SpongeBob2","email":null,"emailVerified":false,"phone":null,"phoneVerified":false,"unionid":null,"openid":null,"nickname":null,"registerSource":["import:manual"],"photo":"default-user-avatar.png","password":"91b133c2e13e40852505946b7e0c2f04","oauth":null,"token":null,"tokenExpiredAt":null,"loginsCount":0,"lastLogin":null,"lastIP":null,"signedUp":null,"blocked":false,"isDeleted":false,"device":null,"browser":null,"company":null,"name":null,"givenName":null,"familyName":null,"middleName":null,"profile":null,"preferredUsername":null,"website":null,"gender":"U","birthdate":null,"zoneinfo":null,"locale":null,"address":null,"formatted":null,"streetAddress":null,"locality":null,"region":null,"postalCode":null,"city":null,"province":null,"country":null,"createdAt":"2021-04-29T13:49:54+00:00","updatedAt":"2021-04-29T13:49:54+00:00","externalId":null}}}
  
  # 如果失败
  # {"errors":[{"message":{"code":2026,"message":"用户已存在,请勿重复创建!"},"locations":[{"line":2,"column":3}],"path":["createUser"],"extensions":{"code":"INTERNAL_SERVER_ERROR"}}],"data":null}

  assert(json.dig("data", "createUser") != nil, json)
end