# 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: |
          ./chip-tool relativehumiditymeasurement read measured-value 1 1

          verify the "measured-value response" on the TH (all-cluster-app) 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 the "min-measured-value response" on the TH (all-cluster-app) 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 the "max-measured-value response" on the TH (all-cluster-app) 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 the "tolerance response" on the TH (all-cluster-app) 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 the "attribute-list response" on the TH (all-cluster-minimal-app) log:

          [1659607458.517237][7312:7312] CHIP:IM: Received Read request
          [1659607458.517318][7312:7312] CHIP:DMG: ReadRequestMessage =
          [1659607458.517345][7312:7312] CHIP:DMG: {
          [1659607458.517367][7312:7312] CHIP:DMG:         AttributePathIBs =
          [1659607458.517392][7312:7312] CHIP:DMG:         [
          [1659607458.517415][7312:7312] CHIP:DMG:                 AttributePathIB =
          [1659607458.517443][7312:7312] CHIP:DMG:                 {
          [1659607458.517470][7312:7312] CHIP:DMG:                         Endpoint = 0x1,
          [1659607458.517506][7312:7312] CHIP:DMG:                         Cluster = 0x405,
          [1659607458.517536][7312:7312] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659607458.517564][7312:7312] CHIP:DMG:                 }
          [1659607458.517591][7312:7312] CHIP:DMG:
          [1659607458.517616][7312:7312] CHIP:DMG:         ],
          [1659607458.517643][7312:7312] CHIP:DMG:
          [1659607458.517670][7312:7312] CHIP:DMG:         isFabricFiltered = true,
          [1659607458.517695][7312:7312] CHIP:DMG:         InteractionModelRevision = 1
          [1659607458.517718][7312:7312] CHIP:DMG: },




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

          verify the "measured-value response" on the TH (all-cluster-minimal-app) 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 the "min-measured-value response" on the TH (all-cluster-minimal-app) 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 the "max-measured-value response" on the TH (all-cluster-minimal-app) 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: |
          TH all-clusters-minimal-app does not support optional attributes


          ./chip-tool relativehumiditymeasurement read tolerance 1 1
      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
