blob: 7d94cd569a970b9725df206ea3c378004a56aeed [file] [log] [blame]
# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Door Lock Cluster Users and Credentials tests
config:
nodeId: 0x12344321
cluster: "Door Lock"
endpoint: 1
tests:
- label: "Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId
- label: "Read available user slot and verify response fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Get number of supported users and verify default value"
command: "readAttribute"
attribute: "NumberOfTotalUsersSupported"
response:
saveAs: NumberOfTotalUsersSupported
value: 10
- label: "Read fails for user with index 0"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 0
response:
error: INVALID_COMMAND
- label:
"Read fails for user with index greater than Number Of Users Supported"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported + 1
response:
error: INVALID_COMMAND
- label: "Create new user with default parameters"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Set user at the occupied index fails with appropriate response"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
response:
error: FAILURE
- label: "Modify userName for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Modify userUniqueId for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: 0x1234ABCD
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: 0x1234ABCD
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Modify userStatus for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 0x03 # Occupied, Disabled
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: 0x1234ABCD
- name: "userStatus"
value: 3
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Modify userType for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: 0x06 # Disposable user
- name: "credentialRule"
value: null
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: 0x1234ABCD
- name: "userStatus"
value: 3
- name: "userType"
value: 6
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Modify credentialRule for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: 2
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "new_user"
- name: "userUniqueId"
value: 0x1234ABCD
- name: "userStatus"
value: 3
- name: "userType"
value: 6
- name: "credentialRule"
value: 2
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Modify all fields for existing user"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "userIndex"
value: 1
- name: "userName"
value: "test_user"
- name: "userUniqueId"
value: 0x1BCDA0A0
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 1
- label: "Read the modified user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: "test_user"
- name: "userUniqueId"
value: 0x1BCDA0A0
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 1
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Add another user with non-default fields"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 2
- name: "userName"
value: "test_user2"
- name: "userUniqueId"
value: 0xC0FFEE
- name: "userStatus"
value: 1
- name: "userType"
value: 1
- name: "credentialRule"
value: 2
- label: "Read the new user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 2
response:
values:
- name: "userIndex"
value: 2
- name: "userName"
value: "test_user2"
- name: "userUniqueId"
value: 0xC0FFEE
- name: "userStatus"
value: 1
- name: "userType"
value: 1
- name: "credentialRule"
value: 2
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Try to add a user with userStatus 0"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 3
- name: "userName"
value: "test_user3"
- name: "userUniqueId"
value: 0xBABA
- name: "userStatus"
value: 0
- name: "userType"
value: null
- name: "credentialRule"
value: null
response:
error: INVALID_COMMAND
- label: "Make sure the user did not get created"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 3
response:
values:
- name: "userIndex"
value: 3
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Try to add a user with userStatus 2"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 3
- name: "userName"
value: "test_user3"
- name: "userUniqueId"
value: 0xBABA
- name: "userStatus"
value: 2
- name: "userType"
value: null
- name: "credentialRule"
value: null
response:
error: INVALID_COMMAND
- label: "Make sure the user did not get created"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 3
response:
values:
- name: "userIndex"
value: 3
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Try to add a user with userStatus 3"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 3
- name: "userName"
value: "test_user3"
- name: "userUniqueId"
value: 0xBABA
- name: "userStatus"
value: 3
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the new third user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 3
response:
values:
- name: "userIndex"
value: 3
- name: "userName"
value: "test_user3"
- name: "userUniqueId"
value: 0xBABA
- name: "userStatus"
value: 3
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Create user in the last slot"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: NumberOfTotalUsersSupported
- name: "userName"
value: "last_user"
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label: "Read the last user back and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported
response:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported
- name: "userName"
value: "last_user"
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "User creation in the 0 slot fails"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 0
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
response:
error: INVALID_COMMAND
- label: "User creation in the out-of-bounds slot fails"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: NumberOfTotalUsersSupported + 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
response:
error: INVALID_COMMAND
- label: "Clear first user"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: 1
- label: "Read cleared user and verify it is available"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: 2 # Slot 2 is still occupied
- label: "Create new user in the cleared slot"
command: "SetUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- label:
"Read the user in the previously cleared slot and verify its fields"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: 2 # Slot 2 is still occupied
- label: "Clear user with index 0 fails"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: 0
response:
error: INVALID_COMMAND
- label: "Clear user with out-of-bounds index fails"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported + 1
response:
error: INVALID_COMMAND
- label: "Clear all users"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: 0xFFFE
- label: "Read first cleared user and verify it is available"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 2
response:
values:
- name: "userIndex"
value: 2
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Read last cleared user and verify it is available"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported
response:
values:
- name: "userIndex"
value: NumberOfTotalUsersSupported
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
#
# Credentials tests
#
- label: "Get number of supported PIN credentials and verify default value"
command: "readAttribute"
attribute: "NumberOfPINUsersSupported"
response:
saveAs: NumberOfPINUsersSupported
value: 10
- label: "Check that PIN credential does not exist"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Reading PIN credential with index 0 returns no credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 0 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label:
"Reading PIN credential with out-of-bounds index returns no credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value:
{
CredentialType: 1,
CredentialIndex: NumberOfPINUsersSupported + 1,
}
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label:
"Verify that a user with UserStatus = 0 cannot be added via
SetCredential"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: 0
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85 # INVALID_COMMAND
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 2
- label:
"Verify that a user with UserStatus = 2 cannot be added via
SetCredential"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: 2
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85 # INVALID_COMMAND
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 2
- label: "Create new PIN credential and user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 1
- name: "nextCredentialIndex"
value: 2
- label: "Verify created user"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: [{ CredentialType: 1, CredentialIndex: 1 }]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Verify created PIN credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
response:
values:
- name: "credentialExists"
value: true
- name: "userIndex"
value: 1
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextCredentialIndex"
value: null
- label: "Create new PIN credential and user with index 0 fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 0 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 2
- label: "Create new PIN credential and user with out-of-bounds index fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value:
{
CredentialType: 1,
CredentialIndex: NumberOfPINUsersSupported + 1,
}
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Get number of supported RFID credentials and verify default value"
command: "readAttribute"
attribute: "NumberOfRFIDUsersSupported"
response:
saveAs: NumberOfRFIDUsersSupported
value: 10
# Disabled because due to https://github.com/project-chip/connectedhomeip/issues/21656: that causes the nextCredentialIndex
# here to have the wrong value.
- label: "Reading RFID credential with index 0 returns no credential"
disabled: true
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 0 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
# Duplicate of the previous test that does not check the value of nextCredentialIndex
- label:
"Reading RFID credential with index 0 returns no credential duplicate
with bug workaround"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 0 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- label:
"Reading RFID credential with out-of-bounds index returns no
credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value:
{
CredentialType: 2,
CredentialIndex: NumberOfRFIDUsersSupported + 1,
}
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Check that RFID credential does not exist"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Create new RFID credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
- name: "credentialData"
value: "rfid_data_123456"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 3
- label: "Verify modified user"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value:
[
{ CredentialType: 1, CredentialIndex: 1 },
{ CredentialType: 2, CredentialIndex: 2 },
]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Verify created credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
response:
values:
- name: "credentialExists"
value: true
- name: "userIndex"
value: 1
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextCredentialIndex"
value: null
- label: "Create new RFID credential and user with index 0 fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 0 }
- name: "credentialData"
value: "new_rfid_data_field"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 3
- label:
"Create new RFID credential and user with out-of-bounds index fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value:
{
CredentialType: 2,
CredentialIndex: NumberOfRFIDUsersSupported + 1,
}
- name: "credentialData"
value: "new_rfid_data_field"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Create new credential and try to add it to 0 user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "123465"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new credential and try to add it to out-of-bounds user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "123465"
- name: "userIndex"
value: NumberOfTotalUsersSupported + 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new PIN with too short data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "12345"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new PIN with too long data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "123456789"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new RFID with too short data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 3 }
- name: "credentialData"
value: "rfid_data"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new PIN with Programming user type fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: 3
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new RFID with too short data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 3 }
- name: "credentialData"
value: "very_long_rfid_data_to_test_boundaries"
- name: "userIndex"
value: 0
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create new PIN credential with data the would cause duplicate"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 4 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x02
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Create new RFID credential with data the would cause duplicate"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 4 }
- name: "credentialData"
value: "rfid_data_123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x02
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Modify credentialData of existing PIN credential"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 3
- label:
"Verify that credential was changed by creating new credential with
old data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 2
- name: "nextCredentialIndex"
value: 4
- label:
"Verify that credential was changed by creating new credential with
new data"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 4 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x02
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 5
# At that state we have the following users:
# Index = 1, Credentials = {(1, PIN), (2, RFID)}
# Index = 2, Credentials = {(3, PIN)}
# Add additional RFID and PIN credentials to the user to make sure that we can have distinct credentials
# of the same type
- label: "Create new RFID credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 4 }
- name: "credentialData"
value: "rfid_data_7890"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Verify modified user"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value:
[
{ CredentialType: 1, CredentialIndex: 1 },
{ CredentialType: 2, CredentialIndex: 2 },
{ CredentialType: 2, CredentialIndex: 4 },
]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: 2
- label: "Create new RFID credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 5 }
- name: "credentialData"
value: "789012"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 6
- label: "Verify modified user"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value:
[
{ CredentialType: 1, CredentialIndex: 1 },
{ CredentialType: 2, CredentialIndex: 2 },
{ CredentialType: 2, CredentialIndex: 4 },
{ CredentialType: 1, CredentialIndex: 5 },
]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: 2
- label: "Clear first PIN credential"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- label: "Read back the credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: 2
- label: "Read the user back and make sure PIN credential is deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value:
[
{ CredentialType: 2, CredentialIndex: 2 },
{ CredentialType: 2, CredentialIndex: 4 },
{ CredentialType: 1, CredentialIndex: 5 },
]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: 2
- label: "Clear the second PIN credential"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- label: "Read back the credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Read the user back and make sure related user is deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 2
response:
values:
- name: "userIndex"
value: 2
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Create new RFID credential with user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 1 }
- name: "credentialData"
value: "rfid_data_12345"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 2
- name: "nextCredentialIndex"
value: 3
- label: "Clear all the RFID credentials"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 0xFFFE }
- label: "Read back the fist RFID credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 1 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Read back the second RFID credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Read back the third RFID credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 4 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label:
"Read the user related with first RFID back and make sure it has only
PIN credential"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: [{ CredentialType: 1, CredentialIndex: 5 }]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label:
"Read the user related with second RFID back and make sure it is
deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 2
response:
values:
- name: "userIndex"
value: 2
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Create new PIN credential with user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 2
- name: "nextCredentialIndex"
value: 2
- label: "Create new RFID credential with user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
- name: "credentialData"
value: "rfid_data_1234"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 3
- name: "nextCredentialIndex"
value: 3
- label: "Create another RFID credential with user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 6 }
- name: "credentialData"
value: "rfid_data_9876"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 4
- name: "nextCredentialIndex"
value: 7
# This test is disabled for now because ZAP generators are not generating working code when
# command has nullable as a parameter.
- label: "Clear all the credentials"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: null
- label: "Read back the first PIN credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Read back the first RFID credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 2 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Read back the second PIN credential and make sure it is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 6 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label:
"Read the user related with first PIN back and make sure it is deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label:
"Read the user related with first RFID back and make sure it is
deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 2
response:
values:
- name: "userIndex"
value: 2
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label:
"Read the user related with second PIN back and make sure it is
deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 3
response:
values:
- name: "userIndex"
value: 3
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label:
"Read the user related with last RFID back and make sure it is deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 4
response:
values:
- name: "userIndex"
value: 4
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Create new Programming PIN credential with invalid index"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 1 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x85
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Create new Programming PIN credential with valid index"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 0 }
- name: "credentialData"
value: "123456"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 1
- name: "nextCredentialIndex"
value: null
- label: "Verify created user"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: ""
- name: "userUniqueId"
value: null
- name: "userStatus"
value: 1
- name: "userType"
value: 0
- name: "credentialRule"
value: 0
- name: "credentials"
value: [{ CredentialType: 0, CredentialIndex: 0 }]
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextUserIndex"
value: null
- label: "Verify created programming PIN credential"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 0 }
response:
values:
- name: "credentialExists"
value: true
- name: "userIndex"
value: 1
- name: "creatorFabricIndex"
value: 1
- name: "lastModifiedFabricIndex"
value: 1
- name: "nextCredentialIndex"
value: null
- label: "Modify the Programming PIN credential"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 2
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 0 }
- name: "credentialData"
value: "654321"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: null
- label: "Clearing Programming PIN fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 0 }
response:
error: INVALID_COMMAND
- label: "Clearing Programming PIN with invalid index fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 1 }
response:
error: INVALID_COMMAND
- label: "Clearing PIN credential with zero index fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 0 }
response:
error: INVALID_COMMAND
- label: "Clearing PIN credential with out-of-bound index fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value:
{
CredentialType: 1,
CredentialIndex: NumberOfPINUsersSupported + 1,
}
response:
error: INVALID_COMMAND
- label: "Clearing RFID credential with zero index fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value: { CredentialType: 2, CredentialIndex: 0 }
response:
error: INVALID_COMMAND
- label: "Clearing RFID credential with out-of-bound index fails"
command: "ClearCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "credential"
value:
{
CredentialType: 2,
CredentialIndex: NumberOfRFIDUsersSupported + 1,
}
response:
error: INVALID_COMMAND
# Cleanup so the test could be run again. Also checks that clearUser removes associated credentials
- label: "Clear the Programming PIN user"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: 1
- label: "Make sure Programming PIN user is deleted"
command: "GetUser"
arguments:
values:
- name: "userIndex"
value: 1
response:
values:
- name: "userIndex"
value: 1
- name: "userName"
value: null
- name: "userUniqueId"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
- name: "credentialRule"
value: null
- name: "credentials"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextUserIndex"
value: null
- label: "Make sure programming PIN credential is deleted"
command: "GetCredentialStatus"
arguments:
values:
- name: "credential"
value: { CredentialType: 0, CredentialIndex: 0 }
response:
values:
- name: "credentialExists"
value: false
- name: "userIndex"
value: null
- name: "creatorFabricIndex"
value: null
- name: "lastModifiedFabricIndex"
value: null
- name: "nextCredentialIndex"
value: null
# Test to make sure it's impossible to add more than NumberOfCredentialsSupportedPerUser credentials to a single user
- label: "Create new PIN credential and user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 1 }
- name: "credentialData"
value: "000000"
- name: "userIndex"
value: null
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: 1
- name: "nextCredentialIndex"
value: 2
- label: "Create second PIN credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 2 }
- name: "credentialData"
value: "000001"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 3
- label: "Create third PIN credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 3 }
- name: "credentialData"
value: "000002"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 4
- label: "Create fourth PIN credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 4 }
- name: "credentialData"
value: "000003"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 5
- label: "Create fifth PIN credential and add it to existing user"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 5 }
- name: "credentialData"
value: "000004"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x00
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 6
- label: "Try to create sixth PIN credential and make sure it fails"
command: "SetCredential"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "operationType"
value: 0
- name: "credential"
value: { CredentialType: 1, CredentialIndex: 6 }
- name: "credentialData"
value: "000005"
- name: "userIndex"
value: 1
- name: "userStatus"
value: null
- name: "userType"
value: null
response:
values:
- name: "status"
value: 0x89
- name: "userIndex"
value: null
- name: "nextCredentialIndex"
value: 7
- label: "Final clean-up"
command: "ClearUser"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "userIndex"
value: 1