# 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: 74.3.1. [TC-SWTCH-3.1] Global attributes with client as DUT

PICS:
    - SWTCH.C
    - SWTCH.C.AM-READ
    - SWTCH.C.AO-READ
    - SWTCH.C.AM-WRITE
    - SWTCH.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 switch read number-of-positions 1 1

          verify on TH all-cluster-app  number-of-positions attribute receives the right ReadRequest for the data sent in the above command:

          [1650539419.579618][3678:3678] CHIP:IM: Received Read request
          [1650539419.579683][3678:3678] CHIP:DMG: ReadRequestMessage =
          [1650539419.579718][3678:3678] CHIP:DMG: {
          [1650539419.579748][3678:3678] CHIP:DMG:         AttributePathIBs =
          [1650539419.579783][3678:3678] CHIP:DMG:         [
          [1650539419.579816][3678:3678] CHIP:DMG:                 AttributePathIB =
          [1650539419.579857][3678:3678] CHIP:DMG:                 {
          [1650539419.579895][3678:3678] CHIP:DMG:                         Endpoint = 0x1,
          [1650539419.579943][3678:3678] CHIP:DMG:                         Cluster = 0x3b,
          [1650539419.579990][3678:3678] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650539419.580034][3678:3678] CHIP:DMG:                 }
          [1650539419.580075][3678:3678] CHIP:DMG:
          [1650539419.580111][3678:3678] CHIP:DMG:         ],
          [1650539419.580150][3678:3678] CHIP:DMG:
          [1650539419.580184][3678:3678] CHIP:DMG:         isFabricFiltered = true,
          [1650539419.580218][3678:3678] CHIP:DMG:         InteractionModelRevision = 1
          [1650539419.580250][3678:3678] CHIP:DMG: },

          ./chip-tool switch read current-position 1 1

          verify on TH all-cluster-app current-position attribute receives the right ReadRequest for the data sent in the above command:

          [1650539484.199120][3678:3678] CHIP:DMG: ReadRequestMessage =
          [1650539484.199188][3678:3678] CHIP:DMG: {
          [1650539484.199243][3678:3678] CHIP:DMG:         AttributePathIBs =
          [1650539484.199308][3678:3678] CHIP:DMG:         [
          [1650539484.199368][3678:3678] CHIP:DMG:                 AttributePathIB =
          [1650539484.199442][3678:3678] CHIP:DMG:                 {
          [1650539484.199515][3678:3678] CHIP:DMG:                         Endpoint = 0x1,
          [1650539484.199600][3678:3678] CHIP:DMG:                         Cluster = 0x3b,
          [1650539484.199685][3678:3678] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650539484.199760][3678:3678] CHIP:DMG:                 }
          [1650539484.199835][3678:3678] CHIP:DMG:
          [1650539484.199901][3678:3678] CHIP:DMG:         ],
          [1650539484.199971][3678:3678] CHIP:DMG:
          [1650539484.200035][3678:3678] CHIP:DMG:         isFabricFiltered = true,
          [1650539484.200098][3678:3678] CHIP:DMG:         InteractionModelRevision = 1
          [1650539484.200156][3678:3678] 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 switch read multi-press-max 1 1

          verify on TH all-cluster-app multi-press-max  attribute receives the right ReadRequest for the data sent in the above command:

          [1646209889.768919][2190:2190] CHIP:DMG: ReadRequestMessage =
          [1646209889.768984][2190:2190] CHIP:DMG: {
          [1646209889.769012][2190:2190] CHIP:DMG:        AttributePathIBs =
          [1646209889.769049][2190:2190] CHIP:DMG:        [
          [1646209889.769076][2190:2190] CHIP:DMG:                AttributePathIB =
          [1646209889.769107][2190:2190] CHIP:DMG:                {
          [1646209889.769154][2190:2190] CHIP:DMG:                        Endpoint = 0x1,
          [1646209889.769205][2190:2190] CHIP:DMG:                        Cluster = 0x3b,
          [1646209889.769254][2190:2190] CHIP:DMG:                        Attribute = 0x0000_0002,
          [1646209889.769292][2190:2190] CHIP:DMG:                }
          [1646209889.769325][2190:2190] CHIP:DMG:
          [1646209889.769367][2190:2190] CHIP:DMG:        ],
          [1646209889.769401][2190:2190] CHIP:DMG:
          [1646209889.769432][2190:2190] CHIP:DMG:        isFabricFiltered = false,
          [1646209889.769461][2190:2190] CHIP:DMG:        InteractionModelRevision = 1
          [1646209889.769499][2190:2190] CHIP:DMG: },
          [1646209889.769572][2190:2190] CHIP:DMG: IM RH moving to [GeneratingReports]
      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 switch read feature-map 1 1

          verify on TH  all-clusters-minimal-app feature-map attribute receives the right ReadRequest for the data sent in the above command

          [1659597205.359182][2409:2409] CHIP:IM: Received Read request
          [1659597205.359281][2409:2409] CHIP:DMG: ReadRequestMessage =
          [1659597205.359315][2409:2409] CHIP:DMG: {
          [1659597205.359344][2409:2409] CHIP:DMG:         AttributePathIBs =
          [1659597205.359378][2409:2409] CHIP:DMG:         [
          [1659597205.359409][2409:2409] CHIP:DMG:                 AttributePathIB =
          [1659597205.359447][2409:2409] CHIP:DMG:                 {
          [1659597205.359487][2409:2409] CHIP:DMG:                         Endpoint = 0x1,
          [1659597205.359530][2409:2409] CHIP:DMG:                         Cluster = 0x3b,
          [1659597205.359572][2409:2409] CHIP:DMG:                         Attribute = 0x0000_FFFC,
          [1659597205.359615][2409:2409] CHIP:DMG:                 }
          [1659597205.359654][2409:2409] CHIP:DMG:
          [1659597205.359689][2409:2409] CHIP:DMG:         ],
          [1659597205.359726][2409:2409] CHIP:DMG:
          [1659597205.359760][2409:2409] CHIP:DMG:         isFabricFiltered = true,
          [1659597205.359792][2409:2409] CHIP:DMG:         InteractionModelRevision = 1
          [1659597205.359822][2409:2409] CHIP:DMG: },
          [1659597205.359912][2409:2409] CHIP:DMG: IM RH moving to [GeneratingReports]1

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

          verify on TH  all-clusters-minimal-app attribute-list receives the right ReadRequest for the data sent in the above command

          [1659597229.124241][2409:2409] CHIP:IM: Received Read request
          [1659597229.124312][2409:2409] CHIP:DMG: ReadRequestMessage =
          [1659597229.124335][2409:2409] CHIP:DMG: {
          [1659597229.124353][2409:2409] CHIP:DMG:         AttributePathIBs =
          [1659597229.124376][2409:2409] CHIP:DMG:         [
          [1659597229.124396][2409:2409] CHIP:DMG:                 AttributePathIB =
          [1659597229.124428][2409:2409] CHIP:DMG:                 {
          [1659597229.124455][2409:2409] CHIP:DMG:                         Endpoint = 0x1,
          [1659597229.124484][2409:2409] CHIP:DMG:                         Cluster = 0x3b,
          [1659597229.124512][2409:2409] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659597229.124538][2409:2409] CHIP:DMG:                 }
          [1659597229.124564][2409:2409] CHIP:DMG:
          [1659597229.124588][2409:2409] CHIP:DMG:         ],
          [1659597229.124612][2409:2409] CHIP:DMG:
          [1659597229.124635][2409:2409] CHIP:DMG:         isFabricFiltered = true,
          [1659597229.124656][2409:2409] CHIP:DMG:         InteractionModelRevision = 1
          [1659597229.124676][2409:2409] CHIP:DMG: },
          [1659597229.124740][2409:2409] CHIP:DMG: IM RH moving to [GeneratingReports



          ./chip-tool switch read number-of-positions 1 1

          verify on TH  all-clusters-minimal-app number-of-positions attribute receives the right ReadRequest for the data sent in the above command

          [1650539419.579618][3678:3678] CHIP:IM: Received Read request
          [1650539419.579683][3678:3678] CHIP:DMG: ReadRequestMessage =
          [1650539419.579718][3678:3678] CHIP:DMG: {
          [1650539419.579748][3678:3678] CHIP:DMG:         AttributePathIBs =
          [1650539419.579783][3678:3678] CHIP:DMG:         [
          [1650539419.579816][3678:3678] CHIP:DMG:                 AttributePathIB =
          [1650539419.579857][3678:3678] CHIP:DMG:                 {
          [1650539419.579895][3678:3678] CHIP:DMG:                         Endpoint = 0x1,
          [1650539419.579943][3678:3678] CHIP:DMG:                         Cluster = 0x3b,
          [1650539419.579990][3678:3678] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650539419.580034][3678:3678] CHIP:DMG:                 }
          [1650539419.580075][3678:3678] CHIP:DMG:
          [1650539419.580111][3678:3678] CHIP:DMG:         ],
          [1650539419.580150][3678:3678] CHIP:DMG:
          [1650539419.580184][3678:3678] CHIP:DMG:         isFabricFiltered = true,
          [1650539419.580218][3678:3678] CHIP:DMG:         InteractionModelRevision = 1
          [1650539419.580250][3678:3678] CHIP:DMG: },

          ./chip-tool switch read current-position 1 1

          verify on TH  all-clusters-minimal-app current-position  attribute receives the right ReadRequest for the data sent in the above command

          [1650539484.199120][3678:3678] CHIP:DMG: ReadRequestMessage =
          [1650539484.199188][3678:3678] CHIP:DMG: {
          [1650539484.199243][3678:3678] CHIP:DMG:         AttributePathIBs =
          [1650539484.199308][3678:3678] CHIP:DMG:         [
          [1650539484.199368][3678:3678] CHIP:DMG:                 AttributePathIB =
          [1650539484.199442][3678:3678] CHIP:DMG:                 {
          [1650539484.199515][3678:3678] CHIP:DMG:                         Endpoint = 0x1,
          [1650539484.199600][3678:3678] CHIP:DMG:                         Cluster = 0x3b,
          [1650539484.199685][3678:3678] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650539484.199760][3678:3678] CHIP:DMG:                 }
          [1650539484.199835][3678:3678] CHIP:DMG:
          [1650539484.199901][3678:3678] CHIP:DMG:         ],
          [1650539484.199971][3678:3678] CHIP:DMG:
          [1650539484.200035][3678:3678] CHIP:DMG:         isFabricFiltered = true,
          [1650539484.200098][3678:3678] CHIP:DMG:         InteractionModelRevision = 1
          [1650539484.200156][3678:3678] CHIP:DMG: },
      disabled: true

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          TH all-clusters-minimal-app does not support optional attributes


          ./chip-tool switch read multi-press-max 1 1
      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
