# 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: 41.3.1. [TC-TSTAT-3.1] Attributes with client as DUT

PICS:
    - TSTAT.C
    - TSTAT.C.AM-READ
    - TSTAT.C.AO-READ
    - TSTAT.C.AM-WRITE
    - TSTAT.C.AO-WRITE

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

tests:
    - label:
          "DUT reads all supported mandatory attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          ./chip-tool thermostat read  local-temperature  1 1
          On TH(thermostat app), verify the read request

          [1652264555.303895][7099:7099] CHIP:IM: Received Read request
          [1652264555.303980][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652264555.304045][7099:7099] CHIP:DMG: {
          [1652264555.304085][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652264555.304131][7099:7099] CHIP:DMG:         [
          [1652264555.304200][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652264555.304259][7099:7099] CHIP:DMG:                 {
          [1652264555.304334][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652264555.304431][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652264555.304499][7099:7099] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1652264555.304566][7099:7099] CHIP:DMG:                 }
          [1652264555.304618][7099:7099] CHIP:DMG:
          [1652264555.304680][7099:7099] CHIP:DMG:         ],
          [1652264555.304733][7099:7099] CHIP:DMG:
          [1652264555.304798][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652264555.304846][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652264555.304906][7099:7099] CHIP:DMG: },


          ./chip-tool thermostat read  control-sequence-of-operation 1 1

          On TH(thermostat app), verify the read request

          [1652265275.022068][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652265275.022110][7099:7099] CHIP:DMG: {
          [1652265275.022145][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652265275.022187][7099:7099] CHIP:DMG:         [
          [1652265275.022226][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652265275.022277][7099:7099] CHIP:DMG:                 {
          [1652265275.022325][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652265275.022390][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652265275.022443][7099:7099] CHIP:DMG:                         Attribute = 0x0000_001B,
          [1652265275.022490][7099:7099] CHIP:DMG:                 }
          [1652265275.022536][7099:7099] CHIP:DMG:
          [1652265275.022583][7099:7099] CHIP:DMG:         ],
          [1652265275.022632][7099:7099] CHIP:DMG:
          [1652265275.022675][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652265275.022717][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265275.022756][7099:7099] CHIP:DMG: },

          ./chip-tool thermostat read   system-mode    1 1

          On TH(thermostat app), verify the read request
          [1652265332.311723][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652265332.311772][7099:7099] CHIP:DMG: {
          [1652265332.311812][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652265332.311866][7099:7099] CHIP:DMG:         [
          [1652265332.311915][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652265332.311971][7099:7099] CHIP:DMG:                 {
          [1652265332.312023][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652265332.312079][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652265332.312138][7099:7099] CHIP:DMG:                         Attribute = 0x0000_001C,
          [1652265332.312187][7099:7099] CHIP:DMG:                 }
          [1652265332.312238][7099:7099] CHIP:DMG:
          [1652265332.312290][7099:7099] CHIP:DMG:         ],
          [1652265332.312341][7099:7099] CHIP:DMG:
          [1652265332.312388][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652265332.312435][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265332.312477][7099:7099] CHIP:DMG: },
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          Most of optional attribute is not implemented in SDK


          https://github.com/project-chip/connectedhomeip/issues/15626
      disabled: true

    - label:
          "DUT writes a suitable value to all supported mandatory attributes on
          the TH one at a time in a manufacturer specific order"
      verification: |
          verify on Reference app receives the right Read Request Message for the data sent in the below commands


          ./chip-tool thermostat write system-mode 2 1 1
          On TH(thermostat app), verify the write request
          [1652265582.913625][7099:7099] CHIP:IM: Received Write request
          [1652265582.913672][7099:7099] CHIP:DMG: IM WH moving to [Initialized]
          [1652265582.913768][7099:7099] CHIP:DMG: WriteRequestMessage =
          [1652265582.913820][7099:7099] CHIP:DMG: {
          [1652265582.913954][7099:7099] CHIP:DMG:         suppressResponse = false,
          [1652265582.914074][7099:7099] CHIP:DMG:         timedRequest = false,
          [1652265582.914123][7099:7099] CHIP:DMG:         AttributeDataIBs =
          [1652265582.914212][7099:7099] CHIP:DMG:         [
          [1652265582.914280][7099:7099] CHIP:DMG:                 AttributeDataIB =
          [1652265582.914342][7099:7099] CHIP:DMG:                 {
          [1652265582.914404][7099:7099] CHIP:DMG:                         AttributePathIB =
          [1652265582.914482][7099:7099] CHIP:DMG:                         {
          [1652265582.914551][7099:7099] CHIP:DMG:                                 Endpoint = 0x1,
          [1652265582.914624][7099:7099] CHIP:DMG:                                 Cluster = 0x201,
          [1652265582.914700][7099:7099] CHIP:DMG:                                 Attribute = 0x0000_001C,
          [1652265582.914772][7099:7099] CHIP:DMG:                         }
          [1652265582.914847][7099:7099] CHIP:DMG:
          [1652265582.914915][7099:7099] CHIP:DMG:                                 Data = 2,
          [1652265582.914980][7099:7099] CHIP:DMG:                 },
          [1652265582.915093][7099:7099] CHIP:DMG:
          [1652265582.915278][7099:7099] CHIP:DMG:         ],
          [1652265582.915348][7099:7099] CHIP:DMG:
          [1652265582.915400][7099:7099] CHIP:DMG:         moreChunkedMessages = false,
          [1652265582.915460][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265582.915509][7099:7099] CHIP:DMG: },



           ./chip-tool thermostat write  control-sequence-of-operation 1 1 1
          On TH(thermostat app), verify the write request
          [1652265678.578137][7099:7099] CHIP:IM: Received Write request
          [1652265678.578192][7099:7099] CHIP:DMG: IM WH moving to [Initialized]
          [1652265678.578284][7099:7099] CHIP:DMG: WriteRequestMessage =
          [1652265678.578343][7099:7099] CHIP:DMG: {
          [1652265678.578378][7099:7099] CHIP:DMG:         suppressResponse = false,
          [1652265678.578419][7099:7099] CHIP:DMG:         timedRequest = false,
          [1652265678.578466][7099:7099] CHIP:DMG:         AttributeDataIBs =
          [1652265678.578521][7099:7099] CHIP:DMG:         [
          [1652265678.578587][7099:7099] CHIP:DMG:                 AttributeDataIB =
          [1652265678.578672][7099:7099] CHIP:DMG:                 {
          [1652265678.578721][7099:7099] CHIP:DMG:                         AttributePathIB =
          [1652265678.578802][7099:7099] CHIP:DMG:                         {
          [1652265678.578860][7099:7099] CHIP:DMG:                                 Endpoint = 0x1,
          [1652265678.578938][7099:7099] CHIP:DMG:                                 Cluster = 0x201,
          [1652265678.579071][7099:7099] CHIP:DMG:                                 Attribute = 0x0000_001B,
          [1652265678.579134][7099:7099] CHIP:DMG:                         }
          [1652265678.579212][7099:7099] CHIP:DMG:
          [1652265678.579288][7099:7099] CHIP:DMG:                                 Data = 1,
          [1652265678.579347][7099:7099] CHIP:DMG:                 },
          [1652265678.579402][7099:7099] CHIP:DMG:
          [1652265678.579430][7099:7099] CHIP:DMG:         ],
          [1652265678.579461][7099:7099] CHIP:DMG:
          [1652265678.579567][7099:7099] CHIP:DMG:         moreChunkedMessages = false,
          [1652265678.579598][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265678.579624][7099:7099] CHIP:DMG: },
      disabled: true

    - label:
          "DUT writes a suitable value to all supported optional attributes on
          the TH one at a time in a manufacturer specific order"
      verification: |
          Verify by sending the optional attribute which is mentioned in spec

          Most of optional attribute is not implemented in SDK
      disabled: true

    - label:
          "Configure TH such that it implements mandatory and none of the
          optional attributes of the server-side of the cluster, and that it
          also reflects this in global attributes such as FeatureMap and
          AttributeList. Commission DUT to TH again"
      verification: |
          To verify all below steps use all-clusters-minimal-app
          verify on Reference app receives the right Read Request Message for the data sent in the below commands

          ./chip-tool thermostat read attribute-list 1 1
          On  TH(all-clusters-minimal-app) verify the read request
          [1657179340.726622][2249:2249] CHIP:IM: Received Read request
          [1657179340.726762][2249:2249] CHIP:DMG: ReadRequestMessage =
          [1657179340.726817][2249:2249] CHIP:DMG: {
          [1657179340.726863][2249:2249] CHIP:DMG:         AttributePathIBs =
          [1657179340.726918][2249:2249] CHIP:DMG:         [
          [1657179340.726968][2249:2249] CHIP:DMG:                 AttributePathIB =
          [1657179340.727024][2249:2249] CHIP:DMG:                 {
          [1657179340.727083][2249:2249] CHIP:DMG:                         Endpoint = 0x1,
          [1657179340.727252][2249:2249] CHIP:DMG:                         Cluster = 0x201,
          [1657179340.727330][2249:2249] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1657179340.727398][2249:2249] CHIP:DMG:                 }
          [1657179340.727461][2249:2249] CHIP:DMG:
          [1657179340.727520][2249:2249] CHIP:DMG:         ],
          [1657179340.727578][2249:2249] CHIP:DMG:
          [1657179340.727633][2249:2249] CHIP:DMG:         isFabricFiltered = true,
          [1657179340.727685][2249:2249] CHIP:DMG:         InteractionModelRevision = 1
          [1657179340.727734][2249:2249] CHIP:DMG: },
          [1657179340.727881][2249:2249] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1657179340.728028][2249:2249] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0



          ./chip-tool thermostat read  local-temperature  1 1
          On  TH(all-clusters-minimal-app) verify the read request
          [1652264555.303895][7099:7099] CHIP:IM: Received Read request
          [1652264555.303980][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652264555.304045][7099:7099] CHIP:DMG: {
          [1652264555.304085][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652264555.304131][7099:7099] CHIP:DMG:         [
          [1652264555.304200][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652264555.304259][7099:7099] CHIP:DMG:                 {
          [1652264555.304334][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652264555.304431][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652264555.304499][7099:7099] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1652264555.304566][7099:7099] CHIP:DMG:                 }
          [1652264555.304618][7099:7099] CHIP:DMG:
          [1652264555.304680][7099:7099] CHIP:DMG:         ],
          [1652264555.304733][7099:7099] CHIP:DMG:
          [1652264555.304798][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652264555.304846][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652264555.304906][7099:7099] CHIP:DMG: },


          ./chip-tool thermostat read  control-sequence-of-operation 1 1
          On  TH(all-clusters-minimal-app) verify the read request
          [1652265275.022068][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652265275.022110][7099:7099] CHIP:DMG: {
          [1652265275.022145][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652265275.022187][7099:7099] CHIP:DMG:         [
          [1652265275.022226][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652265275.022277][7099:7099] CHIP:DMG:                 {
          [1652265275.022325][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652265275.022390][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652265275.022443][7099:7099] CHIP:DMG:                         Attribute = 0x0000_001B,
          [1652265275.022490][7099:7099] CHIP:DMG:                 }
          [1652265275.022536][7099:7099] CHIP:DMG:
          [1652265275.022583][7099:7099] CHIP:DMG:         ],
          [1652265275.022632][7099:7099] CHIP:DMG:
          [1652265275.022675][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652265275.022717][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265275.022756][7099:7099] CHIP:DMG: },

          ./chip-tool thermostat read   system-mode    1 1
          On  TH(all-clusters-minimal-app) verify the read request
          [1652265332.311723][7099:7099] CHIP:DMG: ReadRequestMessage =
          [1652265332.311772][7099:7099] CHIP:DMG: {
          [1652265332.311812][7099:7099] CHIP:DMG:         AttributePathIBs =
          [1652265332.311866][7099:7099] CHIP:DMG:         [
          [1652265332.311915][7099:7099] CHIP:DMG:                 AttributePathIB =
          [1652265332.311971][7099:7099] CHIP:DMG:                 {
          [1652265332.312023][7099:7099] CHIP:DMG:                         Endpoint = 0x1,
          [1652265332.312079][7099:7099] CHIP:DMG:                         Cluster = 0x201,
          [1652265332.312138][7099:7099] CHIP:DMG:                         Attribute = 0x0000_001C,
          [1652265332.312187][7099:7099] CHIP:DMG:                 }
          [1652265332.312238][7099:7099] CHIP:DMG:
          [1652265332.312290][7099:7099] CHIP:DMG:         ],
          [1652265332.312341][7099:7099] CHIP:DMG:
          [1652265332.312388][7099:7099] CHIP:DMG:         isFabricFiltered = true,
          [1652265332.312435][7099:7099] CHIP:DMG:         InteractionModelRevision = 1
          [1652265332.312477][7099:7099] CHIP:DMG: },"
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          Verify by sending the optional attribute which is mentioned in spec

          Most of optional attribute is not implemented in SDK
      disabled: true

    - label:
          "DUT writes a suitable value to all supported optional attributes on
          the TH one at a time in a manufacturer specific order"
      verification: |
          Verify by sending the optional attribute which is mentioned in spec

          Most of optional attribute is not implemented in SDK
      disabled: true
