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

PICS:
    - PS.C
    - PS.C.AM-READ
    - PS.C.AO-READ
    - PS.C.AM-WRITE
    - PS.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 powersource read status 1 1

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


          [1646155382.977445][33190:33190] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:685127 on exchange 16568r
          [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8
          [1646155382.978021][33190:33190] CHIP:IM: Received Read request
          [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage =
          [1646155382.978143][33190:33190] CHIP:DMG: {
          [1646155382.978167][33190:33190] CHIP:DMG:         AttributePathIBs =
          [1646155382.978204][33190:33190] CHIP:DMG:         [
          [1646155382.978309][33190:33190] CHIP:DMG:                 AttributePathIB =
          [1646155382.978369][33190:33190] CHIP:DMG:                 {
          [1646155382.978408][33190:33190] CHIP:DMG:                         Endpoint = 0x1,
          [1646155382.978459][33190:33190] CHIP:DMG:                         Cluster = 0x2f,
          [1646155382.978513][33190:33190] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1646155382.978545][33190:33190] CHIP:DMG:                 }
          [1646155382.978767][33190:33190] CHIP:DMG:
          [1646155382.978804][33190:33190] CHIP:DMG:         ],
          [1646155382.978836][33190:33190] CHIP:DMG:
          [1646155382.978872][33190:33190] CHIP:DMG:         isFabricFiltered = false,
          [1646155382.978901][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646155382.978927][33190:33190] CHIP:DMG: },
          [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1646155382.979658][33190:33190] CHIP:DMG: <RE:Run> Cluster 2f, Attribute 0 is dirty
          [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
          [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v
          [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v

          ./chip-tool powersource read order 1 1

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

          [1653395573.862606][19412:19412] CHIP:IM: Received Read request
          [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395573.862739][19412:19412] CHIP:DMG: {
          [1653395573.862779][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395573.862827][19412:19412] CHIP:DMG:         [
          [1653395573.862872][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395573.862928][19412:19412] CHIP:DMG:                 {
          [1653395573.862980][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395573.863037][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395573.863101][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1653395573.863161][19412:19412] CHIP:DMG:                 }
          [1653395573.863217][19412:19412] CHIP:DMG:
          [1653395573.863267][19412:19412] CHIP:DMG:         ],
          [1653395573.863319][19412:19412] CHIP:DMG:
          [1653395573.863367][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395573.863413][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395573.863456][19412:19412] CHIP:DMG: },
          [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0

          ./chip-tool powersource read description 1 1

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

          CHIP:IM: Received Read request
          [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395620.020364][19412:19412] CHIP:DMG: {
          [1653395620.020406][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395620.020463][19412:19412] CHIP:DMG:         [
          [1653395620.020511][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395620.020576][19412:19412] CHIP:DMG:                 {
          [1653395620.020635][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395620.020703][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395620.020770][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1653395620.020833][19412:19412] CHIP:DMG:                 }
          [1653395620.020893][19412:19412] CHIP:DMG:
          [1653395620.020945][19412:19412] CHIP:DMG:         ],
          [1653395620.020999][19412:19412] CHIP:DMG:
          [1653395620.021052][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395620.021104][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395620.021153][19412:19412] CHIP:DMG: },
          [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          This cluster doesn"t have any  optional attribute
      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 powersource read attribute-list 1 0

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

          [1659596771.124636][2409:2409] CHIP:IM: Received Read request
          [1659596771.124765][2409:2409] CHIP:DMG: ReadRequestMessage =
          [1659596771.124795][2409:2409] CHIP:DMG: {
          [1659596771.124814][2409:2409] CHIP:DMG:         AttributePathIBs =
          [1659596771.124838][2409:2409] CHIP:DMG:         [
          [1659596771.124859][2409:2409] CHIP:DMG:                 AttributePathIB =
          [1659596771.124901][2409:2409] CHIP:DMG:                 {
          [1659596771.124928][2409:2409] CHIP:DMG:                         Endpoint = 0x0,
          [1659596771.124963][2409:2409] CHIP:DMG:                         Cluster = 0x2f,
          [1659596771.124989][2409:2409] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659596771.125020][2409:2409] CHIP:DMG:                 }
          [1659596771.125045][2409:2409] CHIP:DMG:
          [1659596771.125077][2409:2409] CHIP:DMG:         ],
          [1659596771.125102][2409:2409] CHIP:DMG:
          [1659596771.125134][2409:2409] CHIP:DMG:         isFabricFiltered = true,
          [1659596771.125156][2409:2409] CHIP:DMG:         InteractionModelRevision = 1
          [1659596771.125177][2409:2409] CHIP:DMG: },



          ./chip-tool powersource read status 1 1

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

          [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8
          [1646155382.978021][33190:33190] CHIP:IM: Received Read request
          [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage =
          [1646155382.978143][33190:33190] CHIP:DMG: {
          [1646155382.978167][33190:33190] CHIP:DMG:         AttributePathIBs =
          [1646155382.978204][33190:33190] CHIP:DMG:         [
          [1646155382.978309][33190:33190] CHIP:DMG:                 AttributePathIB =
          [1646155382.978369][33190:33190] CHIP:DMG:                 {
          [1646155382.978408][33190:33190] CHIP:DMG:                         Endpoint = 0x1,
          [1646155382.978459][33190:33190] CHIP:DMG:                         Cluster = 0x2f,
          [1646155382.978513][33190:33190] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1646155382.978545][33190:33190] CHIP:DMG:                 }
          [1646155382.978767][33190:33190] CHIP:DMG:
          [1646155382.978804][33190:33190] CHIP:DMG:         ],
          [1646155382.978836][33190:33190] CHIP:DMG:
          [1646155382.978872][33190:33190] CHIP:DMG:         isFabricFiltered = false,
          [1646155382.978901][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646155382.978927][33190:33190] CHIP:DMG: },
          [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1646155382.979658][33190:33190] CHIP:DMG: <RE:Run> Cluster 2f, Attribute 0 is dirty
          [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
          [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v
          [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v

          ./chip-tool powersource read order 1 1

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

          [1653395573.862606][19412:19412] CHIP:IM: Received Read request
          [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395573.862739][19412:19412] CHIP:DMG: {
          [1653395573.862779][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395573.862827][19412:19412] CHIP:DMG:         [
          [1653395573.862872][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395573.862928][19412:19412] CHIP:DMG:                 {
          [1653395573.862980][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395573.863037][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395573.863101][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1653395573.863161][19412:19412] CHIP:DMG:                 }
          [1653395573.863217][19412:19412] CHIP:DMG:
          [1653395573.863267][19412:19412] CHIP:DMG:         ],
          [1653395573.863319][19412:19412] CHIP:DMG:
          [1653395573.863367][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395573.863413][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395573.863456][19412:19412] CHIP:DMG: },
          [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0

          ./chip-tool powersource read description 1 1

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

          CHIP:IM: Received Read request
          [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395620.020364][19412:19412] CHIP:DMG: {
          [1653395620.020406][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395620.020463][19412:19412] CHIP:DMG:         [
          [1653395620.020511][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395620.020576][19412:19412] CHIP:DMG:                 {
          [1653395620.020635][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395620.020703][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395620.020770][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1653395620.020833][19412:19412] CHIP:DMG:                 }
          [1653395620.020893][19412:19412] CHIP:DMG:
          [1653395620.020945][19412:19412] CHIP:DMG:         ],
          [1653395620.020999][19412:19412] CHIP:DMG:
          [1653395620.021052][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395620.021104][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395620.021153][19412:19412] CHIP:DMG: },
          [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          This cluster doesn"t have any  optional 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
