Skip to content

Commit 62e48ca

Browse files
fix new capabilities unit test
1 parent a005138 commit 62e48ca

File tree

1 file changed

+97
-51
lines changed

1 file changed

+97
-51
lines changed

drivers/SmartThings/zigbee-lock/src/test/test_zigbee_lock_new_capabilities.lua

Lines changed: 97 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ local DoorLockUserType = DoorLock.types.DrlkUserType
2626

2727
local test_credential_index = 1
2828
local test_credentials = {}
29+
local test_users = {}
2930
local mock_device = test.mock_device.build_test_zigbee_device(
3031
{
3132
profile = t_utils.get_profile_definition("base-lock.yml"),
@@ -37,6 +38,7 @@ zigbee_test_utils.prepare_zigbee_env_info()
3738
local function test_init_new_capabilities()
3839
test_credential_index = 1
3940
test_credentials = {}
41+
test_users = {}
4042
test.mock_device.add_test_device(mock_device)
4143
end
4244

@@ -82,27 +84,27 @@ local function add_default_users()
8284
{
8385
capability = capabilities.lockUsers.ID,
8486
command = "addUser",
85-
args = { "TestUser" .. i, "guest" }
87+
args = { "Guest" .. i, "guest" }
8688
},
8789
})
8890
-- add to the user list that is now expected
89-
user_list["user"..i] = {userIndex = i, userType = "guest", userName = "TestUser" .. i }
91+
table.insert(user_list, {userIndex = i, userType = "guest", userName = "Guest" .. i })
9092

9193
test.socket.capability:__expect_send(
9294
mock_device:generate_test_message(
9395
"main",
9496
capabilities.lockUsers.users(
9597
user_list,
96-
{ visibility = { displayed = false } }
98+
{ visibility = { displayed = true } }
9799
)
98100
)
99101
)
100102
test.socket.capability:__expect_send(
101103
mock_device:generate_test_message(
102104
"main",
103105
capabilities.lockUsers.commandResult(
104-
{ commandName = "addUser", statusCode = "success" },
105-
{ state_change = true, visibility = { displayed = false } }
106+
{ commandName = "addUser", statusCode = "success", userIndex = i},
107+
{ state_change = true, visibility = { displayed = true } }
106108
)
107109
)
108110
)
@@ -150,19 +152,26 @@ test.socket.capability:__queue_receive({
150152
)
151153
}
152154
)
153-
table.insert(test_credentials, { userIndex = tonumber(user_index), credentialIndex = test_credential_index, credentialType = "pin" })
155+
table.insert(test_credentials, { userIndex = test_credential_index, credentialIndex = test_credential_index, credentialType = "pin" })
156+
table.insert(test_users, {userIndex = test_credential_index, userName = "Guest" .. test_credential_index, userType = "guest"})
154157
test.socket.capability:__expect_send(
155158
mock_device:generate_test_message(
156159
"main",
157-
capabilities.lockCredentials.credentials(test_credentials, { visibility = { displayed = false } })
160+
capabilities.lockUsers.users(test_users, { state_change = true, visibility = { displayed = true } })
161+
)
162+
)
163+
test.socket.capability:__expect_send(
164+
mock_device:generate_test_message(
165+
"main",
166+
capabilities.lockCredentials.credentials(test_credentials, { state_change = true, visibility = { displayed = true } })
158167
)
159168
)
160169
test.socket.capability:__expect_send(
161170
mock_device:generate_test_message(
162171
"main",
163172
capabilities.lockCredentials.commandResult(
164-
{ commandName = "addCredential", statusCode = "success" },
165-
{ state_change = true, visibility = { displayed = false } }
173+
{ commandName = "addCredential", statusCode = "success", credentialIndex = test_credential_index, userIndex = test_credential_index },
174+
{ state_change = true, visibility = { displayed = true } }
166175
)
167176
)
168177
)
@@ -194,7 +203,7 @@ test.register_coroutine_test(
194203
"main",
195204
capabilities.lockUsers.commandResult(
196205
{ commandName = "addUser", statusCode = "resourceExhausted" },
197-
{ state_change = true, visibility = { displayed = false } }
206+
{ state_change = true, visibility = { displayed = true } }
198207
)
199208
)
200209
)
@@ -219,23 +228,24 @@ test.register_coroutine_test(
219228
},
220229
})
221230

