# Copyright (c) 2023 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.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name:
    123.2.4. [TC-S-2.4] Recall scene with transition time functionality with DUT
    as Server

PICS:
    - S.S

config:
    nodeId: 0x12344321
    cluster: "Scenes Management"
    endpoint: 1
    G1:
        type: group_id
        defaultValue: 0x0001

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

    - label:
          "Step 0a: TH sends KeySetWrite command in the GroupKeyManagement
          cluster to DUT using a key that is pre-installed on the TH.
          GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a1
          2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0:
          a0a1a2a3a4a5a6a7a8a9aaabacadaeaf 4)EpochStartTime0: 1110000
          5)EpochKey1: b0b1b2b3b4b5b6b7b8b9babbbcbdbebf 6)EpochStartTime1:
          1110001 7)EpochKey2: c0c1c2c3c4c5c6c7c8c9cacbcccdcecf
          8)EpochStartTime2: 1110002"
      cluster: "Group Key Management"
      endpoint: 0
      command: "KeySetWrite"
      arguments:
          values:
              - name: "GroupKeySet"
                value:
                    {
                        GroupKeySetID: 0x01a1,
                        GroupKeySecurityPolicy: 0,
                        EpochKey0: "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf",
                        EpochStartTime0: 1110000,
                        EpochKey1: "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf",
                        EpochStartTime1: 1110001,
                        EpochKey2: "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf",
                        EpochStartTime2: 1110002,
                    }

    - label:
          "Step 0b: TH binds GroupId 0x0001 with GroupKeySetID 0x01a1 in the
          GroupKeyMap attribute list on GroupKeyManagement cluster by writing
          the GroupKeyMap attribute with one entry as follows: List item 1:
          1)FabricIndex: 1 2)GroupId: 0x0001 3)GroupKeySetId: 0x01a1"
      cluster: "Group Key Management"
      endpoint: 0
      command: "writeAttribute"
      attribute: "GroupKeyMap"
      arguments:
          value: [{ FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 }]

    - label: "Step 1: TH sends a RemoveAllGroups command to DUT."
      PICS: G.S.C04.Rsp
      cluster: "Groups"
      command: "RemoveAllGroups"

    - label:
          "Step 2a: TH sends a AddGroup command to DUT with the GroupID field
          set to G1."
      PICS: G.S.C00.Rsp
      cluster: "Groups"
      command: "AddGroup"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "GroupName"
                value: "Group1"
      response:
          values:
              - name: "Status"
                value: 0
              - name: "GroupID"
                value: G1

    - label:
          "Step 2b: TH sends a RemoveAllScenes command to DUT with the GroupID
          field set to G1."
      PICS: S.S.C03.Rsp
      command: "RemoveAllScenes"
      arguments:
          values:
              - name: "GroupID"
                value: G1
      response:
          values:
              - name: "Status"
                value: 0
              - name: "GroupID"
                value: G1

    - label:
          "Step 3: TH sends a AddScene command to DUT with the GroupID field set
          to G1, the SceneID field set to 0x01, the TransitionTime field set to
          20000 (20s) and no extension fields set."
      PICS: S.S.C00.Rsp
      command: "AddScene"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01
              - name: "TransitionTime"
                value: 20000
              - name: "SceneName"
                value: "Scene1"
              - name: "ExtensionFieldSets"
                value: []

      response:
          values:
              - name: "Status"
                value: 0x00
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01

    - label:
          "Step 4a: TH configures AC1 on DUT for all implemented application
          clusters supporting scenes."
      PICS: PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "MoveToLevelWithOnOff"
      arguments:
          values:
              - name: "Level"
                value: 100
              - name: "TransitionTime"
                value: 0
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label:
          "Step 4a: TH configures AC1 on DUT for all implemented application
          clusters supporting scenes."
      verification: |
          Is DUT configured with AC1?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value:
                    "Please configure AC1 on DUT and enter 'y' after the
                    configuration is complete"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 4b: TH sends a StoreScene command to DUT with the GroupID field
          set to G1 and the SceneID field set to 0x01."
      PICS: S.S.C04.Rsp
      command: "StoreScene"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01
      response:
          values:
              - name: "Status"
                value: 0x00
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01

    - label:
          "Step 5a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      PICS: PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "MoveToLevelWithOnOff"
      arguments:
          values:
              - name: "Level"
                value: 200
              - name: "TransitionTime"
                value: 0
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label: "Wait 1s for level to change"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 1000

    - label:
          "TH confirm the DUT reached AC2 (on level control cluster) after 1s,
          which is different from AC1"
      PICS: PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "readAttribute"
      attribute: "CurrentLevel"
      response:
          value: 200

    - label:
          "Step 5a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      verification: |
          Is DUT configured with AC2?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value:
                    "Please configure AC2 on DUT and enter 'y' after the
                    configuration is complete"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 5b: TH sends a RecallScene command to DUT with the GroupID field
          set to G1 and the SceneID field set to 0x01 and the TransitionTime
          field omitted."
      PICS: S.S.C05.Rsp
      command: "RecallScene"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01

    - label: "Wait 20s"
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 20500

    - label:
          "TH confirm the DUT reached AC1 (on level control cluster) after 20s"
      PICS: PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "readAttribute"
      attribute: "CurrentLevel"
      response:
          value: 100

    - label: "DUT transitions to AC1 over 20s."
      verification: |
          Is the transition done over 20s?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Please confirm that transition to AC1 was made over 20s"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 6a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      PICS: S.S.C05.Rsp && PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "MoveToLevelWithOnOff"
      arguments:
          values:
              - name: "Level"
                value: 200
              - name: "TransitionTime"
                value: 0
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label:
          "Step 6a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      verification: |
          Is DUT configured with AC2?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: S.S.C05.Rsp && PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value:
                    "Please configure AC2 on DUT and enter 'y' after the
                    configuration is complete"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 6b: TH sends a RecallScene command to DUT with the GroupID field
          set to G1, the SceneID field set to 0x01 and the TransitionTime field
          set to 5000 5s."
      PICS: S.S.C05.Rsp
      command: "RecallScene"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01
              - name: "TransitionTime"
                value: 5000

    - label: "Wait 5s"
      PICS: S.S.C05.Rsp
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 5500

    - label:
          "TH confirm the DUT reached AC1 (on level control cluster) after 5s"
      PICS: S.S.C05.Rsp && PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "readAttribute"
      attribute: "CurrentLevel"
      response:
          value: 100

    - label: "DUT transitions to AC1 over 5."
      verification: |
          Is the transition done over 5s?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Please confirm that transition to AC1 was made over 5s"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 7a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      PICS: PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "MoveToLevelWithOnOff"
      arguments:
          values:
              - name: "Level"
                value: 200
              - name: "TransitionTime"
                value: 0
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label:
          "Step 7a: TH configures AC2 on DUT for all implemented application
          clusters supporting scenes."
      verification: |
          Is DUT configured with AC2?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value:
                    "Please configure AC2 on DUT and enter 'y' after the
                    configuration is complete"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 7b: TH sends a RecallScene command to DUT with the GroupID field
          set to G1, the SceneID field set to 0x01 and the TransitionTime field
          set to null (no transition time override)."
      PICS: S.S.C05.Rsp
      command: "RecallScene"
      arguments:
          values:
              - name: "GroupID"
                value: G1
              - name: "SceneID"
                value: 0x01
              - name: "TransitionTime"
                value: null

    - label: "Wait 20s"
      PICS: S.S.C05.Rsp
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 20500

    - label:
          "TH confirm the DUT reached AC1 (on level control cluster) after 20s"
      PICS: S.S.C05.Rsp && PICS_SDK_CI_ONLY
      cluster: "Level Control"
      command: "readAttribute"
      attribute: "CurrentLevel"
      response:
          value: 100

    - label: "DUT transitions to AC1 over 20s."
      verification: |
          Is the transition done over 20s?
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Please confirm that transition to AC1 was made over 20s"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 8: TH removes the Group key set that was added by sending a
          KeySetRemove command to the GroupKeyManagement cluster with the
          GroupKeySetID field set to 0x01a1"
      cluster: "Group Key Management"
      endpoint: 0
      command: "KeySetRemove"
      arguments:
          values:
              - name: GroupKeySetID
                value: 0x01a1
