# 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: 59.3.1. [TC-I-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: |
          ./chip-tool identify read identify-time 1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1648015371.159715][2506:2506] CHIP:IM: Received Read request
          [1648015371.159805][2506:2506] CHIP:DMG: ReadRequestMessage =
          [1648015371.159840][2506:2506] CHIP:DMG: {
          [1648015371.159866][2506:2506] CHIP:DMG:         AttributePathIBs =
          [1648015371.159903][2506:2506] CHIP:DMG:         [
          [1648015371.159932][2506:2506] CHIP:DMG:                 AttributePathIB =
          [1648015371.159968][2506:2506] CHIP:DMG:                 {
          [1648015371.160006][2506:2506] CHIP:DMG:                         Endpoint = 0x1,
          [1648015371.160047][2506:2506] CHIP:DMG:                         Cluster = 0x3,
          [1648015371.160087][2506:2506] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1648015371.160127][2506:2506] CHIP:DMG:                 }
          [1648015371.160164][2506:2506] CHIP:DMG:
          [1648015371.160201][2506:2506] CHIP:DMG:         ],
          [1648015371.160238][2506:2506] CHIP:DMG:
          [1648015371.160270][2506:2506] CHIP:DMG:         isFabricFiltered = true,
          [1648015371.160300][2506:2506] CHIP:DMG:         InteractionModelRevision = 1
          [1648015371.160324][2506:2506] CHIP:DMG: },

          On DUT as a client side, verify that TH all-clusters-app sent identify time attribute value
          [1658144129.651688][8964:8969] CHIP:DMG: }
          [1658144129.651919][8964:8969] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 774797081
          [1658144129.652113][8964:8969] CHIP:TOO:   identify time: 0
          [1658144129.652237][8964:8969] CHIP:EM: Sending Standalone Ack for MessageCounter:17091478 on exchange 42014i


           ./chip-tool identify  read   identify-type 1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1648015519.017225][2506:2506] CHIP:IM: Received Read request
          [1648015519.017293][2506:2506] CHIP:DMG: ReadRequestMessage =
          [1648015519.017332][2506:2506] CHIP:DMG: {
          [1648015519.017363][2506:2506] CHIP:DMG:         AttributePathIBs =
          [1648015519.017403][2506:2506] CHIP:DMG:         [
          [1648015519.017437][2506:2506] CHIP:DMG:                 AttributePathIB =
          [1648015519.017577][2506:2506] CHIP:DMG:                 {
          [1648015519.017624][2506:2506] CHIP:DMG:                         Endpoint = 0x1,
          [1648015519.017673][2506:2506] CHIP:DMG:                         Cluster = 0x3,
          [1648015519.017721][2506:2506] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1648015519.017768][2506:2506] CHIP:DMG:                 }
          [1648015519.017813][2506:2506] CHIP:DMG:
          [1648015519.017853][2506:2506] CHIP:DMG:         ],
          [1648015519.017894][2506:2506] CHIP:DMG:
          [1648015519.017932][2506:2506] CHIP:DMG:         isFabricFiltered = true,
          [1648015519.017969][2506:2506] CHIP:DMG:         InteractionModelRevision = 1
          [1648015519.018003][2506:2506] CHIP:DMG: },

          On DUT as a client side, verify that TH all-clusters-app sent identify type attribute value
          [1658144152.172514][8970:8975] CHIP:DMG: }
          [1658144152.172661][8970:8975] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 774797081
          [1658144152.172726][8970:8975] CHIP:TOO:   identify type: 2
          [1658144152.172813][8970:8975] CHIP:EM: Sending Standalone Ack for MessageCounter:190112026 on exchange 9214i
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          There is no optional attibute for this cluster
      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: |
          ./chip-tool identify  write   identify-time  1 1 1

          verify On TH(Reference app) receives the right write Request Message for the data sent in the above command
          [1646012277.591912][33190:33190] CHIP:IM: Received Write request
          [1646012277.591936][33190:33190] CHIP:DMG: IM WH moving to [Initialized]
          [1646012277.591987][33190:33190] CHIP:DMG: WriteRequestMessage =
          [1646012277.592013][33190:33190] CHIP:DMG: {
          [1646012277.592036][33190:33190] CHIP:DMG:         timedRequest = false,
          [1646012277.592064][33190:33190] CHIP:DMG:         AttributeDataIBs =
          [1646012277.592094][33190:33190] CHIP:DMG:         [
          [1646012277.592118][33190:33190] CHIP:DMG:                 AttributeDataIB =
          [1646012277.592149][33190:33190] CHIP:DMG:                 {
          [1646012277.592175][33190:33190] CHIP:DMG:                         AttributePathIB =
          [1646012277.592208][33190:33190] CHIP:DMG:                         {
          [1646012277.592239][33190:33190] CHIP:DMG:                                 Endpoint = 0x1,
          [1646012277.592273][33190:33190] CHIP:DMG:                                 Cluster = 0x3,
          [1646012277.592306][33190:33190] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1646012277.592336][33190:33190] CHIP:DMG:                         }
          [1646012277.592368][33190:33190] CHIP:DMG:
          [1646012277.592400][33190:33190] CHIP:DMG:                                 Data = 60,
          [1646012277.592433][33190:33190] CHIP:DMG:                 },
          [1646012277.592463][33190:33190] CHIP:DMG:
          [1646012277.592488][33190:33190] CHIP:DMG:         ],
          [1646012277.592516][33190:33190] CHIP:DMG:
          [1646012277.592540][33190:33190] CHIP:DMG:         moreChunkedMessages = false,
          [1646012277.592566][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646012277.592589][33190:33190] CHIP:DMG: },
          [1646012277.592669][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o
          [1646012277.592721][33190:33190] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to d4fdf520

          On DUT as a client side, verify that TH all-clusters-app sent success response
          [1658144181.287676][8979:8984] CHIP:DMG:
          [1658144181.287736][8979:8984] CHIP:DMG:                         StatusIB =
          [1658144181.287792][8979:8984] CHIP:DMG:                         {
          [1658144181.287849][8979:8984] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1658144181.287907][8979:8984] CHIP:DMG:                         },
      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 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: |
          ./chip-tool identify read identify-time 1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1648015371.159715][2506:2506] CHIP:IM: Received Read request
          [1648015371.159805][2506:2506] CHIP:DMG: ReadRequestMessage =
          [1648015371.159840][2506:2506] CHIP:DMG: {
          [1648015371.159866][2506:2506] CHIP:DMG:         AttributePathIBs =
          [1648015371.159903][2506:2506] CHIP:DMG:         [
          [1648015371.159932][2506:2506] CHIP:DMG:                 AttributePathIB =
          [1648015371.159968][2506:2506] CHIP:DMG:                 {
          [1648015371.160006][2506:2506] CHIP:DMG:                         Endpoint = 0x1,
          [1648015371.160047][2506:2506] CHIP:DMG:                         Cluster = 0x3,
          [1648015371.160087][2506:2506] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1648015371.160127][2506:2506] CHIP:DMG:                 }
          [1648015371.160164][2506:2506] CHIP:DMG:
          [1648015371.160201][2506:2506] CHIP:DMG:         ],
          [1648015371.160238][2506:2506] CHIP:DMG:
          [1648015371.160270][2506:2506] CHIP:DMG:         isFabricFiltered = true,
          [1648015371.160300][2506:2506] CHIP:DMG:         InteractionModelRevision = 1
          [1648015371.160324][2506:2506] CHIP:DMG: },

          On DUT as a client side, verify that TH all-clusters-app sent identify time attribute value
          [1658144129.651688][8964:8969] CHIP:DMG: }
          [1658144129.651919][8964:8969] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 774797081
          [1658144129.652113][8964:8969] CHIP:TOO:   identify time: 0
          [1658144129.652237][8964:8969] CHIP:EM: Sending Standalone Ack for MessageCounter:17091478 on exchange 42014i


           ./chip-tool identify  read   identify-type 1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1648015519.017225][2506:2506] CHIP:IM: Received Read request
          [1648015519.017293][2506:2506] CHIP:DMG: ReadRequestMessage =
          [1648015519.017332][2506:2506] CHIP:DMG: {
          [1648015519.017363][2506:2506] CHIP:DMG:         AttributePathIBs =
          [1648015519.017403][2506:2506] CHIP:DMG:         [
          [1648015519.017437][2506:2506] CHIP:DMG:                 AttributePathIB =
          [1648015519.017577][2506:2506] CHIP:DMG:                 {
          [1648015519.017624][2506:2506] CHIP:DMG:                         Endpoint = 0x1,
          [1648015519.017673][2506:2506] CHIP:DMG:                         Cluster = 0x3,
          [1648015519.017721][2506:2506] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1648015519.017768][2506:2506] CHIP:DMG:                 }
          [1648015519.017813][2506:2506] CHIP:DMG:
          [1648015519.017853][2506:2506] CHIP:DMG:         ],
          [1648015519.017894][2506:2506] CHIP:DMG:
          [1648015519.017932][2506:2506] CHIP:DMG:         isFabricFiltered = true,
          [1648015519.017969][2506:2506] CHIP:DMG:         InteractionModelRevision = 1
          [1648015519.018003][2506:2506] CHIP:DMG: },

          On DUT as a client side, verify that TH all-clusters-app sent identify type attribute value
          [1658144152.172514][8970:8975] CHIP:DMG: }
          [1658144152.172661][8970:8975] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 774797081
          [1658144152.172726][8970:8975] CHIP:TOO:   identify type: 2
          [1658144152.172813][8970:8975] CHIP:EM: Sending Standalone Ack for MessageCounter:190112026 on exchange 9214i
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          There is no optional 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 optional attibute for this cluster
      disabled: true
