# 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.5.1. [TC-IDM-5.1] Timed Request Action from DUT to TH. [{DUT_Client}]

PICS:
    - MCORE.IDM.C

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

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

    - label:
          "DUT sends the Timed Request to the TH and then sends an Invoke
          Request Message to the TH after receiving the status response message
          from the TH. The Timed Request Message should contain a timeout value
          in milliseconds. (Example - 200 milliseconds)"
      PICS: MCORE.IDM.C.InvokeRequest
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool onoff on 1 1 --timedInteractionTimeoutMs 200

          On TH (On the reference app) Verify if DUT is responding with the below status response for the above command
          [1655797318.624018][7331:7331] CHIP:EM: Handling via exchange: 28067r, Delegate: 0xaaaad9aed418
          [1655797318.624129][7331:7331] CHIP:DMG: TimedRequestMessage =
          [1655797318.624185][7331:7331] CHIP:DMG: {
          [1655797318.624235][7331:7331] CHIP:DMG:         TimeoutMs = 0xc8,
          [1655797318.624289][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655797318.624339][7331:7331] CHIP:DMG: }
          [1655797318.624394][7331:7331] CHIP:DMG: Got Timed Request with timeout 200: handler 0xaaaaf9f93440 exchange 28067r

          [1655797318.626273][7331:7331] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaaaf9f93440 exchange 28067r
          [1655797318.626358][7331:7331] CHIP:DMG: InvokeRequestMessage =
          [1655797318.626411][7331:7331] CHIP:DMG: {
          [1655797318.626460][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655797318.626517][7331:7331] CHIP:DMG:         timedRequest = true,
          [1655797318.626569][7331:7331] CHIP:DMG:         InvokeRequests =
          [1655797318.626633][7331:7331] CHIP:DMG:         [
          [1655797318.626684][7331:7331] CHIP:DMG:                 CommandDataIB =
          [1655797318.626742][7331:7331] CHIP:DMG:                 {
          [1655797318.626796][7331:7331] CHIP:DMG:                         CommandPathIB =
          [1655797318.626866][7331:7331] CHIP:DMG:                         {
          [1655797318.626934][7331:7331] CHIP:DMG:                                 EndpointId = 0x1,
          [1655797318.627002][7331:7331] CHIP:DMG:                                 ClusterId = 0x6,
          [1655797318.627037][7331:7331] CHIP:DMG:                                 CommandId = 0x1,
          [1655797318.627070][7331:7331] CHIP:DMG:                         },
          [1655797318.627148][7331:7331] CHIP:DMG:
          [1655797318.627179][7331:7331] CHIP:DMG:                         CommandFields =
          [1655797318.627209][7331:7331] CHIP:DMG:                         {
          [1655797318.627243][7331:7331] CHIP:DMG:                         },
          [1655797318.627274][7331:7331] CHIP:DMG:                 },
          [1655797318.627306][7331:7331] CHIP:DMG:
          [1655797318.627330][7331:7331] CHIP:DMG:         ],
          [1655797318.627359][7331:7331] CHIP:DMG:
          [1655797318.627383][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655797318.627406][7331:7331] CHIP:DMG: },
          [1655797318.627467][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o


          If the DUT has to provision to verify the logs,  verify that TH all-clusters-app sent Subscription report with unic subscriptionID
          [1657886182.184612][3396:3401] CHIP:DMG: StatusResponseMessage =
          [1657886182.184642][3396:3401] CHIP:DMG: {
          [1657886182.184667][3396:3401] CHIP:DMG:         Status = 0x00 (SUCCESS),
          [1657886182.184693][3396:3401] CHIP:DMG:         InteractionModelRevision = 1
          [1657886182.184716][3396:3401] CHIP:DMG: }
          [1657886182.184742][3396:3401] CHIP:IM: Received status response, status is 0x00 (SUCCESS)


          61453140 from RetransTable on exchange 17901i
          [1657886182.190976][3396:3401] CHIP:DMG: ICR moving to [ResponseRe]
          [1657886182.191027][3396:3401] CHIP:DMG: InvokeResponseMessage =
          [1657886182.191052][3396:3401] CHIP:DMG: {
          [1657886182.191076][3396:3401] CHIP:DMG:         suppressResponse = false,
          [1657886182.191101][3396:3401] CHIP:DMG:         InvokeResponseIBs =
          [1657886182.191132][3396:3401] CHIP:DMG:         [
          [1657886182.191157][3396:3401] CHIP:DMG:                 InvokeResponseIB =
          [1657886182.191190][3396:3401] CHIP:DMG:                 {
          [1657886182.191216][3396:3401] CHIP:DMG:                         CommandStatusIB =
          [1657886182.191253][3396:3401] CHIP:DMG:                         {
          [1657886182.191286][3396:3401] CHIP:DMG:                                 CommandPathIB =
          [1657886182.191325][3396:3401] CHIP:DMG:                                 {
          [1657886182.191365][3396:3401] CHIP:DMG:                                         EndpointId = 0x1,
          [1657886182.191400][3396:3401] CHIP:DMG:                                         ClusterId = 0x6,
          [1657886182.191439][3396:3401] CHIP:DMG:                                         CommandId = 0x1,
          [1657886182.191472][3396:3401] CHIP:DMG:                                 },
          [1657886182.191510][3396:3401] CHIP:DMG:
          [1657886182.191541][3396:3401] CHIP:DMG:                                 StatusIB =
          [1657886182.191575][3396:3401] CHIP:DMG:                                 {
          [1657886182.191613][3396:3401] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1657886182.191649][3396:3401] CHIP:DMG:                                 },
          [1657886182.191683][3396:3401] CHIP:DMG:
          [1657886182.191712][3396:3401] CHIP:DMG:                         },
          [1657886182.191746][3396:3401] CHIP:DMG:
          [1657886182.191772][3396:3401] CHIP:DMG:                 },
          [1657886182.191802][3396:3401] CHIP:DMG:
          [1657886182.191826][3396:3401] CHIP:DMG:         ],
          [1657886182.191856][3396:3401] CHIP:DMG:
          [1657886182.191880][3396:3401] CHIP:DMG:         InteractionModelRevision = 1
          [1657886182.191903][3396:3401] CHIP:DMG: },
          [1657886182.191963][3396:3401] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0
      disabled: true

    - label:
          "DUT sends the Timed Request to the TH and then sends a
          WriteRequestMessage to the TH after receiving the status response
          message from the TH. The Timed Request Message should contain a
          timeout value in milliseconds. (Example - 200 milliseconds)"
      PICS: MCORE.IDM.C.WriteRequest
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool onoff write  on-time 2 1 1 --timedInteractionTimeoutMs 200

          On TH (On the reference app) Verify if DUT is responding with the below status response for the above command

          [1657459639.597900][11525:11525] CHIP:EM: Handling via exchange: 17116r, Delegate: 0xaaaae00c1430
          [1657459639.598014][11525:11525] CHIP:DMG: TimedRequestMessage =
          [1657459639.598055][11525:11525] CHIP:DMG: {
          [1657459639.598091][11525:11525] CHIP:DMG:      TimeoutMs = 0xc8,
          [1657459639.598147][11525:11525] CHIP:DMG:      InteractionModelRevision = 1
          [1657459639.598174][11525:11525] CHIP:DMG: }
          [1657459639.598204][11525:11525] CHIP:DMG: Got Timed Request with timeout 200: handler 0xaaab1651bac0 exchange 17116r
          [1657459639.598282][11525:11525] CHIP:EM: Piggybacking Ack for MessageCounter:161619532 on exchange: 17116r

          [1657459639.599816][11525:11525] CHIP:IM: Received Write request
          [1657459639.599844][11525:11525] CHIP:DMG: IM WH moving to [Initialized]
          [1657459639.599908][11525:11525] CHIP:DMG: WriteRequestMessage =
          [1657459639.599942][11525:11525] CHIP:DMG: {
          [1657459639.599973][11525:11525] CHIP:DMG:      suppressResponse = false,
          [1657459639.600009][11525:11525] CHIP:DMG:      timedRequest = true,
          [1657459639.600041][11525:11525] CHIP:DMG:      AttributeDataIBs =
          [1657459639.600081][11525:11525] CHIP:DMG:      [
          [1657459639.600114][11525:11525] CHIP:DMG:              AttributeDataIB =
          [1657459639.600151][11525:11525] CHIP:DMG:              {
          [1657459639.600185][11525:11525] CHIP:DMG:                      AttributePathIB =
          [1657459639.600231][11525:11525] CHIP:DMG:                      {
          [1657459639.600273][11525:11525] CHIP:DMG:                              Endpoint = 0x1,
          [1657459639.600323][11525:11525] CHIP:DMG:                              Cluster = 0x6,
          [1657459639.600368][11525:11525] CHIP:DMG:                              Attribute = 0x0000_4001,
          [1657459639.600409][11525:11525] CHIP:DMG:                      }
          [1657459639.600452][11525:11525] CHIP:DMG:
          [1657459639.600497][11525:11525] CHIP:DMG:                      Data = 2,
          [1657459639.600535][11525:11525] CHIP:DMG:              },
          [1657459639.600578][11525:11525] CHIP:DMG:
          [1657459639.600610][11525:11525] CHIP:DMG:      ],
          [1657459639.600648][11525:11525] CHIP:DMG:
          [1657459639.600681][11525:11525] CHIP:DMG:      moreChunkedMessages = false,
          [1657459639.600715][11525:11525] CHIP:DMG:      InteractionModelRevision = 1
          [1657459639.600746][11525:11525] CHIP:DMG: },
          [1657459639.600842][11525:11525] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o
          [1657459639.600888][11525:11525] CHIP:DMG: AccessControl: allowed
          [1657459639.600936][11525:11525] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to 1979c48

          If the DUT has to provision to verify the logs,  verify that TH all-clusters-app sent Subscription report with unic subscriptionID
          [1657886272.645704][3404:3409] CHIP:DMG: StatusResponseMessage =
          [1657886272.645751][3404:3409] CHIP:DMG: {
          [1657886272.645792][3404:3409] CHIP:DMG:         Status = 0x00 (SUCCESS),
          [1657886272.645839][3404:3409] CHIP:DMG:         InteractionModelRevision = 1
          [1657886272.645878][3404:3409] CHIP:DMG: }
          [1657886272.645918][3404:3409] CHIP:IM: Received status response, status is 0x00 (SUCCESS)

          [1657886272.648220][3404:3409] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1657886272.648285][3404:3409] CHIP:DMG: WriteResponseMessage =
          [1657886272.648326][3404:3409] CHIP:DMG: {
          [1657886272.648361][3404:3409] CHIP:DMG:         AttributeStatusIBs =
          [1657886272.648410][3404:3409] CHIP:DMG:         [
          [1657886272.648450][3404:3409] CHIP:DMG:                 AttributeStatusIB =
          [1657886272.648494][3404:3409] CHIP:DMG:                 {
          [1657886272.648535][3404:3409] CHIP:DMG:                         AttributePathIB =
          [1657886272.648593][3404:3409] CHIP:DMG:                         {
          [1657886272.648644][3404:3409] CHIP:DMG:                                 Endpoint = 0x1,
          [1657886272.648698][3404:3409] CHIP:DMG:                                 Cluster = 0x6,
          [1657886272.648752][3404:3409] CHIP:DMG:                                 Attribute = 0x0000_4001,
          [1657886272.648803][3404:3409] CHIP:DMG:                         }
          [1657886272.648860][3404:3409] CHIP:DMG:
          [1657886272.648910][3404:3409] CHIP:DMG:                         StatusIB =
          [1657886272.648959][3404:3409] CHIP:DMG:                         {
          [1657886272.649011][3404:3409] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657886272.649067][3404:3409] CHIP:DMG:                         },
          [1657886272.649115][3404:3409] CHIP:DMG:
          [1657886272.649161][3404:3409] CHIP:DMG:                 },
          [1657886272.649212][3404:3409] CHIP:DMG:
          [1657886272.649250][3404:3409] CHIP:DMG:         ],
          [1657886272.649283][3404:3409] CHIP:DMG:
          [1657886272.649308][3404:3409] CHIP:DMG:         InteractionModelRevision = 1
          [1657886272.649333][3404:3409] CHIP:DMG: }
          [1657886272.649415][3404:3409] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657886272.649481][3404:3409] CHIP:EM: Sending Standalone Ack for MessageCounter:137181137 on exchange 234i
      disabled: true

    - label:
          "DUT sends the Timed Request to the TH The Timed Request Message
          should contain a timeout value in milliseconds. (Example - 200
          milliseconds) Force the TH to not send a response back to the DUT for
          the received timed request."
      PICS: MCORE.IDM.C.WriteRequest || MCORE.IDM.C.InvokeRequest
      verification: |
          Mark this as not testable /NA. Out of Scope for V1.0
      disabled: true
