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

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

          on TH(all-cluster-app) verify the ReadRequestMessage

          1650880412.037722][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880412.037749][15013:15013] CHIP:DMG: {
          [1650880412.037772][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880412.037799][15013:15013] CHIP:DMG:         [
          [1650880412.037823][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880412.037876][15013:15013] CHIP:DMG:                 {
          [1650880412.037908][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880412.037938][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880412.037984][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650880412.038023][15013:15013] CHIP:DMG:                 }
          [1650880412.038055][15013:15013] CHIP:DMG:
          [1650880412.038081][15013:15013] CHIP:DMG:         ],
          [1650880412.038110][15013:15013] CHIP:DMG:
          [1650880412.038137][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880412.038162][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880412.038186][15013:15013] CHIP:DMG: },
          [1650880412.038259][15013:15013] CHIP:DMG: IM RH moving to [Generatin


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

          on TH(all-cluster-app) verify the ReadRequestMessage

          [1650880462.518114][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880462.518149][15013:15013] CHIP:DMG: {
          [1650880462.518176][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880462.518209][15013:15013] CHIP:DMG:         [
          [1650880462.518239][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880462.518283][15013:15013] CHIP:DMG:                 {
          [1650880462.518321][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880462.518365][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880462.518405][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1650880462.518446][15013:15013] CHIP:DMG:                 }
          [1650880462.518483][15013:15013] CHIP:DMG:
          [1650880462.518557][15013:15013] CHIP:DMG:         ],
          [1650880462.518596][15013:15013] CHIP:DMG:
          [1650880462.518630][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880462.518662][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880462.518690][15013:15013] CHIP:DMG: },


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

          on TH(all-cluster-app) verify the ReadRequestMessage

          [1650880507.409653][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880507.409703][15013:15013] CHIP:DMG: {
          [1650880507.409727][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880507.409753][15013:15013] CHIP:DMG:         [
          [1650880507.409778][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880507.409809][15013:15013] CHIP:DMG:                 {
          [1650880507.409839][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880507.409874][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880507.409907][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650880507.409936][15013:15013] CHIP:DMG:                 }
          [1650880507.409966][15013:15013] CHIP:DMG:
          [1650880507.409992][15013:15013] CHIP:DMG:         ],
          [1650880507.410021][15013:15013] CHIP:DMG:
          [1650880507.410048][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880507.410073][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880507.410097][15013:15013] CHIP:DMG: },
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          On Reference app  verify TH receives the read command and knows this attribute for this cluster and provides a plausable value

          ./chip-tool temperaturemeasurement read tolerance  1 1

          on TH(all-cluster-app) verify the ReadRequestMessage

          [1658141616.808771][13946:13946] CHIP:IM: Received Read request
          [1658141616.808855][13946:13946] CHIP:DMG: ReadRequestMessage =
          [1658141616.808885][13946:13946] CHIP:DMG: {
          [1658141616.808909][13946:13946] CHIP:DMG:         AttributePathIBs =
          [1658141616.808942][13946:13946] CHIP:DMG:         [
          [1658141616.808969][13946:13946] CHIP:DMG:                 AttributePathIB =
          [1658141616.809001][13946:13946] CHIP:DMG:                 {
          [1658141616.809032][13946:13946] CHIP:DMG:                         Endpoint = 0x1,
          [1658141616.809068][13946:13946] CHIP:DMG:                         Cluster = 0x402,
          [1658141616.809104][13946:13946] CHIP:DMG:                         Attribute = 0x0000_0003,
          [1658141616.809138][13946:13946] CHIP:DMG:                 }
          [1658141616.809170][13946:13946] CHIP:DMG:
          [1658141616.809198][13946:13946] CHIP:DMG:         ],
          [1658141616.809230][13946:13946] CHIP:DMG:
          [1658141616.809259][13946:13946] CHIP:DMG:         isFabricFiltered = true,
          [1658141616.809288][13946:13946] CHIP:DMG:         InteractionModelRevision = 1
          [1658141616.809314][13946:13946] CHIP:DMG: },
          [1658141616.809417][13946:13946] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658141616.809511][13946:13946] 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: |
          There is no writable mandatory attibute for this cluster
      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: |
          There is no writable Optional attibute for this cluster
      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

           ./chip-tool temperaturemeasurement read measured-value 1 1
          on TH(all-clusters-minimal-app) verify the ReadRequestMessage
          1650880412.037722][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880412.037749][15013:15013] CHIP:DMG: {
          [1650880412.037772][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880412.037799][15013:15013] CHIP:DMG:         [
          [1650880412.037823][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880412.037876][15013:15013] CHIP:DMG:                 {
          [1650880412.037908][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880412.037938][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880412.037984][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650880412.038023][15013:15013] CHIP:DMG:                 }
          [1650880412.038055][15013:15013] CHIP:DMG:
          [1650880412.038081][15013:15013] CHIP:DMG:         ],
          [1650880412.038110][15013:15013] CHIP:DMG:
          [1650880412.038137][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880412.038162][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880412.038186][15013:15013] CHIP:DMG: },
          [1650880412.038259][15013:15013] CHIP:DMG: IM RH moving to [Generatin


          ./chip-tool temperaturemeasurement read max-measured-value 1 1
          on TH(all-clusters-minimal-app) verify the ReadRequestMessage
          [1650880462.518114][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880462.518149][15013:15013] CHIP:DMG: {
          [1650880462.518176][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880462.518209][15013:15013] CHIP:DMG:         [
          [1650880462.518239][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880462.518283][15013:15013] CHIP:DMG:                 {
          [1650880462.518321][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880462.518365][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880462.518405][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1650880462.518446][15013:15013] CHIP:DMG:                 }
          [1650880462.518483][15013:15013] CHIP:DMG:
          [1650880462.518557][15013:15013] CHIP:DMG:         ],
          [1650880462.518596][15013:15013] CHIP:DMG:
          [1650880462.518630][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880462.518662][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880462.518690][15013:15013] CHIP:DMG: },


          ./chip-tool temperaturemeasurement read min-measured-value 1 1
          on TH(all-clusters-minimal-app) verify the ReadRequestMessage
          [1650880507.409653][15013:15013] CHIP:DMG: ReadRequestMessage =
          [1650880507.409703][15013:15013] CHIP:DMG: {
          [1650880507.409727][15013:15013] CHIP:DMG:         AttributePathIBs =
          [1650880507.409753][15013:15013] CHIP:DMG:         [
          [1650880507.409778][15013:15013] CHIP:DMG:                 AttributePathIB =
          [1650880507.409809][15013:15013] CHIP:DMG:                 {
          [1650880507.409839][15013:15013] CHIP:DMG:                         Endpoint = 0x1,
          [1650880507.409874][15013:15013] CHIP:DMG:                         Cluster = 0x402,
          [1650880507.409907][15013:15013] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650880507.409936][15013:15013] CHIP:DMG:                 }
          [1650880507.409966][15013:15013] CHIP:DMG:
          [1650880507.409992][15013:15013] CHIP:DMG:         ],
          [1650880507.410021][15013:15013] CHIP:DMG:
          [1650880507.410048][15013:15013] CHIP:DMG:         isFabricFiltered = true,
          [1650880507.410073][15013:15013] CHIP:DMG:         InteractionModelRevision = 1
          [1650880507.410097][15013:15013] CHIP:DMG: },"
      disabled: true

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

          On DUT as a client side, verify that TH all-clusters-minimal-app sent  UNSUPPORTED_ATTRIBUTE response
           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: |
          There is no writable mandatory attibute for this cluster
      disabled: true
