# 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.6.4. [TC-IDM-6.4] Events Subscribe Interaction from DUT to TH.
    [{DUT_Client}]

PICS:
    - MCORE.IDM.C.SubscribeRequest

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

tests:
    - label:
          "DUT sends Subscribe Request Message to the TH for a supported event."
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster.

          Please  run this test in chip tool interactive mode ./chip-tool interactive start

          basic subscribe-event start-up 10 100 1 0

          On TH (On the reference app), On reference app verify that  the subscription message received has the all fields which mentioned in expected outcome

          colId (0, 1) and MessageCounter:190733237 on exchange 33689r
          [1657455555.193832][11525:11525] CHIP:EM: Handling via exchange: 33689r, Delegate: 0xaaaae00c1430
          [1657455555.193912][11525:11525] CHIP:IM: Received Subscribe request
          [1657455555.194063][11525:11525] CHIP:IM: Deleting previous subscription from NodeId: 000000000001B669, FabricIndex: 1
          [1657455555.194186][11525:11525] CHIP:DMG: SubscribeRequestMessage =
          [1657455555.194252][11525:11525] CHIP:DMG: {
          [1657455555.194312][11525:11525] CHIP:DMG:      KeepSubscriptions = false,
          [1657455555.194395][11525:11525] CHIP:DMG:      MinIntervalFloorSeconds = 0xa,
          [1657455555.194461][11525:11525] CHIP:DMG:      MaxIntervalCeilingSeconds = 0x64,
          [1657455555.194522][11525:11525] CHIP:DMG:      EventPathIBs =
          [1657455555.194586][11525:11525] CHIP:DMG:      [
          [1657455555.194646][11525:11525] CHIP:DMG:              EventPath =
          [1657455555.194708][11525:11525] CHIP:DMG:              {
          [1657455555.194776][11525:11525] CHIP:DMG:                      Endpoint = 0x0,
          [1657455555.194853][11525:11525] CHIP:DMG:                      Cluster = 0x28,
          [1657455555.194931][11525:11525] CHIP:DMG:                      Event = 0x0,
          [1657455555.195002][11525:11525] CHIP:DMG:              },
          [1657455555.195075][11525:11525] CHIP:DMG:
          [1657455555.195135][11525:11525] CHIP:DMG:      ],
          [1657455555.195202][11525:11525] CHIP:DMG:
          [1657455555.195263][11525:11525] CHIP:DMG:      isFabricFiltered = true,
          [1657455555.195325][11525:11525] CHIP:DMG:      InteractionModelRevision = 1
          [1657455555.195382][11525:11525] CHIP:DMG: },
          [1657455555.195593][11525:11525] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 100s
          [1657455555.195766][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1657455555.195955][11525:11525] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          On DUT as a client side, verify that TH all-clusters-app sent  ReportDataMessage

          [1657886501.456822][3430:3435] CHIP:DMG: ReportDataMessage =
          [1657886501.456851][3430:3435] CHIP:DMG: {
          [1657886501.456886][3430:3435] CHIP:DMG:         SubscriptionId = 0xb746e9ed,
          [1657886501.456911][3430:3435] CHIP:DMG:         EventReportIBs =
          [1657886501.456944][3430:3435] CHIP:DMG:         [
          [1657886501.456979][3430:3435] CHIP:DMG:                 EventReportIB =
          [1657886501.457015][3430:3435] CHIP:DMG:                 {
          [1657886501.457049][3430:3435] CHIP:DMG:                         EventDataIB =
          [1657886501.457091][3430:3435] CHIP:DMG:                         {
          [1657886501.457118][3430:3435] CHIP:DMG:                                 EventPath =
          [1657886501.457162][3430:3435] CHIP:DMG:                                 {
          [1657886501.457199][3430:3435] CHIP:DMG:                                         Endpoint = 0x0,
          [1657886501.457245][3430:3435] CHIP:DMG:                                         Cluster = 0x28,
          [1657886501.457288][3430:3435] CHIP:DMG:                                         Event = 0x0,
          [1657886501.457329][3430:3435] CHIP:DMG:                                 },
          [1657886501.457365][3430:3435] CHIP:DMG:
          [1657886501.457404][3430:3435] CHIP:DMG:                                 EventNumber = 0x0,
          [1657886501.457437][3430:3435] CHIP:DMG:                                 PriorityLevel = 0x2,
          [1657886501.457479][3430:3435] CHIP:DMG:                                 SystemTimestamp = 0xa1de6f,
          [1657886501.457519][3430:3435] CHIP:DMG:                                 EventData =
          [1657886501.457584][3430:3435] CHIP:DMG:                                 {
          [1657886501.457632][3430:3435] CHIP:DMG:                                         0x0 = 1,
          [1657886501.457666][3430:3435] CHIP:DMG:                                 },
          [1657886501.457696][3430:3435] CHIP:DMG:                         },
          [1657886501.457738][3430:3435] CHIP:DMG:
          [1657886501.457766][3430:3435] CHIP:DMG:                 },
          [1657886501.457806][3430:3435] CHIP:DMG:
          [1657886501.457830][3430:3435] CHIP:DMG:         ],
          [1657886501.457873][3430:3435] CHIP:DMG:
          [1657886501.457897][3430:3435] CHIP:DMG:         InteractionModelRevision = 1
          [1657886501.457929][3430:3435] CHIP:DMG: }
          [1657886501.458091][3430:3435] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000
          [1657886501.458116][3430:3435] CHIP:TOO:          Event number: 0
          [1657886501.458139][3430:3435] CHIP:TOO:          Priority: Critical
          [1657886501.458160][3430:3435] CHIP:TOO:          Timestamp: 10608239
          [1657886501.458237][3430:3435] CHIP:TOO:   StartUp: {
          [1657886501.458284][3430:3435] CHIP:TOO:     SoftwareVersion: 1
          [1657886501.458309][3430:3435] CHIP:TOO:    }
          [1657886501.458358][3430:3435] CHIP:DMG: MoveToState ReadClient[0xffff6c0091f0]: Moving to [AwaitingSu]
          [1657886501.458420][3430:3435] CHIP:EM: Piggybacking Ack for MessageCounter:245754654 on exchange: 20326i
      disabled: true

    - label:
          "DUT sends Subscribe Request Message to the TH. TH sends Report Data
          message to DUT."
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster.

          Please  run this test in chip tool interactive mode ./chip-tool interactive start

          basic subscribe-event-by-id 0x000 20 400 1 0
          Verify DUT is responsds with  status response  for the data sent in the above command
          On TH (On the reference app)
          6 from Retrans Table on exchange 33690r
          [1657455691.695355][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11056066 from RetransTable on exchange 33690r
          [1657455691.695430][11525:11525] CHIP:DMG: StatusResponseMessage =
          [1657455691.695483][11525:11525] CHIP:DMG: {
          [1657455691.695510][11525:11525] CHIP:DMG:      Status = 0x00 (SUCCESS),
          [1657455691.695549][11525:11525] CHIP:DMG:      InteractionModelRevision = 1
          [1657455691.695574][11525:11525] CHIP:DMG: }
          [1657455691.695600][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS)
          [1657455691.695643][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 400 seconds

          On DUT as a client side, verify that TH all-clusters-app sent  ReportDataMessage

          [1657886532.588762][3430:3435] CHIP:DMG: }
          [1657886532.588882][3430:3435] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000
          [1657886532.588908][3430:3435] CHIP:TOO:          Event number: 0
          [1657886532.588930][3430:3435] CHIP:TOO:          Priority: Critical
          [1657886532.588952][3430:3435] CHIP:TOO:          Timestamp: 10608239
          [1657886532.588986][3430:3435] CHIP:TOO:   StartUp: {
          [1657886532.589013][3430:3435] CHIP:TOO:     SoftwareVersion: 1
          [1657886532.589036][3430:3435] CHIP:TOO:    }
          [1657886532.589085][3430:3435] CHIP:DMG: MoveToState ReadClient[0xffff6c0092e0]: Moving to [AwaitingSu]
          [1657886532.589143][3430:3435] CHIP:EM: Piggybacking Ack for MessageCounter:245754656 on exchange: 20327i
          [1657886532.589207][3430:3435] CHIP:IN: Prepared secure message 0xaaab13395548 to 0x0000000000000001 (1)  of type 0x1 and protocolId (0, 1) on exchange 20327i with MessageCounter:216322285.
          [1657886532.589245][3430:3435] CHIP:IN: Sending encrypted msg 0xaaab13395548 with MessageCounter:216322285 to 0x0000000000000001 (1) at monotonic time: 00000000008CF0C5 msec
          [1657886532.590633][3430:3435] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:245754657 on exchange 20327i
          [1657886532.590669][3430:3435] CHIP:EM: Found matching exchange: 20327i, Delegate: 0xffff6c0092e0
          [1657886532.590700][3430:3435] CHIP:EM: Rxd Ack; Removing MessageCounter:216322285 from Retrans Table on exchange 20327i
          [1657886532.590726][3430:3435] CHIP:EM: Removed CHIP MessageCounter:216322285 from RetransTable on exchange 20327i
          [1657886532.590772][3430:3435] CHIP:DMG: SubscribeResponseMessage =
          [1657886532.590811][3430:3435] CHIP:DMG: {
          [1657886532.590836][3430:3435] CHIP:DMG:         SubscriptionId = 0x84d07a37,
          [1657886532.590862][3430:3435] CHIP:DMG:         MaxInterval = 0x190,
          [1657886532.590887][3430:3435] CHIP:DMG:         InteractionModelRevision = 1
          [1657886532.590910][3430:3435] CHIP:DMG: }
          [1657886532.590935][3430:3435] CHIP:DMG: Subscription established with SubscriptionID = 0x84d07a37 MinInterval = 20s MaxInterval = 400s Peer = 01:0000000000000001
      disabled: true

    - label:
          "DUT sends Subscribe Request Message to the TH and TH does not respond
          with Report Data message to DUT."
      verification: |
          This is not testable in normal scenario, and needs to be tested as part of Unit test.
          https://github.com/CHIP-Specifications/chip-test-plans/issues/1885
      disabled: true

    - label:
          "DUT sends Subscribe Request Message to the TH. TH sends Report Data
          message to DUT. DUT sends Status Response Message to the TH. TH does
          not respond with Subscribe Response message to DUT."
      verification: |
          This is not testable in normal scenario, and needs to be tested as part of Unit test.
          https://github.com/CHIP-Specifications/chip-test-plans/issues/1885
      disabled: true

    - label:
          "With an active Event subscription from DUT to TH, TH sends Report
          Data message to DUT with an inactive SubscriptionId."
      verification: |
          This is not testable in normal scenario, and needs to be tested as part of Unit test.
          https://github.com/CHIP-Specifications/chip-test-plans/issues/1885
      disabled: true

    - label:
          "With an active Event subscription from DUT to TH, TH sends Report
          Data message to DUT after the maximum interval from the last Report
          Data."
      verification: |
          This is not testable in normal scenario, and needs to be tested as part of Unit test.
          https://github.com/CHIP-Specifications/chip-test-plans/issues/1885
      disabled: true
