# 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: 59.3.2. [TC-I-3.2] Functionality with Client as DUT

PICS:
    - I.C

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

tests:
    - label:
          "DUT issues an Identify command to the Test Harness, with the
          IdentifyTime argument set to 0x003C (60 seconds) or a reasonable time
          that is supported by the DUT."
      PICS: I.C.C00.Tx
      verification: |
          ./chip-tool identify identify 60 1 1
          verify On TH(Reference app) receives the right invoke Request Message for the data sent in the above command
          [1646010972.583498][33190:33190] CHIP:EM: Handling via exchange: 60250r, Delegate: 0xaaaace1730c8
          [1646010972.583578][33190:33190] CHIP:DMG: InvokeRequestMessage =
          [1646010972.583611][33190:33190] CHIP:DMG: {
          [1646010972.583636][33190:33190] CHIP:DMG:         suppressResponse = false,
          [1646010972.583663][33190:33190] CHIP:DMG:         timedRequest = false,
          [1646010972.583687][33190:33190] CHIP:DMG:         InvokeRequests =
          [1646010972.583718][33190:33190] CHIP:DMG:         [
          [1646010972.583742][33190:33190] CHIP:DMG:                 CommandDataIB =
          [1646010972.583773][33190:33190] CHIP:DMG:                 {
          [1646010972.583798][33190:33190] CHIP:DMG:                         CommandPathIB =
          [1646010972.583835][33190:33190] CHIP:DMG:                         {
          [1646010972.583868][33190:33190] CHIP:DMG:                                 EndpointId = 0x1,
          [1646010972.583905][33190:33190] CHIP:DMG:                                 ClusterId = 0x3,
          [1646010972.583941][33190:33190] CHIP:DMG:                                 CommandId = 0x0,
          [1646010972.583976][33190:33190] CHIP:DMG:                         },
          [1646010972.584008][33190:33190] CHIP:DMG:
          [1646010972.584037][33190:33190] CHIP:DMG:                         CommandData =
          [1646010972.584071][33190:33190] CHIP:DMG:                         {
          [1646010972.584106][33190:33190] CHIP:DMG:                                 0x0 = 60,
          [1646010972.584140][33190:33190] CHIP:DMG:                         },
          [1646010972.584172][33190:33190] CHIP:DMG:                 },
          [1646010972.584204][33190:33190] CHIP:DMG:
          [1646010972.584227][33190:33190] CHIP:DMG:         ],
          [1646010972.584257][33190:33190] CHIP:DMG:
          [1646010972.584281][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646010972.584304][33190:33190] CHIP:DMG: },
          [1646010972.584359][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o
          [1646010972.584430][33190:33190] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000
          [1646010972.584474][33190:33190] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to d4fdf424

          On DUT as a client side, verify that TH all-clusters-app sent success response
          [1658144469.552560][8995:9000] CHIP:DMG:
          [1658144469.552589][8995:9000] CHIP:DMG:                                 StatusIB =
          [1658144469.552626][8995:9000] CHIP:DMG:                                 {
          [1658144469.552663][8995:9000] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1658144469.552698][8995:9000] CHIP:DMG:                                 },
      disabled: true

    - label:
          "DUT issues an IdentifyQuery command to the Test Harness. Note:
          IdentifyQuery is not supported by Matter."
      PICS: I.C.C01.Tx
      verification: |
          IdentifyQuery is not supported by Matter
      disabled: true

    - label:
          "DUT issues an Identify command to the Test Harness, with the
          IdentifyTime argument set to 0x0000 (Stop)."
      PICS: I.C.C00.Tx
      verification: |
          ./chip-tool identify identify 0 1 1
          verify On TH(Reference app) receives the right invoke Request Message for the data sent in the above command
          [1646011311.206353][33190:33190] CHIP:EM: Handling via exchange: 12024r, Delegate: 0xaaaace1730c8
          [1646011311.206436][33190:33190] CHIP:DMG: InvokeRequestMessage =
          [1646011311.206462][33190:33190] CHIP:DMG: {
          [1646011311.206483][33190:33190] CHIP:DMG:         suppressResponse = false,
          [1646011311.206514][33190:33190] CHIP:DMG:         timedRequest = false,
          [1646011311.206544][33190:33190] CHIP:DMG:         InvokeRequests =
          [1646011311.206575][33190:33190] CHIP:DMG:         [
          [1646011311.206599][33190:33190] CHIP:DMG:                 CommandDataIB =
          [1646011311.206628][33190:33190] CHIP:DMG:                 {
          [1646011311.206656][33190:33190] CHIP:DMG:                         CommandPathIB =
          [1646011311.206687][33190:33190] CHIP:DMG:                         {
          [1646011311.206719][33190:33190] CHIP:DMG:                                 EndpointId = 0x1,
          [1646011311.206754][33190:33190] CHIP:DMG:                                 ClusterId = 0x3,
          [1646011311.206786][33190:33190] CHIP:DMG:                                 CommandId = 0x0,
          [1646011311.206815][33190:33190] CHIP:DMG:                         },
          [1646011311.206848][33190:33190] CHIP:DMG:
          [1646011311.206875][33190:33190] CHIP:DMG:                         CommandData =
          [1646011311.206906][33190:33190] CHIP:DMG:                         {
          [1646011311.206937][33190:33190] CHIP:DMG:                                 0x0 = 0,
          [1646011311.206970][33190:33190] CHIP:DMG:                         },
          [1646011311.207000][33190:33190] CHIP:DMG:                 },
          [1646011311.207032][33190:33190] CHIP:DMG:
          [1646011311.207055][33190:33190] CHIP:DMG:         ],
          [1646011311.207085][33190:33190] CHIP:DMG:
          [1646011311.207108][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646011311.207133][33190:33190] CHIP:DMG: },
          [1646011311.207188][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o
          [1646011311.207295][33190:33190] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000
          [1646011311.207342][33190:33190] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to d4fdf4a5
          [1646011311.207377][33190:33190] CHIP:ZCL: OnIdentifyStop

          On DUT as a client side, verify that TH all-clusters-app sent success response
          [1658144495.036737][9002:9007] CHIP:DMG: },
          [1658144495.036829][9002:9007] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000 Status=0x0
          [1658144495.036893][9002:9007] CHIP:DMG: ICR moving to [AwaitingDe]
          [1658144495.036970][9002:9007] CHIP:EM: Sending Standalone Ack for MessageCounter:97481310 on exchange 7554i
      disabled: true

    - label:
          "DUT sends a TriggerEffect command to the Test Harness, with any
          supported EffectIdentifier argument and EffectVariant set to 0."
      PICS: I.C.C40.Tx
      verification: |
          ./chip-tool identify trigger-effect 0 0 1 1
          verify On TH(Reference app) receives the right invoke Request Message for the data sent in the above command
          [1646011549.034604][33190:33190] CHIP:EM: Received message of type 0x8 with protocolId (0, 1) and MessageCounter:3605482 on exchange 36067r
          [1646011549.034646][33190:33190] CHIP:EM: Handling via exchange: 36067r, Delegate: 0xaaaace1730c8
          [1646011549.034790][33190:33190] CHIP:DMG: InvokeRequestMessage =
          [1646011549.034821][33190:33190] CHIP:DMG: {
          [1646011549.034841][33190:33190] CHIP:DMG:         suppressResponse = false,
          [1646011549.034865][33190:33190] CHIP:DMG:         timedRequest = false,
          [1646011549.034891][33190:33190] CHIP:DMG:         InvokeRequests =
          [1646011549.034923][33190:33190] CHIP:DMG:         [
          [1646011549.034948][33190:33190] CHIP:DMG:                 CommandDataIB =
          [1646011549.034976][33190:33190] CHIP:DMG:                 {
          [1646011549.035001][33190:33190] CHIP:DMG:                         CommandPathIB =
          [1646011549.035033][33190:33190] CHIP:DMG:                         {
          [1646011549.035066][33190:33190] CHIP:DMG:                                 EndpointId = 0x1,
          [1646011549.035103][33190:33190] CHIP:DMG:                                 ClusterId = 0x3,
          [1646011549.035139][33190:33190] CHIP:DMG:                                 CommandId = 0x40,
          [1646011549.035173][33190:33190] CHIP:DMG:                         },
          [1646011549.035205][33190:33190] CHIP:DMG:
          [1646011549.035588][33190:33190] CHIP:DMG:                         CommandData =
          [1646011549.035632][33190:33190] CHIP:DMG:                         {
          [1646011549.035668][33190:33190] CHIP:DMG:                                 0x0 = 1,
          [1646011549.035706][33190:33190] CHIP:DMG:                                 0x1 = 0,
          [1646011549.035741][33190:33190] CHIP:DMG:                         },
          [1646011549.035773][33190:33190] CHIP:DMG:                 },
          [1646011549.035806][33190:33190] CHIP:DMG:
          [1646011549.035832][33190:33190] CHIP:DMG:         ],
          [1646011549.035866][33190:33190] CHIP:DMG:
          [1646011549.035890][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646011549.035915][33190:33190] CHIP:DMG: },
          [1646011549.035975][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o
          [1646011549.036017][33190:33190] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0040
          [1646011549.036052][33190:33190] CHIP:ZCL: RX identify:trigger effect 0x1 variant 0x0

          On DUT as a client side, verify that TH all-clusters-app sent success response
          [1658144515.570727][9010:9015] CHIP:DMG: },
          [1658144515.570854][9010:9015] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0040 Status=0x0
          [1658144515.570922][9010:9015] CHIP:DMG: ICR moving to [AwaitingDe]
          [1658144515.570999][9010:9015] CHIP:EM: Sending Standalone Ack for MessageCounter:226820812 on exchange 14189i
      disabled: true
