# Copyright (c) 2022 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: ArmFailSafe Tests

config:
    nodeId: 0x12344321
    endpoint: 0

tests:
    - label: "Reboot target device"
      cluster: "SystemCommands"
      command: "Reboot"

    - label: "Wait for the alpha device to be retrieved "
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "Query fabrics list"
      command: "readAttribute"
      cluster: "Operational Credentials"
      attribute: "Fabrics"
      response:
          value: [{ Label: "", nodeId: nodeId }]
          constraints:
              type: list

    - label: "ArmFailSafe on target device with timeout 0"
      cluster: "General Commissioning"
      command: "ArmFailSafe"
      arguments:
          values:
              - name: "expiryLengthSeconds"
                value: 0
              - name: "breadcrumb"
                value: 0
      response:
          values:
              - name: "errorCode"
                value: 0

    - label: "Reads NodeLabel mandatory attribute of target device"
      command: "readAttribute"
      cluster: "Basic"
      attribute: "NodeLabel"
      response:
          value: ""

    - label: "Invoke AddTrustedRootCertificate without fail-safe"
      command: "AddTrustedRootCertificate"
      cluster: "Operational Credentials"
      arguments:
          values:
              - name: RootCertificate
                value: "00000000"

      response:
          error: FAILSAFE_REQUIRED

    - label: "Invoke AddNOC without fail-safe"
      command: "AddNOC"
      cluster: "Operational Credentials"
      arguments:
          values:
              - name: NOCValue
                value: "00112233"
              - name: IPKValue
                value: "\x00\x01\x02\x03\x04\x05\x06\x07\x00\x01\x02\x03\x04\x05\x06\x07"
              - name: CaseAdminSubject
                value: 1234
              - name: AdminVendorId
                value: 65521
      response:
          error: FAILSAFE_REQUIRED

    - label: "Invoke UpdateNOC without fail-safe"
      command: "UpdateNOC"
      cluster: "Operational Credentials"
      arguments:
          values:
              - name: NOCValue
                value: "00112233"
      response:
          error: FAILSAFE_REQUIRED

    - label: "Invoke CSRRequest without fail-safe"
      command: "CSRRequest"
      cluster: "Operational Credentials"
      arguments:
          values:
              - name: CSRNonce
                value: "\x00\x01\x02\x03\x04\x05\x06\x07\x00\x01\x02\x03\x04\x05\x06\x07\x00\x01\x02\x03\x04\x05\x06\x07\x00\x01\x02\x03\x04\x05\x06\x07"
      response:
          error: FAILSAFE_REQUIRED