222-
local users = {}
223-
users["user" .. 1] = { userIndex = 1, userName = "TestUser1", userType = "guest" }
224-
users["user" .. 2] = { userIndex = 2, userName = "ChangeUserName", userType = "guest" }
225-
users["user" .. 3] = { userIndex = 3, userName = "TestUser3", userType = "guest" }
226-
users["user" .. 4] = { userIndex = 4, userName = "TestUser4", userType = "guest" }
231+
local users = {
232+
{ userIndex = 1, userName = "Guest1", userType = "guest" },
233+
{ userIndex = 2, userName = "ChangeUserName", userType = "guest" },
234+
{ userIndex = 3, userName = "Guest3", userType = "guest" },
235+
{ userIndex = 4, userName = "Guest4", userType = "guest" },
236+
}
227237
test.socket.capability:__expect_send(
228238
mock_device:generate_test_message(
229239
"main",
230-
capabilities.lockUsers.users(users, { visibility = { displayed = false } })
240+
capabilities.lockUsers.users(users, { state_change=true, visibility = { displayed = true } })
231241
)
232242
)
233243
test.socket.capability:__expect_send(
234244
mock_device:generate_test_message(
235245
"main",
236246
capabilities.lockUsers.commandResult(
237-
{ commandName = "updateUser", statusCode = "success" },
238-
{ state_change = true, visibility = { displayed = false } }
247+
{ commandName = "updateUser", statusCode = "success", userIndex = 2 },
248+
{ state_change = true, visibility = { displayed = true } }
239249
)
240250
)
241251
)
@@ -254,7 +264,7 @@ test.register_coroutine_test(
254264
"main",
255265
capabilities.lockUsers.commandResult(
256266
{ commandName = "updateUser", statusCode = "failure" },
257-
{ state_change = true, visibility = { displayed = false } }
267+
{ state_change = true, visibility = { displayed = true } }
258268
)
259269
)
260270
)
@@ -279,23 +289,24 @@ test.register_coroutine_test(
279289
},
280290
})
281291

282-
local users = {}
283-
users["user" .. 1] = { userIndex = 1, userName = "TestUser1", userType = "guest" }
284-
users["user" .. 2] = { userIndex = 2, userName = "TestUser2", userType = "guest" }
285-
users["user" .. 4] = { userIndex = 4, userName = "TestUser4", userType = "guest" }
292+
local users = {
293+
{ userIndex = 1, userName = "Guest1", userType = "guest" },
294+
{ userIndex = 2, userName = "Guest2", userType = "guest" },
295+
{ userIndex = 4, userName = "Guest4", userType = "guest" },
296+
}
286297

287298
test.socket.capability:__expect_send(
288299
mock_device:generate_test_message(
289300
"main",
290-
capabilities.lockUsers.users(users, { visibility = { displayed = false } })
301+
capabilities.lockUsers.users(users, { state_change=true, visibility = { displayed = true } })
291302
)
292303
)
293304
test.socket.capability:__expect_send(
294305
mock_device:generate_test_message(
295306
"main",
296307
capabilities.lockUsers.commandResult(
297-
{ commandName = "deleteUser", statusCode = "success" },
298-
{ state_change = true, visibility = { displayed = false } }
308+
{ commandName = "deleteUser", statusCode = "success", userIndex = 3 },
309+
{ state_change = true, visibility = { displayed = true } }
299310
)
300311
)
301312
)
@@ -314,7 +325,7 @@ test.register_coroutine_test(
314325
"main",
315326
capabilities.lockUsers.commandResult(
316327
{ commandName = "deleteUser", statusCode = "failure" },
317-
{ state_change = true, visibility = { displayed = false } }
328+
{ state_change = true, visibility = { displayed = true } }
318329
)
319330
)
320331
)
@@ -326,31 +337,31 @@ test.register_coroutine_test(
326337
"addCredential command received and commandResult is success",
327338
function()
328339
init_migration()
329-
add_credential("2", "abc123")
340+
add_credential(0, "abc123")
330341
end
331342
)
332343

