# 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

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

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the  DUT as client test cases. 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: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
          ./chip-tool identify read identify-time 1 1
          Verify DUT receives  identify-time attribute response on the TH(all-clusters-app) Log:

          [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: },


           ./chip-tool identify  read   identify-type 1 1
          Verify DUT receives   identify-type attribute response on the TH(all-clusters-app) Log:

          [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: },
      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: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool identify  write   identify-time  1 1 1

          Verify DUT receives  identify-time attribute write response on the TH(all-clusters-app) Log:
          [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
      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 write 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: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool identify read identify-time 1 1
          Verify DUT receives  identify-time attribute response on theTH(all-clusters-minimal-app)

          [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: },


           ./chip-tool identify  read   identify-type 1 1
          Verify DUT receives  identify-type attribute response on theTH(all-clusters-minimal-app)

          [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: },
      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 write attibute for this cluster
      disabled: true
