# 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:
    111.2.9. [TC-DRLK-2.9] Verification for the following Commands - Set
    Credential , Set Credential Response, Get Credential Status, Get Credential
    Status Response, Clear Credential [DUT-Server]

PICS:
    - DRLK.S

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: "Create new user with default parameters"
      command: "SetUser"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - name: "UserIndex"
                value: 1
              - name: "UserName"
                value: "xxx"
              - name: "UserUniqueID"
                value: 6452
              - name: "UserStatus"
                value: 1
              - name: "UserType"
                value: 0
              - name: "CredentialRule"
                value: 0

    - 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: "xxx"
              - name: "UserUniqueID"
                value: 6452
              - 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:
          "TH reads NumberOfTotalUsersSupported attribute and saves for future
          use."
      PICS: DRLK.S.F08 && DRLK.S.A0011
      command: "readAttribute"
      attribute: "NumberOfTotalUsersSupported"
      response:
          saveAs: NumberOfTotalUsersSupported
          constraints:
              minValue: 0
              maxValue: 65534

    - label: "TH sends Set Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      command: "SetCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - 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: 0
              - name: "UserIndex"
                value: null
              - name: "NextCredentialIndex"
                value: 2

    - label: "TH sends Get Credential Status Command"
      PICS: DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx
      command: "GetCredentialStatus"
      arguments:
          values:
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 1 }
      response:
          values:
              - name: "CredentialExists"
                constraints:
                    type: boolean
              - name: "UserIndex"
                value: 1
              - name: "CreatorFabricIndex"
                value: 1
              - name: "LastModifiedFabricIndex"
                value: 1
              - name: "NextCredentialIndex"
                value: null

    - label: "TH sends Set Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      command: "SetCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 2 }
              - name: "CredentialData"
                value: "4321"
              - name: "UserIndex"
                value: null
              - name: "UserStatus"
                value: 5
              - name: "UserType"
                value: 10
      response:
          values:
              - name: "Status"
                value: 0x85
              - name: "UserIndex"
                value: null
              - name: "NextCredentialIndex"
                value: 3

    - label: "TH sends Set Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      command: "SetCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 2 }
              - 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: 3

    - label:
          "TH sends Set Credential Command to DUT and Verify that the DUT sends
          Set Credential Response command with status as DUPLICATE or OCCUPIED"
      verification: |
          ./chip-tool doorlock set-credential 0 '{ "CredentialType" : 1, "CredentialIndex" : 1 }' 123456 1 null null  1 1 --timedInteractionTimeoutMs 1000

          Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log:

          [[1656506733.767451][27276:27281] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023
          [1656506733.767542][27276:27281] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Command 0x0000_0023
          [1656506733.767663][27276:27281] CHIP:TOO:   SetCredentialResponse: {
          [1656506733.767731][27276:27281] CHIP:TOO:     status: 2
          [1656506733.767779][27276:27281] CHIP:TOO:     userIndex: null
          [1656506733.767826][27276:27281] CHIP:TOO:     nextCredentialIndex: 2
          [1656506733.767871][27276:27281] CHIP:TOO:    }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH sends Set Credential Command to DUT and Verify that the DUT sends
          Set Credential Response command with response as OCCUPIED if the
          CredentialIndex is repeated"
      verification: |
          Mark as not applicable and proceed to next step

          ./chip-tool doorlock set-credential 0 '{ "CredentialType" : 1, "CredentialIndex" : 1 }' 123457 1 null null 1 1 --timedInteractionTimeoutMs 1000

          Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log:

          [1660216276.191641][71849:71854] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023
          [1660216276.191673][71849:71854] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Command 0x0000_0023
          [1660216276.191725][71849:71854] CHIP:TOO:   SetCredentialResponse: {
          [1660216276.191752][71849:71854] CHIP:TOO:     status: 3
          [1660216276.191764][71849:71854] CHIP:TOO:     userIndex: null
          [1660216276.191776][71849:71854] CHIP:TOO:     nextCredentialIndex: 2
          [1660216276.191798][71849:71854] CHIP:TOO:    }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
    - label:
          "TH sends Set Credential Command to DUT and Verify that the DUT sends
          Set Credential Response command with response as OCCUPIED if the
          CredentialIndex is repeated"
      verification: |
          Mark as not applicable and proceed to next step

          ./chip-tool doorlock set-credential 2 '{ "CredentialType" : 1, "CredentialIndex" : 3 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000

          Verify "DUT sends Set Credential Response command with response as OCCUPIED" on the TH(Chip-tool) Log:

          [1658473055.384297][2667:2672] CHIP:DMG: },
          [1658473055.384374][2667:2672] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023
          [1658473055.384433][2667:2672] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Command 0x0000_0023
          [1658473055.384516][2667:2672] CHIP:TOO:   SetCredentialResponse: {
          [1658473055.384571][2667:2672] CHIP:TOO:     status: 2
          [1658473055.384602][2667:2672] CHIP:TOO:     userIndex: null
          [1658473055.384632][2667:2672] CHIP:TOO:     nextCredentialIndex: 4
          [1658473055.384660][2667:2672] CHIP:TOO:    }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH sends Clear Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C26.Rsp
      command: "ClearCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 1 }

    - label: "TH sends Get Credential Status Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx
      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: "TH sends Set User Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C1a.Rsp
      command: "SetUser"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - name: "UserIndex"
                value: 2
              - name: "UserName"
                value: "xxx"
              - name: "UserUniqueID"
                value: "6452"
              - name: "UserStatus"
                value: 1
              - name: "UserType"
                value: 0
              - name: "CredentialRule"
                value: 0

    - label: "TH sends Set Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
      command: "SetCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "OperationType"
                value: 0
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 1 }
              - name: "CredentialData"
                value: "123456"
              - name: "UserIndex"
                value: 2
              - name: "UserStatus"
                value: null
              - name: "UserType"
                value: null
      response:
          values:
              - name: "Status"
                value: 0
              - name: "UserIndex"
                value: null
              - name: "NextCredentialIndex"
                value: 2

    - label: "TH sends Clear Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C26.Rsp
      command: "ClearCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 65534 }

    - label: "TH sends Get Credential Status Command"
      PICS: DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx
      command: "GetCredentialStatus"
      arguments:
          values:
              - name: "Credential"
                value: { CredentialType: 1, CredentialIndex: 65534 }
      response:
          values:
              - name: "CredentialExists"
                value: false
              - name: "UserIndex"
                value: null
              - name: "CreatorFabricIndex"
                value: null
              - name: "LastModifiedFabricIndex"
                value: null
              - name: "NextCredentialIndex"
                value: null

    - label: "TH sends Get Credential Status Command"
      PICS: DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx
      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: "TH sends Clear Credential Command to DUT"
      PICS: DRLK.S.F08 && DRLK.S.C26.Rsp
      command: "ClearCredential"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "Credential"
                value: { CredentialType: 8, CredentialIndex: 2 }
      response:
          error: INVALID_COMMAND

    - label: "Cleanup the first created user"
      command: "ClearUser"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "UserIndex"
                value: 1

    - label: "Cleanup the second created user"
      command: "ClearUser"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "UserIndex"
                value: 2
