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

PICS:
    - PRS.C
    - PRS.C.AM-READ
    - PRS.C.AO-READ
    - PRS.C.AM-WRITE
    - PRS.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 pressuremeasurement read measured-value 1 1

          verify the " measured-value response" on the TH (all-cluster-app) log:

          [1653992317.047323][2347:2347] CHIP:IM: Received Read request
          [1653992317.047382][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992317.047457][2347:2347] CHIP:DMG: {
          [1653992317.047480][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992317.047507][2347:2347] CHIP:DMG:         [
          [1653992317.047531][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992317.047563][2347:2347] CHIP:DMG:                 {
          [1653992317.047592][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992317.047657][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992317.047695][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1653992317.047725][2347:2347] CHIP:DMG:                 }
          [1653992317.047774][2347:2347] CHIP:DMG:
          [1653992317.047803][2347:2347] CHIP:DMG:         ],
          [1653992317.047831][2347:2347] CHIP:DMG:
          [1653992317.047859][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992317.047884][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992317.047908][2347:2347] CHIP:DMG: },
          [1653992317.047995][2347:2347] CHIP:DMG: IM RH moving to [GeneratingReports]

          ./chip-tool pressuremeasurement read  min-measured-value 1 1

          verify the " min-measured-value response" on the TH (all-cluster-app) log:

          [1653992385.759474][2347:2347] CHIP:IM: Received Read request
          [1653992385.759533][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992385.759561][2347:2347] CHIP:DMG: {
          [1653992385.759584][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992385.759618][2347:2347] CHIP:DMG:         [
          [1653992385.759647][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992385.759678][2347:2347] CHIP:DMG:                 {
          [1653992385.759745][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992385.759781][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992385.759859][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1653992385.759918][2347:2347] CHIP:DMG:                 }
          [1653992385.759971][2347:2347] CHIP:DMG:
          [1653992385.760000][2347:2347] CHIP:DMG:         ],
          [1653992385.760049][2347:2347] CHIP:DMG:
          [1653992385.760100][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992385.760125][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992385.760168][2347:2347] CHIP:DMG: }


          ./chip-tool pressuremeasurement read  max-measured-value 1 1

          verify the " max-measured-value response" on the TH (all-cluster-app) log:

          [1653992415.580348][2347:2347] CHIP:IM: Received Read request
          [1653992415.580414][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992415.580442][2347:2347] CHIP:DMG: {
          [1653992415.580473][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992415.580501][2347:2347] CHIP:DMG:         [
          [1653992415.580534][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992415.580563][2347:2347] CHIP:DMG:                 {
          [1653992415.580602][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992415.580674][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992415.580713][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1653992415.580746][2347:2347] CHIP:DMG:                 }
          [1653992415.580786][2347:2347] CHIP:DMG:
          [1653992415.580812][2347:2347] CHIP:DMG:         ],
          [1653992415.580852][2347:2347] CHIP:DMG:
          [1653992415.580879][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992415.580913][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992415.580936][2347:2347] CHIP:DMG: }
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          OPTIONAL ATTRIBUTES ARE NOT IMPLEMENTED IN SDK

          ./chip-tool pressuremeasurement read  tolerance 1 1
          ./chip-tool pressuremeasurement read scaled-value 1 1
          ./chip-tool pressuremeasurement read  min-scaled-value  1 1
          ./chip-tool pressuremeasurement read  max-scaled-value  1 1
          ./chip-tool pressuremeasurement read scaled-tolerance 1 1
          ./chip-tool pressuremeasurement read scale 1 1
      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 pressuremeasurement read attribute-list  1 1

          verify the " attribute-list response" on the TH (all-cluster-minimal-app) log:

          [1659606175.282588][7312:7312] CHIP:EM: Handling via exchange: 12368r, Delegate: 0xaaaaad2c4f68
          [1659606175.282635][7312:7312] CHIP:IM: Received Read request
          [1659606175.282718][7312:7312] CHIP:DMG: ReadRequestMessage =
          [1659606175.282746][7312:7312] CHIP:DMG: {
          [1659606175.282768][7312:7312] CHIP:DMG:         AttributePathIBs =
          [1659606175.282794][7312:7312] CHIP:DMG:         [
          [1659606175.282818][7312:7312] CHIP:DMG:                 AttributePathIB =
          [1659606175.282846][7312:7312] CHIP:DMG:                 {
          [1659606175.282874][7312:7312] CHIP:DMG:                         Endpoint = 0x1,
          [1659606175.282910][7312:7312] CHIP:DMG:                         Cluster = 0x403,
          [1659606175.282946][7312:7312] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659606175.282975][7312:7312] CHIP:DMG:                 }
          [1659606175.283004][7312:7312] CHIP:DMG:
          [1659606175.283029][7312:7312] CHIP:DMG:         ],
          [1659606175.283056][7312:7312] CHIP:DMG:
          [1659606175.283083][7312:7312] CHIP:DMG:         isFabricFiltered = true,
          [1659606175.283108][7312:7312] CHIP:DMG:         InteractionModelRevision = 1
          [1659606175.283132][7312:7312] CHIP:DMG: },
          [1659606175.283211][7312:7312] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659606175.283312][7312:7312] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1659606175.283343][7312:7312] CHIP:DMG: <RE:Run> Cluster 403, Attribute fffb is dirty
          [1659606175.283364][7312:7312] CHIP:DMG: Reading attribute: Cluster=0x0000_0403 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0)




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

          verify the " measured-value response" on the TH (all-cluster-minimal-app) log:

          [1653992317.047323][2347:2347] CHIP:IM: Received Read request
          [1653992317.047382][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992317.047457][2347:2347] CHIP:DMG: {
          [1653992317.047480][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992317.047507][2347:2347] CHIP:DMG:         [
          [1653992317.047531][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992317.047563][2347:2347] CHIP:DMG:                 {
          [1653992317.047592][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992317.047657][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992317.047695][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1653992317.047725][2347:2347] CHIP:DMG:                 }
          [1653992317.047774][2347:2347] CHIP:DMG:
          [1653992317.047803][2347:2347] CHIP:DMG:         ],
          [1653992317.047831][2347:2347] CHIP:DMG:
          [1653992317.047859][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992317.047884][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992317.047908][2347:2347] CHIP:DMG: },
          [1653992317.047995][2347:2347] CHIP:DMG: IM RH moving to [GeneratingReports]

          ./chip-tool pressuremeasurement read  min-measured-value 1 1

          verify the " min-measured-value response" on the TH (all-cluster-minimal-app) log:

          [1653992385.759474][2347:2347] CHIP:IM: Received Read request
          [1653992385.759533][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992385.759561][2347:2347] CHIP:DMG: {
          [1653992385.759584][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992385.759618][2347:2347] CHIP:DMG:         [
          [1653992385.759647][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992385.759678][2347:2347] CHIP:DMG:                 {
          [1653992385.759745][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992385.759781][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992385.759859][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1653992385.759918][2347:2347] CHIP:DMG:                 }
          [1653992385.759971][2347:2347] CHIP:DMG:
          [1653992385.760000][2347:2347] CHIP:DMG:         ],
          [1653992385.760049][2347:2347] CHIP:DMG:
          [1653992385.760100][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992385.760125][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992385.760168][2347:2347] CHIP:DMG: },


          ./chip-tool pressuremeasurement read  max-measured-value 1 1

          verify the " max-measured-value response" on the TH (all-cluster-minimal-app) log:

          [1653992415.580348][2347:2347] CHIP:IM: Received Read request
          [1653992415.580414][2347:2347] CHIP:DMG: ReadRequestMessage =
          [1653992415.580442][2347:2347] CHIP:DMG: {
          [1653992415.580473][2347:2347] CHIP:DMG:         AttributePathIBs =
          [1653992415.580501][2347:2347] CHIP:DMG:         [
          [1653992415.580534][2347:2347] CHIP:DMG:                 AttributePathIB =
          [1653992415.580563][2347:2347] CHIP:DMG:                 {
          [1653992415.580602][2347:2347] CHIP:DMG:                         Endpoint = 0x1,
          [1653992415.580674][2347:2347] CHIP:DMG:                         Cluster = 0x403,
          [1653992415.580713][2347:2347] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1653992415.580746][2347:2347] CHIP:DMG:                 }
          [1653992415.580786][2347:2347] CHIP:DMG:
          [1653992415.580812][2347:2347] CHIP:DMG:         ],
          [1653992415.580852][2347:2347] CHIP:DMG:
          [1653992415.580879][2347:2347] CHIP:DMG:         isFabricFiltered = true,
          [1653992415.580913][2347:2347] CHIP:DMG:         InteractionModelRevision = 1
          [1653992415.580936][2347:2347] CHIP:DMG: },"
      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 pressuremeasurement read  tolerance 1 1
          ./chip-tool pressuremeasurement read scaled-value 1 1
          ./chip-tool pressuremeasurement read  min-scaled-value  1 1
          ./chip-tool pressuremeasurement read  max-scaled-value  1 1
          ./chip-tool pressuremeasurement read scaled-tolerance 1 1
          ./chip-tool pressuremeasurement read scale 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
