# 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: 10.3.1. [TC-RH-3.1] Attributes with Client as DUT

PICS:
    - RH.C
    - RH.C.AM-READ
    - RH.C.AO-READ
    - RH.C.AM-WRITE
    - RH.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: |
          On TestHarnes (all-cluster-app) a received read of MeasuredValue (id 0) looks like this:



          ./chip-tool relativehumiditymeasurement read measured-value 1 1
          Verify in DUT as client side Log
          [1651147639.252032][2336:2336] CHIP:IM: Received Read request
          [1651147639.252086][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147639.252136][2336:2336] CHIP:DMG: {
          [1651147639.252159][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147639.252185][2336:2336] CHIP:DMG:         [
          [1651147639.252209][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147639.252278][2336:2336] CHIP:DMG:                 {
          [1651147639.252313][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147639.252346][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147639.252408][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1651147639.252437][2336:2336] CHIP:DMG:                 }
          [1651147639.252494][2336:2336] CHIP:DMG:
          [1651147639.252521][2336:2336] CHIP:DMG:         ],
          [1651147639.252576][2336:2336] CHIP:DMG:
          [1651147639.252602][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147639.252627][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147639.252651][2336:2336] CHIP:DMG: },
          [1651147639.252772][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147639.252925][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

           ./chip-tool relativehumiditymeasurement read min-measured-value 1 1
          Verify in DUT as client side Log
          1651147834.075387][2336:2336] CHIP:IM: Received Read request
          [1651147834.075454][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147834.075481][2336:2336] CHIP:DMG: {
          [1651147834.075502][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147834.075528][2336:2336] CHIP:DMG:         [
          [1651147834.075552][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147834.075579][2336:2336] CHIP:DMG:                 {
          [1651147834.075625][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147834.075662][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147834.075694][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1651147834.075734][2336:2336] CHIP:DMG:                 }
          [1651147834.075763][2336:2336] CHIP:DMG:
          [1651147834.075796][2336:2336] CHIP:DMG:         ],
          [1651147834.075825][2336:2336] CHIP:DMG:
          [1651147834.075863][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147834.075888][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147834.075920][2336:2336] CHIP:DMG: },
          [1651147834.076001][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147834.076111][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          ./chip-tool relativehumiditymeasurement read max-measured-value 1 1
          Verify in DUT as client side Log
          [1651147902.966904][2336:2336] CHIP:IM: Received Read request
          [1651147902.966980][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147902.967012][2336:2336] CHIP:DMG: {
          [1651147902.967033][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147902.967061][2336:2336] CHIP:DMG:         [
          [1651147902.967088][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147902.967177][2336:2336] CHIP:DMG:                 {
          [1651147902.967233][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147902.967280][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147902.967317][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1651147902.967360][2336:2336] CHIP:DMG:                 }
          [1651147902.967397][2336:2336] CHIP:DMG:
          [1651147902.967436][2336:2336] CHIP:DMG:         ],
          [1651147902.967479][2336:2336] CHIP:DMG:
          [1651147902.967510][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147902.967549][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147902.967577][2336:2336] CHIP:DMG: },
          [1651147902.967669][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147902.967790][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1651147902.967823][2336:2336] CHIP:DMG: <RE:Run> Cluster 405, Attribute 2 is dirty
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          ./chip-tool relativehumiditymeasurement read tolerance 1 1


          Verify in DUT as client side Log
          [1651148035.585189][2336:2336] CHIP:IM: Received Read request
          [1651148035.585247][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651148035.585276][2336:2336] CHIP:DMG: {
          [1651148035.585301][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651148035.585330][2336:2336] CHIP:DMG:         [
          [1651148035.585358][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651148035.585396][2336:2336] CHIP:DMG:                 {
          [1651148035.585431][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651148035.585470][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651148035.585507][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0003,
          [1651148035.585541][2336:2336] CHIP:DMG:                 }
          [1651148035.585577][2336:2336] CHIP:DMG:
          [1651148035.585610][2336:2336] CHIP:DMG:         ],
          [1651148035.585642][2336:2336] CHIP:DMG:
          [1651148035.585672][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651148035.585701][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651148035.585727][2336:2336] CHIP:DMG: },
          [1651148035.585807][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651148035.585899][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      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: |
          This cluster doesn"t have any writable attributes
      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: |
          This cluster doesn"t have any writable attributes
      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: |
          ./chip-tool relativehumiditymeasurement read attribute-list  1 1


          Verify in DUT as client side Log

          [1654247077216] [91776:4010112] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0405 Attribute 0x0000_FFFB DataVersion: 1294674518
          [1654247077217] [91776:4010112] CHIP: [TOO]   AttributeList: 8 entries
          [1654247077217] [91776:4010112] CHIP: [TOO]     [1]: 0
          [1654247077217] [91776:4010112] CHIP: [TOO]     [2]: 1
          [1654247077217] [91776:4010112] CHIP: [TOO]     [3]: 2
          [1654247077217] [91776:4010112] CHIP: [TOO]     [4]: 65528
          [1654247077217] [91776:4010112] CHIP: [TOO]     [5]: 65529
          [1654247077217] [91776:4010112] CHIP: [TOO]     [6]: 65531
          [1654247077217] [91776:4010112] CHIP: [TOO]     [7]: 65532
          [1654247077217] [91776:4010112] CHIP: [TOO]     [8]: 65533


          "On TestHarnes (all-cluster-app) a received read of MeasuredValue (id 0) looks like this:

          ./chip-tool relativehumiditymeasurement read measured-value 1 1

          Verify in DUT as client side Log

          [1651147639.252032][2336:2336] CHIP:IM: Received Read request

          [1651147639.252086][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147639.252136][2336:2336] CHIP:DMG: {
          [1651147639.252159][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147639.252185][2336:2336] CHIP:DMG:         [
          [1651147639.252209][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147639.252278][2336:2336] CHIP:DMG:                 {
          [1651147639.252313][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147639.252346][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147639.252408][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1651147639.252437][2336:2336] CHIP:DMG:                 }
          [1651147639.252494][2336:2336] CHIP:DMG:
          [1651147639.252521][2336:2336] CHIP:DMG:         ],
          [1651147639.252576][2336:2336] CHIP:DMG:
          [1651147639.252602][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147639.252627][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147639.252651][2336:2336] CHIP:DMG: },
          [1651147639.252772][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147639.252925][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

           ./chip-tool relativehumiditymeasurement read min-measured-value 1 1
          Verify in DUT as client side Log

          1651147834.075387][2336:2336] CHIP:IM: Received Read request

          [1651147834.075454][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147834.075481][2336:2336] CHIP:DMG: {
          [1651147834.075502][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147834.075528][2336:2336] CHIP:DMG:         [
          [1651147834.075552][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147834.075579][2336:2336] CHIP:DMG:                 {
          [1651147834.075625][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147834.075662][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147834.075694][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1651147834.075734][2336:2336] CHIP:DMG:                 }
          [1651147834.075763][2336:2336] CHIP:DMG:
          [1651147834.075796][2336:2336] CHIP:DMG:         ],
          [1651147834.075825][2336:2336] CHIP:DMG:
          [1651147834.075863][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147834.075888][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147834.075920][2336:2336] CHIP:DMG: },
          [1651147834.076001][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147834.076111][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          ./chip-tool relativehumiditymeasurement read max-measured-value 1 1
          Verify in DUT as client side Log

          [1651147902.966904][2336:2336] CHIP:IM: Received Read request
          [1651147902.966980][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651147902.967012][2336:2336] CHIP:DMG: {
          [1651147902.967033][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651147902.967061][2336:2336] CHIP:DMG:         [
          [1651147902.967088][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651147902.967177][2336:2336] CHIP:DMG:                 {
          [1651147902.967233][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651147902.967280][2336:2336] CHIP:DMG:                         Cluster = 0x405,
          [1651147902.967317][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1651147902.967360][2336:2336] CHIP:DMG:                 }
          [1651147902.967397][2336:2336] CHIP:DMG:
          [1651147902.967436][2336:2336] CHIP:DMG:         ],
          [1651147902.967479][2336:2336] CHIP:DMG:
          [1651147902.967510][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651147902.967549][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651147902.967577][2336:2336] CHIP:DMG: },
          [1651147902.967669][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651147902.967790][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1651147902.967823][2336:2336] CHIP:DMG: <RE:Run> Cluster 405, Attribute 2 is dirty"
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          verify on Reference app receives the right response for the data sent in the above commands

          ./chip-tool relativehumiditymeasurement read tolerance 1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      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: |
          This cluster doesn"t have any writable attributes
      disabled: true
