# 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: 77.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT

PICS:
    - ACT.C
    - ACT.C.AM-READ
    - ACT.C.AO-READ
    - ACT.C.AM-WRITE
    - ACT.C.AO-WRITE

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "Note"
      verification: |
          For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label:
          "DUT reads all supported mandatory attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          ./chip-tool actions  read action-list 1 1

          Verify read command is received on TH(bridge-app)

          [1658848323.188336][28392:28392] CHIP:IM: Received Read request
          [1658848323.188433][28392:28392] CHIP:DMG: ReadRequestMessage =
          [1658848323.188470][28392:28392] CHIP:DMG: {
          [1658848323.188500][28392:28392] CHIP:DMG:         AttributePathIBs =
          [1658848323.188535][28392:28392] CHIP:DMG:         [
          [1658848323.188568][28392:28392] CHIP:DMG:                 AttributePathIB =
          [1658848323.188605][28392:28392] CHIP:DMG:                 {
          [1658848323.188643][28392:28392] CHIP:DMG:                         Endpoint = 0x1,
          [1658848323.188690][28392:28392] CHIP:DMG:                         Cluster = 0x25,
          [1658848323.188733][28392:28392] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1658848323.188774][28392:28392] CHIP:DMG:                 }
          [1658848323.188812][28392:28392] CHIP:DMG:
          [1658848323.188846][28392:28392] CHIP:DMG:         ],
          [1658848323.188884][28392:28392] CHIP:DMG:
          [1658848323.188919][28392:28392] CHIP:DMG:         isFabricFiltered = true,
          [1658848323.188954][28392:28392] CHIP:DMG:         InteractionModelRevision = 1
          [1658848323.188985][28392:28392] CHIP:DMG: },
          [1658848323.189080][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658848323.189190][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1658848323.189229][28392:28392] CHIP:DMG: <RE:Run> Cluster 25, Attribute 0 is dirty



          ./chip-tool actions  read endpoint-lists   1 1

          Verify read command is received on TH(all-clusters-app
          )
          [1658848398.260378][28392:28392] CHIP:IM: Received Read request
          [1658848398.260455][28392:28392] CHIP:DMG: ReadRequestMessage =
          [1658848398.260483][28392:28392] CHIP:DMG: {
          [1658848398.260505][28392:28392] CHIP:DMG:         AttributePathIBs =
          [1658848398.260531][28392:28392] CHIP:DMG:         [
          [1658848398.260555][28392:28392] CHIP:DMG:                 AttributePathIB =
          [1658848398.260583][28392:28392] CHIP:DMG:                 {
          [1658848398.260611][28392:28392] CHIP:DMG:                         Endpoint = 0x1,
          [1658848398.260642][28392:28392] CHIP:DMG:                         Cluster = 0x25,
          [1658848398.260673][28392:28392] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1658848398.260702][28392:28392] CHIP:DMG:                 }
          [1658848398.260731][28392:28392] CHIP:DMG:
          [1658848398.260756][28392:28392] CHIP:DMG:         ],
          [1658848398.260784][28392:28392] CHIP:DMG:
          [1658848398.260810][28392:28392] CHIP:DMG:         isFabricFiltered = true,
          [1658848398.260836][28392:28392] CHIP:DMG:         InteractionModelRevision = 1
          [1658848398.260859][28392:28392] CHIP:DMG: },
          [1658848398.260930][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658848398.261011][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1658848398.261040][28392:28392] CHIP:DMG: <RE:Run> Cluster 25, Attribute 1 is dirty
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          Optional attibute

          ./chip-tool actions read setup-url 1 1

          Verify read command is received on TH(bridge-app)

          [1658848453.728775][28392:28392] CHIP:IM: Received Read request
          [1658848453.728895][28392:28392] CHIP:DMG: ReadRequestMessage =
          [1658848453.728927][28392:28392] CHIP:DMG: {
          [1658848453.728950][28392:28392] CHIP:DMG:         AttributePathIBs =
          [1658848453.728975][28392:28392] CHIP:DMG:         [
          [1658848453.728999][28392:28392] CHIP:DMG:                 AttributePathIB =
          [1658848453.729046][28392:28392] CHIP:DMG:                 {
          [1658848453.729081][28392:28392] CHIP:DMG:                         Endpoint = 0x1,
          [1658848453.729118][28392:28392] CHIP:DMG:                         Cluster = 0x25,
          [1658848453.729157][28392:28392] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1658848453.729191][28392:28392] CHIP:DMG:                 }
          [1658848453.729223][28392:28392] CHIP:DMG:
          [1658848453.729251][28392:28392] CHIP:DMG:         ],
          [1658848453.729280][28392:28392] CHIP:DMG:
          [1658848453.729307][28392:28392] CHIP:DMG:         isFabricFiltered = true,
          [1658848453.729332][28392:28392] CHIP:DMG:         InteractionModelRevision = 1
          [1658848453.729358][28392:28392] CHIP:DMG: },
          [1658848453.729436][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658848453.729538][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1658848453.729570][28392:28392] CHIP:DMG: <RE:Run> Cluster 25, Attribute 2 is dirty
      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 actions  read  attribute-list 1 1

          Verify attribute-list attribute contains 7 entries on TH(all-clusters-minimal-app)
          [1658393025.602745][13481:13486] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_FFFB DataVersion: 2868144574
          [1658393025.602867][13481:13486] CHIP:TOO:   AttributeList: 7 entries
          [1658393025.602917][13481:13486] CHIP:TOO:     [1]: 0
          [1658393025.602945][13481:13486] CHIP:TOO:     [2]: 1
          [1658393025.602997][13481:13486] CHIP:TOO:     [3]: 65528
          [1658393025.603023][13481:13486] CHIP:TOO:     [4]: 65529
          [1658393025.603049][13481:13486] CHIP:TOO:     [5]: 65531
          [1658393025.603094][13481:13486] CHIP:TOO:     [6]: 65532
          [1658393025.603121][13481:13486] CHIP:TOO:     [7]: 65533
          [1658393025.603258][13481:13486] CHIP:EM: Sending Standalone Ack for MessageCounter:114510707 on exchange 23501i


          ./chip-tool actions  read action-list 1 1

          Verify read command is received on TH(all-clusters-minimal-app) Log

          [1658848323.188336][28392:28392] CHIP:IM: Received Read request
          [1658848323.188433][28392:28392] CHIP:DMG: ReadRequestMessage =
          [1658848323.188470][28392:28392] CHIP:DMG: {
          [1658848323.188500][28392:28392] CHIP:DMG:         AttributePathIBs =
          [1658848323.188535][28392:28392] CHIP:DMG:         [
          [1658848323.188568][28392:28392] CHIP:DMG:                 AttributePathIB =
          [1658848323.188605][28392:28392] CHIP:DMG:                 {
          [1658848323.188643][28392:28392] CHIP:DMG:                         Endpoint = 0x1,
          [1658848323.188690][28392:28392] CHIP:DMG:                         Cluster = 0x25,
          [1658848323.188733][28392:28392] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1658848323.188774][28392:28392] CHIP:DMG:                 }
          [1658848323.188812][28392:28392] CHIP:DMG:
          [1658848323.188846][28392:28392] CHIP:DMG:         ],
          [1658848323.188884][28392:28392] CHIP:DMG:
          [1658848323.188919][28392:28392] CHIP:DMG:         isFabricFiltered = true,
          [1658848323.188954][28392:28392] CHIP:DMG:         InteractionModelRevision = 1
          [1658848323.188985][28392:28392] CHIP:DMG: },
          [1658848323.189080][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658848323.189190][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1658848323.189229][28392:28392] CHIP:DMG: <RE:Run> Cluster 25, Attribute 0 is dirty



          ./chip-tool actions  read endpoint-lists  1 1

          Verify read command is received on TH(all-clusters-minimal-app)

          [1658848398.260378][28392:28392] CHIP:IM: Received Read request
          [1658848398.260455][28392:28392] CHIP:DMG: ReadRequestMessage =
          [1658848398.260483][28392:28392] CHIP:DMG: {
          [1658848398.260505][28392:28392] CHIP:DMG:         AttributePathIBs =
          [1658848398.260531][28392:28392] CHIP:DMG:         [
          [1658848398.260555][28392:28392] CHIP:DMG:                 AttributePathIB =
          [1658848398.260583][28392:28392] CHIP:DMG:                 {
          [1658848398.260611][28392:28392] CHIP:DMG:                         Endpoint = 0x1,
          [1658848398.260642][28392:28392] CHIP:DMG:                         Cluster = 0x25,
          [1658848398.260673][28392:28392] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1658848398.260702][28392:28392] CHIP:DMG:                 }
          [1658848398.260731][28392:28392] CHIP:DMG:
          [1658848398.260756][28392:28392] CHIP:DMG:         ],
          [1658848398.260784][28392:28392] CHIP:DMG:
          [1658848398.260810][28392:28392] CHIP:DMG:         isFabricFiltered = true,
          [1658848398.260836][28392:28392] CHIP:DMG:         InteractionModelRevision = 1
          [1658848398.260859][28392:28392] CHIP:DMG: },
          [1658848398.260930][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1658848398.261011][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1658848398.261040][28392:28392] CHIP:DMG: <RE:Run> Cluster 25, Attribute 1 is dirty
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          Optional attibute

          ./chip-tool actions read setup-url 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
