# 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: ICD Management Cluster Tests

config:
    nodeId: 0x12344321
    cluster: "ICD Management"
    endpoint: 0
    beforeRebootICDCounter:
        type: int32u
        defaultValue: 0

tests:
    - label: "Read the commissioner node ID"
      cluster: "CommissionerCommands"
      command: "GetCommissionerNodeId"
      response:
          values:
              - name: "nodeId"
                saveAs: commissionerNodeId

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

    # chip-tool will register itself with the ICD during the tests.
    - label: "Read RegisteredClients For Registration During Commissioning"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value:
              [
                  {
                      CheckInNodeID: commissionerNodeId,
                      MonitoredSubject: commissionerNodeId,
                  },
              ]

    - label: "Read ICDCounter"
      command: "readAttribute"
      attribute: "ICDCounter"
      response:
          constraints:
              type: int32u
              minValue: 0x0
              maxValue: 0xFFFFFFFF
          saveAs: beforeRebootICDCounter

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

    - label: "Connect to the device again"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "Wait for 1S"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 1000

    # Verifies ICDCounter increment and Check-In message at reboot
    - label: "Read ICDCounter after reboot"
      command: "readAttribute"
      attribute: "ICDCounter"
      response:
          constraints:
              # It is possible ICD hasn't had time to send a Check-In message after reboot
              minValue: beforeRebootICDCounter + 100
              maxValue: beforeRebootICDCounter + 101

    - label: "Verify the ICD is operating as a LIT ICD"
      command: "readAttribute"
      attribute: OperatingMode
      response:
          value: 1

    - label: "Unregister Client Registered During Commissioning"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: commissionerNodeId

    - label: "Verify the ICD is operating as a SIT ICD"
      command: "readAttribute"
      attribute: OperatingMode
      response:
          value: 0

    - label: "Read Feature Map"
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          value: 0x07

    - label: "Read IdleModeDuration"
      command: "readAttribute"
      attribute: "IdleModeDuration"
      response:
          value: 3600

    - label: "Read ActiveModeDuration"
      command: "readAttribute"
      attribute: "ActiveModeDuration"
      response:
          value: 10000

    - label: "Read ActiveModeThreshold"
      command: "readAttribute"
      attribute: "ActiveModeThreshold"
      response:
          value: 5000

    - label: "Read UserActiveModeTriggerHint"
      command: "readAttribute"
      attribute: "UserActiveModeTriggerHint"
      response:
          constraints:
              type: bitmap32
          value: 0x111D

    - label: "Read UserActiveModeTriggerInstruction"
      command: "readAttribute"
      attribute: "UserActiveModeTriggerInstruction"
      response:
          constraints:
              type: char_string
              minLength: 1
              maxLength: 128

    - label: "Read ClientsSupportedPerFabric"
      command: "readAttribute"
      attribute: "ClientsSupportedPerFabric"
      response:
          value: 2

    - label: "Unregister 1.0"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
      response:
          error: NOT_FOUND

    - label: "Unregister 2.0"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 102
      response:
          error: NOT_FOUND

    - label: "Unregister 3.0"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 102
      response:
          error: NOT_FOUND

    - label: "Register 1.0 (key too short)"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
              - name: "MonitoredSubject"
                value: 1001
              - name: "Key"
                value: "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e"
      response:
          error: CONSTRAINT_ERROR

    - label: "Register 1.0 (key too long)"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
              - name: "MonitoredSubject"
                value: 1001
              - name: "Key"
                value: "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\xff"
      response:
          error: CONSTRAINT_ERROR

    - label: "Register 1.1"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
              - name: "MonitoredSubject"
                value: 1001
              - name: "Key"
                value: "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
      response:
          values:
              - name: "ICDCounter"
                constraints:
                    type: int32u
                    minValue: 0x0
                    maxValue: 0xFFFFFFFF

    - label: "Register 2.1"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 201
              - name: "MonitoredSubject"
                value: 2001
              - name: "Key"
                value:
                    "\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
      response:
          values:
              - name: "ICDCounter"
                constraints:
                    type: int32u
                    minValue: 0x0
                    maxValue: 0xFFFFFFFF

    - label: "Register 3.1"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 301
              - name: "MonitoredSubject"
                value: 3001
              - name: "Key"
                value: "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
      response:
          error: RESOURCE_EXHAUSTED

    - label: "Read RegisteredClients"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value:
              [
                  { CheckInNodeID: 101, MonitoredSubject: 1001 },
                  { CheckInNodeID: 201, MonitoredSubject: 2001 },
              ]

    - label: "Register 1.1 (update)"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
              - name: "MonitoredSubject"
                value: 1002
              - name: "Key"
                value: "\x01\x11\x21\x31\x41\x51\x61\x71\x81\x91\xa1\xb1\xc1\xd1\xe1\xf1"
      response:
          values:
              - name: "ICDCounter"
                constraints:
                    type: int32u
                    minValue: 0x0
                    maxValue: 0xFFFFFFFF

    - label: "Read RegisteredClients"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value:
              [
                  { CheckInNodeID: 101, MonitoredSubject: 1002 },
                  { CheckInNodeID: 201, MonitoredSubject: 2001 },
              ]

    - label: "Register 2.2 (wrong verification key)"
      command: "RegisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 201
              - name: "MonitoredSubject"
                value: 2002
              - name: "Key"
                value: "\x02\x12\x22\x32\x42\x52\x62\x72\x82\x92\xa2\xb2\xc2\xd2\xe2\x2f"
              - name: "VerificationKey"
                value:
                    "\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2f\x2f"
      response:
          values:
              - name: "ICDCounter"
                constraints:
                    type: int32u
                    minValue: 0x0
                    maxValue: 0xFFFFFFFF

    - label: "Read RegisteredClients"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value:
              [
                  { CheckInNodeID: 101, MonitoredSubject: 1002 },
                  { CheckInNodeID: 201, MonitoredSubject: 2002 },
              ]

    - label: "Unregister 1.1 (wrong key)"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
              - name: "VerificationKey"
                value: "\x01\x21\x21\x31\x41\x51\x61\x71\x81\x91\xa1\xb1\xc1\xd1\xe1\xf1"

    - label: "Read RegisteredClients"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value: [{ CheckInNodeID: 201, MonitoredSubject: 2002 }]

    - label: "Unregister 2.1"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 201

    - label: "Read RegisteredClients"
      command: "readAttribute"
      attribute: "RegisteredClients"
      response:
          value: []

    - label: "Unregister 1.3"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 101
      response:
          error: NOT_FOUND

    - label: "Unregister 2.2"
      command: "UnregisterClient"
      arguments:
          values:
              - name: "CheckInNodeID"
                value: 102
      response:
          error: NOT_FOUND

    - label:
          "Wait for a little bit less than the active mode duration (10000ms)"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 9000

    - label:
          "StayActive Scenario 1: Confirm the promised active duration is
          increased to a specific if a value less than 30000ms is requested and
          the device does not intend to stay active longer"
      command: "StayActiveRequest"
      arguments:
          values:
              - name: "StayActiveDuration"
                value: 20000
      response:
          values:
              - name: "PromisedActiveDuration"
                constraints:
                    type: int32u
                    minValue: 19500
                    maxValue: 20500

    - label:
          "Wait for a little bit less than the new promied active mode duration
          (20000ms)"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 19000

    - label:
          "StayActive Scenario 2: Confirm the promised active duration is
          reduced to 30000ms if a value greater than 30000ms is requested"
      command: "StayActiveRequest"
      arguments:
          values:
              - name: "StayActiveDuration"
                value: 35000
      response:
          values:
              - name: "PromisedActiveDuration"
                constraints:
                    type: int32u
                    minValue: 29500
                    maxValue: 30500

    - label:
          "Wait for a 20000 less than the new promied active mode duration
          (30000ms)"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 10000

    - label:
          "StayActive Scenario 3: confirm that the device ignores the request if
          the device intends to stay active longer than the requested duration
          we should have about 20000ms left here"
      command: "StayActiveRequest"
      arguments:
          values:
              - name: "StayActiveDuration"
                value: 10000
      response:
          values:
              - name: "PromisedActiveDuration"
                constraints:
                    type: int32u
                    minValue: 19500
                    maxValue: 20500
