@@ -26,6 +26,7 @@ local DoorLockUserType = DoorLock.types.DrlkUserType
2626
2727local test_credential_index = 1
2828local test_credentials = {}
29+ local test_users = {}
2930local 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()
3738local 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 )
4143end
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
333344test .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