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

name: 3.2.4. [TC-ACT-3.2] Functionality with client as DUT

PICS:
    - ACT.C

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    endpoint: 0

tests:
    - label: "Note"
      verification: |
          For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label:
          "Preparation: TH as server exposes an Actions server cluster on EP 1,
          with one action (supporting all possible commands) and corresponding
          ActionLists and EndpointLists attributes: ActionList: contains one
          list element (ActionListStruct):  ActionIO = 0x1001  Name = 'some
          test'  Type = other  EndpointListID = 0xE001  SupportedCommands =
          0x0fff // suppports all commands  State = Inactive EndpointLists:
          contains one list element (EndpointListStruct):  EndpointListID =
          0xE001  Name = 'test room'  Type = room  Endpoints = [3] SetupURL: ''
          (empty string)"
      verification: |
          pre-condition :
          Please use the below chip-tool commmands as example on how this TC can be performed using chip-tool. The DUT vendor to use commands per the DUT implemetnation

          1. First read action-list by following command

          ./chip-tool actions read action-list 1 1

          [1666952908.036087][217545:217550] CHIP:DMG: ReportDataMessage =
          [1666952908.036108][217545:217550] CHIP:DMG: {
          [1666952908.036123][217545:217550] CHIP:DMG:         AttributeReportIBs =
          [1666952908.036146][217545:217550] CHIP:DMG:         [
          [1666952908.036162][217545:217550] CHIP:DMG:                 AttributeReportIB =
          [1666952908.036186][217545:217550] CHIP:DMG:                 {
          [1666952908.036201][217545:217550] CHIP:DMG:                         AttributeDataIB =
          [1666952908.036218][217545:217550] CHIP:DMG:                         {
          [1666952908.036236][217545:217550] CHIP:DMG:                                 DataVersion = 0x24eeedc4,
          [1666952908.036253][217545:217550] CHIP:DMG:                                 AttributePathIB =
          [1666952908.036271][217545:217550] CHIP:DMG:                                 {
          [1666952908.036291][217545:217550] CHIP:DMG:                                         Endpoint = 0x1,
          [1666952908.036309][217545:217550] CHIP:DMG:                                         Cluster = 0x25,
          [1666952908.036330][217545:217550] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1666952908.036347][217545:217550] CHIP:DMG:                                 }
          [1666952908.036368][217545:217550] CHIP:DMG:
          [1666952908.036387][217545:217550] CHIP:DMG:                                 Data = [
          [1666952908.036404][217545:217550] CHIP:DMG:
          [1666952908.036422][217545:217550] CHIP:DMG:                                 ],
          [1666952908.036438][217545:217550] CHIP:DMG:                         },
          [1666952908.036463][217545:217550] CHIP:DMG:
          [1666952908.036482][217545:217550] CHIP:DMG:                 },
          [1666952908.036511][217545:217550] CHIP:DMG:
          [1666952908.036531][217545:217550] CHIP:DMG:                 AttributeReportIB =
          [1666952908.036558][217545:217550] CHIP:DMG:                 {
          [1666952908.036576][217545:217550] CHIP:DMG:                         AttributeDataIB =
          [1666952908.036593][217545:217550] CHIP:DMG:                         {
          [1666952908.036610][217545:217550] CHIP:DMG:                                 DataVersion = 0x24eeedc4,
          [1666952908.036627][217545:217550] CHIP:DMG:                                 AttributePathIB =
          [1666952908.036646][217545:217550] CHIP:DMG:                                 {
          [1666952908.036667][217545:217550] CHIP:DMG:                                         Endpoint = 0x1,
          [1666952908.036688][217545:217550] CHIP:DMG:                                         Cluster = 0x25,
          [1666952908.036713][217545:217550] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1666952908.036731][217545:217550] CHIP:DMG:                                         ListIndex = Null,
          [1666952908.036749][217545:217550] CHIP:DMG:                                 }
          [1666952908.036770][217545:217550] CHIP:DMG:
          [1666952908.036787][217545:217550] CHIP:DMG:                                 Data =
          [1666952908.036805][217545:217550] CHIP:DMG:                                 {
          [1666952908.036824][217545:217550] CHIP:DMG:                                         0x0 = 4097,
          [1666952908.036846][217545:217550] CHIP:DMG:                                         0x1 = "Room 1 On" (9 chars),
          [1666952908.036866][217545:217550] CHIP:DMG:                                         0x2 = 3,
          [1666952908.036889][217545:217550] CHIP:DMG:                                         0x3 = 57345,
          [1666952908.036908][217545:217550] CHIP:DMG:                                         0x4 = 1,
          [1666952908.036924][217545:217550] CHIP:DMG:                                         0x5 = 0,
          [1666952908.036938][217545:217550] CHIP:DMG:                                 },
          [1666952908.036954][217545:217550] CHIP:DMG:                         },
          [1666952908.036981][217545:217550] CHIP:DMG:
          [1666952908.036995][217545:217550] CHIP:DMG:                 },
          [1666952908.037037][217545:217550] CHIP:DMG:
          [1666952908.037052][217545:217550] CHIP:DMG:                 AttributeReportIB =
          [1666952908.037082][217545:217550] CHIP:DMG:                 {
          [1666952908.037095][217545:217550] CHIP:DMG:                         AttributeDataIB =
          [1666952908.037106][217545:217550] CHIP:DMG:                         {
          [1666952908.037118][217545:217550] CHIP:DMG:                                 DataVersion = 0x24eeedc4,
          [1666952908.037129][217545:217550] CHIP:DMG:                                 AttributePathIB =
          [1666952908.037142][217545:217550] CHIP:DMG:                                 {
          [1666952908.037155][217545:217550] CHIP:DMG:                                         Endpoint = 0x1,
          [1666952908.037168][217545:217550] CHIP:DMG:                                         Cluster = 0x25,
          [1666952908.037181][217545:217550] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1666952908.037193][217545:217550] CHIP:DMG:                                         ListIndex = Null,
          [1666952908.037206][217545:217550] CHIP:DMG:                                 }
          [1666952908.037220][217545:217550] CHIP:DMG:
          [1666952908.037231][217545:217550] CHIP:DMG:                                 Data =
          [1666952908.037243][217545:217550] CHIP:DMG:                                 {
          [1666952908.037263][217545:217550] CHIP:DMG:                                         0x0 = 4098,
          [1666952908.037289][217545:217550] CHIP:DMG:                                         0x1 = "Turn On Room 2" (14 chars),
          [1666952908.037314][217545:217550] CHIP:DMG:                                         0x2 = 3,
          [1666952908.037334][217545:217550] CHIP:DMG:                                         0x3 = 57346,
          [1666952908.037355][217545:217550] CHIP:DMG:                                         0x4 = 1,
          [1666952908.037380][217545:217550] CHIP:DMG:                                         0x5 = 0,
          [1666952908.037393][217545:217550] CHIP:DMG:                                 },
          [1666952908.037404][217545:217550] CHIP:DMG:                         },
          [1666952908.037426][217545:217550] CHIP:DMG:
          [1666952908.037437][217545:217550] CHIP:DMG:                 },
          [1666952908.037456][217545:217550] CHIP:DMG:
          [1666952908.037465][217545:217550] CHIP:DMG:         ],
          [1666952908.037519][217545:217550] CHIP:DMG:
          [1666952908.037550][217545:217550] CHIP:DMG:         SuppressResponse = true,
          [1666952908.037569][217545:217550] CHIP:DMG:         InteractionModelRevision = 1
          [1666952908.037588][217545:217550] CHIP:DMG: }
          [1666952908.037903][217545:217550] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 619638212
          [1666952908.037961][217545:217550] CHIP:TOO:   ActionList: 2 entries
          [1666952908.037989][217545:217550] CHIP:TOO:     [1]: {
          [1666952908.038003][217545:217550] CHIP:TOO:       ActionID: 4097
          [1666952908.038015][217545:217550] CHIP:TOO:       Name: Room 1 On
          [1666952908.038027][217545:217550] CHIP:TOO:       Type: 3
          [1666952908.038039][217545:217550] CHIP:TOO:       EndpointListID: 57345
          [1666952908.038052][217545:217550] CHIP:TOO:       SupportedCommands: 1
          [1666952908.038063][217545:217550] CHIP:TOO:       State: 0
          [1666952908.038074][217545:217550] CHIP:TOO:      }
          [1666952908.038093][217545:217550] CHIP:TOO:     [2]: {
          [1666952908.038104][217545:217550] CHIP:TOO:       ActionID: 4098
          [1666952908.038114][217545:217550] CHIP:TOO:       Name: Turn On Room 2
          [1666952908.038125][217545:217550] CHIP:TOO:       Type: 3
          [1666952908.038136][217545:217550] CHIP:TOO:       EndpointListID: 57346
          [1666952908.038147][217545:217550] CHIP:TOO:       SupportedCommands: 1
          [1666952908.038158][217545:217550] CHIP:TOO:       State: 0
          [1666952908.038168][217545:217550] CHIP:TOO:      }


          2. Use the above obtained ActionID to verify the following commands
           ./chip-tool actions instant-action 4097 1 1
      disabled: true

    - label: "DUT issues an InstantAction command to TH"
      PICS: ACT.C.C00.Tx
      verification: |
          ./chip-tool actions instant-action 4097 1 1

          Verify the command is successfully sent on TH(bridge-app)

          [1666953083.522228][217528:217528] CHIP:DMG:         suppressResponse = false,
          [1666953083.522251][217528:217528] CHIP:DMG:         InvokeResponseIBs =
          [1666953083.522287][217528:217528] CHIP:DMG:         [
          [1666953083.522307][217528:217528] CHIP:DMG:                 InvokeResponseIB =
          [1666953083.522343][217528:217528] CHIP:DMG:                 {
          [1666953083.522364][217528:217528] CHIP:DMG:                         CommandStatusIB =
          [1666953083.522393][217528:217528] CHIP:DMG:                         {
          [1666953083.522416][217528:217528] CHIP:DMG:                                 CommandPathIB =
          [1666953083.522445][217528:217528] CHIP:DMG:                                 {
          [1666953083.522473][217528:217528] CHIP:DMG:                                         EndpointId = 0x1,
          [1666953083.522504][217528:217528] CHIP:DMG:                                         ClusterId = 0x25,
          [1666953083.522528][217528:217528] CHIP:DMG:                                         CommandId = 0x0,
          [1666953083.522549][217528:217528] CHIP:DMG:                                 },
          [1666953083.522578][217528:217528] CHIP:DMG:
          [1666953083.522599][217528:217528] CHIP:DMG:                                 StatusIB =
          [1666953083.522622][217528:217528] CHIP:DMG:                                 {
          [1666953083.522645][217528:217528] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1666953083.522667][217528:217528] CHIP:DMG:                                 },
          [1666953083.522690][217528:217528] CHIP:DMG:
          [1666953083.522710][217528:217528] CHIP:DMG:                         },
          [1666953083.522738][217528:217528] CHIP:DMG:
          [1666953083.522756][217528:217528] CHIP:DMG:                 },
          [1666953083.522785][217528:217528] CHIP:DMG:
          [1666953083.522803][217528:217528] CHIP:DMG:         ],
          [1666953083.522832][217528:217528] CHIP:DMG:
          [1666953083.522851][217528:217528] CHIP:DMG:         InteractionModelRevision = 1
          [1666953083.522869][217528:217528] CHIP:DMG: },
          [1666953083.522888][217528:217528] CHIP:DMG:
          [1666953083.523029][217528:217528] CHIP:DMG: Command handler moving to [CommandSen]
          [1666953083.523057][217528:217528] CHIP:DMG: Command handler moving to [AwaitingDe]
          [1666953083.523120][217528:217528] CHIP:DMG: Endpoint a, Cluster 0x0000_0006 update version to 37442e42
          [1666953083.523159][217528:217528] CHIP:DMG: Endpoint b, Cluster 0x0000_0006 update version to a57a1137
          [1666953083.523956][217528:217528] CHIP:DMG: << from UDP:[fe80::485c:bace:6107:3682%wlp3s0]:49809 | 100197571 | [Secure Channel  (0) / Standalone Ack (0x10) / Session = 0 / Exchange = 45347]
      disabled: true

    - label: "DUT issues an StartAction command to TH"
      PICS: ACT.C.C02.Tx
      verification: |
          ./chip-tool actions start-action 0 1 1

          Note: Message log similar as in step 1
      disabled: true

    - label: "DUT issues an StopAction command to TH"
      PICS: ACT.C.C04.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an PauseAction command to TH"
      PICS: ACT.C.C05.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an ResumeAction command to TH"
      PICS: ACT.C.C07.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an EnableAction command to TH"
      PICS: ACT.C.C08.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an DisableAction command to TH"
      PICS: ACT.C.C0a.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an StartActionWithDuration command to TH"
      PICS: ACT.C.C03.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an PauseActionWithDuration command to TH"
      PICS: ACT.C.C06.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an EnableActionWithDuration command to TH"
      PICS: ACT.C.C09.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an DisableActionWithDuration command to TH"
      PICS: ACT.C.C0b.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true

    - label: "DUT issues an InstantActionWithTransition command to TH"
      PICS: ACT.C.C01.Tx
      verification: |
          Out of scope for V1.0, The reference app doesn't have implementation for this command
      disabled: true
