# 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

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: |
          verify on Reference app receives the right response for the data sent in the above commands

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

          Verify in TH all-clusters-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 in TH all-clusters-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 in TH all-clusters-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: |
          verify on Reference app receives the right response for the data sent in the above

           ./chip-tool pressuremeasurement read attribute-list  1 1

          Verify in TH all-clusters-app log

          [1654246805586] [91746:4008896] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFFB DataVersion: 2053900777
          [1654246805586] [91746:4008896] CHIP: [TOO]   AttributeList: 8 entries
          [1654246805586] [91746:4008896] CHIP: [TOO]     [1]: 0
          [1654246805586] [91746:4008896] CHIP: [TOO]     [2]: 1
          [1654246805586] [91746:4008896] CHIP: [TOO]     [3]: 2
          [1654246805586] [91746:4008896] CHIP: [TOO]     [4]: 65528
          [1654246805586] [91746:4008896] CHIP: [TOO]     [5]: 65529
          [1654246805586] [91746:4008896] CHIP: [TOO]     [6]: 65531
          [1654246805586] [91746:4008896] CHIP: [TOO]     [7]: 65532
          [1654246805586] [91746:4008896] CHIP: [TOO]     [8]: 65533


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

          Verify in TH all-clusters-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 in TH all-clusters-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 in TH all-clusters-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: |
          verify on Reference app receives the right response for the data sent in the above commands

          ./chip-tool pressuremeasurement read  tolerance 1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pressuremeasurement read scaled-value 1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pressuremeasurement read  min-scaled-value  1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pressuremeasurement read  max-scaled-value  1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pressuremeasurement read scaled-tolerance 1 1
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pressuremeasurement read scale 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