333344
test.register_coroutine_test(
334345
"updateCredential command received and commandResult is success",
335346
function()
336347
init_migration()
337-
add_credential("2", "abc123")
348+
add_credential(0, "abc123")
338349

339-
-- try to update the wrong credentialIndex first and expect a failure
350+
-- try to update the wrong credentialIndex (4) first and expect a failure
340351
test.socket.capability:__queue_receive({
341352
mock_device.id,
342353
{
343354
capability = capabilities.lockCredentials.ID,
344355
command = "updateCredential",
345-
args = { "2", "4", "pin", "abc123" }
356+
args = { "4", "4", "pin", "abc123" }
346357
},
347358
})
348359
test.socket.capability:__expect_send(
349360
mock_device:generate_test_message(
350361
"main",
351362
capabilities.lockCredentials.commandResult(
352363
{ commandName = "updateCredential", statusCode = "failure" },
353-
{ state_change = true, visibility = { displayed = false } }
364+
{ state_change = true, visibility = { displayed = true } }
354365
)
355366
)
356367
)
@@ -362,7 +373,7 @@ test.register_coroutine_test(
362373
{
363374
capability = capabilities.lockCredentials.ID,
364375
command = "updateCredential",
365-
args = { "2", "1", "pin", "changedPin123" }
376+
args = { "1", "1", "pin", "changedPin123" }
366377
},
367378
})
368379
test.socket.zigbee:__expect_send(
@@ -397,23 +408,34 @@ test.register_coroutine_test(
397408
)
398409
}
399410
)
411+
test.socket.capability:__expect_send(
412+
mock_device:generate_test_message(
413+
"main",
414+
capabilities.lockUsers.users(
415+
{
416+
{ userIndex = 1, userType = "guest", userName = "Guest1" }
417+
},
418+
{ state_change = true, visibility = { displayed = true } }
419+
)
420+
)
421+
)
400422
test.socket.capability:__expect_send(
401423
mock_device:generate_test_message(
402424
"main",
403425
capabilities.lockCredentials.credentials(
404426
{
405-
{ userIndex = 2, credentialIndex = 1, credentialType = "pin" }
427+
{ userIndex = 1, credentialIndex = 1, credentialType = "pin" }
406428
},
407-
{ visibility = { displayed = false } }
429+
{ state_change = true, visibility = { displayed = true } }
408430
)
409431
)
410432
)
411433
test.socket.capability:__expect_send(
412434
mock_device:generate_test_message(
413435
"main",
414436
capabilities.lockCredentials.commandResult(
415-
{ commandName = "updateCredential", statusCode = "success" },
416-
{ state_change = true, visibility = { displayed = false } }
437+
{ commandName = "updateCredential", statusCode = "success", credentialIndex = 1, userIndex = 1 },
438+
{ state_change = true, visibility = { displayed = true } }
417439
)
418440
)
419441
)
@@ -425,9 +447,9 @@ test.register_coroutine_test(
425447
"deleteCredential command received and commandResult is success",
426448
function()
427449
init_migration()
428-
add_credential("2", "abc123")
429-
add_credential("1", "test123")
430-
add_credential("3", "321test")
450+
add_credential(0, "abc123")
451+
add_credential(0, "test123")
452+
add_credential(0, "321test")
431453

432454
-- try to delete credential with wrong index and expect a failure
433455
test.socket.capability:__queue_receive({
@@ -443,7 +465,7 @@ test.register_coroutine_test(
443465
"main",
444466
capabilities.lockCredentials.commandResult(
445467
{ commandName = "deleteCredential", statusCode = "failure" },
446-
{ state_change = true, visibility = { displayed = false } }
468+
{ state_change = true, visibility = { displayed = true } }
447469
)
448470
)
449471
)
@@ -483,24 +505,36 @@ test.register_coroutine_test(
483505
""
484506
)
485507
})
508+
test.socket.capability:__expect_send(
509+
mock_device:generate_test_message(
510+
"main",
511+
capabilities.lockUsers.users(
512+
{
513+
{ userIndex = 2, userType = "guest", userName = "Guest2" },
514+
{ userIndex = 3, userType = "guest", userName = "Guest3" }
515+
},
516+
{ state_change = true, visibility = { displayed = true } }
517+
)
518+
)
519+
)
486520
test.socket.capability:__expect_send(
487521
mock_device:generate_test_message(
488522
"main",
489523
capabilities.lockCredentials.credentials(
490524
{
491-
{ userIndex = 1, credentialIndex = 2, credentialType = "pin" },
525+
{ userIndex = 2, credentialIndex = 2, credentialType = "pin" },
492526
{ userIndex = 3, credentialIndex = 3, credentialType = "pin" }
493527
},
494-
{ visibility = { displayed = false } }
528+
{ state_change = true, visibility = { displayed = true } }
495529
)
496530
)
497531
)
498532
test.socket.capability:__expect_send(
499533
mock_device:generate_test_message(
500534
"main",
501535
capabilities.lockCredentials.commandResult(
502-
{ commandName = "deleteCredential", statusCode = "success" },
503-
{ state_change = true, visibility = { displayed = false } }
536+
{ commandName = "deleteCredential", statusCode = "success", credentialIndex = 1, userIndex = 1 },
537+
{ state_change = true, visibility = { displayed = true } }
504538
)
505539
)
506540
)
@@ -512,9 +546,9 @@ test.register_coroutine_test(
512546
"deleteAllCredentials command received and commandResult is success",
513547
function()
514548
init_migration()
515-
add_credential("2", "abc123")
516-
add_credential("1", "test123")
517-
add_credential("3", "321test")
549+
add_credential(0, "abc123")
550+
add_credential(0, "test123")
551+
add_credential(0, "321test")
518552

519553
test.socket.capability:__queue_receive({
520554
mock_device.id,
@@ -547,15 +581,27 @@ test.register_coroutine_test(
547581
""
548582
)
549583
})
584+
test.socket.capability:__expect_send(
585+
mock_device:generate_test_message(
586+
"main",
587+
capabilities.lockUsers.users(
588+
{
589+
{ userIndex = 2, userType = "guest", userName = "Guest2" },
590+
{ userIndex = 3, userType = "guest", userName = "Guest3" }
591+
},
592+
{ state_change = true, visibility = { displayed = true } }
593+
)
594+
)
595+
)
550596
test.socket.capability:__expect_send(
551597
mock_device:generate_test_message(
552598
"main",
553599
capabilities.lockCredentials.credentials(
554600
{
555-
{ userIndex = 1, credentialIndex = 2, credentialType = "pin" },
601+
{ userIndex = 2, credentialIndex = 2, credentialType = "pin" },
556602
{ userIndex = 3, credentialIndex = 3, credentialType = "pin" }
557603
},
558-
{ visibility = { displayed = false } }
604+
{ state_change = true, visibility = { displayed = true } }
559605
)
560606
)
561607
)
@@ -564,7 +610,7 @@ test.register_coroutine_test(
564610
"main",
565611
capabilities.lockCredentials.commandResult(
566612
{ commandName = "deleteAllCredentials", statusCode = "success" },
567-
{ state_change = true, visibility = { displayed = false } }
613+
{ state_change = true, visibility = { displayed = true } }
568614
)
569615
)
570616
)

0 commit comments

Comments
 (0)