# 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:
          "DUT reads all supported mandatory 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

          Verify in TH all-clusters-app log

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

          [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 in TH all-clusters-app log

          [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 in TH all-clusters-app log

          [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: |
          verify on Reference app receives the right response for the data sent in the above

          ./chip-tool switch read feature-map 1 1

          Verify in TH all-clusters-app log

          [1656477949231] [49485:5731390] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_FFFC DataVersion: 2281340739
          [1656477949232] [49485:5731390] CHIP: [TOO]   FeatureMap: 1

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

          Verify in TH all-clusters-app log

          [1656477995952] [49490:5731598] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_FFFB DataVersion: 2281340739
          [1656477995952] [49490:5731598] CHIP: [TOO]   AttributeList: 7 entries
          [1656477995952] [49490:5731598] CHIP: [TOO]     [1]: 0
          [1656477995952] [49490:5731598] CHIP: [TOO]     [2]: 1
          [1656477995952] [49490:5731598] CHIP: [TOO]     [3]: 65528
          [1656477995952] [49490:5731598] CHIP: [TOO]     [4]: 65529
          [1656477995952] [49490:5731598] CHIP: [TOO]     [5]: 65531
          [1656477995952] [49490:5731598] CHIP: [TOO]     [6]: 65532
          [1656477995952] [49490:5731598] CHIP: [TOO]     [7]: 65533



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

          Verify in TH all-clusters-app log

          [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 in TH all-clusters-app log

          [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 in TH all-clusters-app log

          [1656477918495] [49481:5731213] CHIP: [DMG] ReportDataMessage =
          [1656477918495] [49481:5731213] CHIP: [DMG] {
          [1656477918495] [49481:5731213] CHIP: [DMG]         AttributeReportIBs =
          [1656477918495] [49481:5731213] CHIP: [DMG]         [
          [1656477918495] [49481:5731213] CHIP: [DMG]                 AttributeReportIB =
          [1656477918495] [49481:5731213] CHIP: [DMG]                 {
          [1656477918495] [49481:5731213] CHIP: [DMG]                         AttributeStatusIB =
          [1656477918495] [49481:5731213] CHIP: [DMG]                         {
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 AttributePathIB =
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 {
          [1656477918495] [49481:5731213] CHIP: [DMG]                                         Endpoint = 0x1,
          [1656477918495] [49481:5731213] CHIP: [DMG]                                         Cluster = 0x3b,
          [1656477918495] [49481:5731213] CHIP: [DMG]                                         Attribute = 0x0000_0002,
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 }
          [1656477918495] [49481:5731213] CHIP: [DMG]
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 StatusIB =
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 {
          [1656477918495] [49481:5731213] CHIP: [DMG]                                         status = 0x86 (UNSUPPORTED_ATTRIBUTE),
          [1656477918495] [49481:5731213] CHIP: [DMG]                                 },
          [1656477918495] [49481:5731213] CHIP: [DMG]
          [1656477918495] [49481:5731213] CHIP: [DMG]                         },
          [1656477918495] [49481:5731213] CHIP: [DMG]
          [1656477918495] [49481:5731213] CHIP: [DMG]                 },
          [1656477918495] [49481:5731213] CHIP: [DMG]
          [1656477918495] [49481:5731213] CHIP: [DMG]         ],
          [1656477918495] [49481:5731213] CHIP: [DMG]
          [1656477918495] [49481:5731213] CHIP: [DMG]         SuppressResponse = true,
          [1656477918495] [49481:5731213] CHIP: [DMG]         InteractionModelRevision = 1
          [1656477918495] [49481:5731213] CHIP: [DMG] }
          [1656477918495] [49481:5731213] CHIP: [TOO] Response Failure: IM Error 0x00000586: 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
