# 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: 22.2.3. [TC-LVL-2.3] Attributes with DUT as client

PICS:
    - LVL.C
    - LVL.C.AM-READ
    - LVL.C.AO-READ
    - LVL.C.AM-WRITE
    - LVL.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: |
          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 levelcontrol read current-level 1 1
          Verify DUT receives  current-level attribute response on the TH(all-clusters-app) Log:
          [1657279115.433005][4417:4417] CHIP:IM: Received Read request
          [1657279115.433184][4417:4417] CHIP:DMG: ReadRequestMessage =
          [1657279115.433258][4417:4417] CHIP:DMG: {
          [1657279115.433313][4417:4417] CHIP:DMG:         AttributePathIBs =
          [1657279115.433379][4417:4417] CHIP:DMG:         [
          [1657279115.433438][4417:4417] CHIP:DMG:                 AttributePathIB =
          [1657279115.433506][4417:4417] CHIP:DMG:                 {
          [1657279115.433572][4417:4417] CHIP:DMG:                         Endpoint = 0x1,
          [1657279115.433703][4417:4417] CHIP:DMG:                         Cluster = 0x8,
          [1657279115.433781][4417:4417] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1657279115.433851][4417:4417] CHIP:DMG:                 }
          [1657279115.433920][4417:4417] CHIP:DMG:
          [1657279115.433980][4417:4417] CHIP:DMG:         ],
          [1657279115.434047][4417:4417] CHIP:DMG:
          [1657279115.434109][4417:4417] CHIP:DMG:         isFabricFiltered = true,
          [1657279115.434169][4417:4417] CHIP:DMG:         InteractionModelRevision = 1
          [1657279115.434226][4417:4417] CHIP:DMG: },


          ./chip-tool levelcontrol read on-level 1 1
          verify On TH(all-clusters-app) receives the right Read Request Message for the data sent in the above command
          [1657279142.246433][4417:4417] CHIP:IM: Received Read request
          [1657279142.246605][4417:4417] CHIP:DMG: ReadRequestMessage =
          [1657279142.246670][4417:4417] CHIP:DMG: {
          [1657279142.246725][4417:4417] CHIP:DMG:         AttributePathIBs =
          [1657279142.246788][4417:4417] CHIP:DMG:         [
          [1657279142.246848][4417:4417] CHIP:DMG:                 AttributePathIB =
          [1657279142.246906][4417:4417] CHIP:DMG:                 {
          [1657279142.246965][4417:4417] CHIP:DMG:                         Endpoint = 0x1,
          [1657279142.247028][4417:4417] CHIP:DMG:                         Cluster = 0x8,
          [1657279142.247100][4417:4417] CHIP:DMG:                         Attribute = 0x0000_0011,
          [1657279142.247164][4417:4417] CHIP:DMG:                 }
          [1657279142.247245][4417:4417] CHIP:DMG:
          [1657279142.247310][4417:4417] CHIP:DMG:         ],
          [1657279142.247375][4417:4417] CHIP:DMG:
          [1657279142.247439][4417:4417] CHIP:DMG:         isFabricFiltered = true,
          [1657279142.247500][4417:4417] CHIP:DMG:         InteractionModelRevision = 1
          [1657279142.247552][4417:4417] CHIP:DMG: },


          ./chip-tool levelcontrol read options 1 1
          Verify DUT receives  options attribute response on the TH(all-clusters-app) Log:
          [1657279166.425514][4417:4417] CHIP:IM: Received Read request
          [1657279166.425770][4417:4417] CHIP:DMG: ReadRequestMessage =
          [1657279166.425842][4417:4417] CHIP:DMG: {
          [1657279166.425895][4417:4417] CHIP:DMG:         AttributePathIBs =
          [1657279166.425960][4417:4417] CHIP:DMG:         [
          [1657279166.426018][4417:4417] CHIP:DMG:                 AttributePathIB =
          [1657279166.426093][4417:4417] CHIP:DMG:                 {
          [1657279166.426161][4417:4417] CHIP:DMG:                         Endpoint = 0x1,
          [1657279166.426245][4417:4417] CHIP:DMG:                         Cluster = 0x8,
          [1657279166.426310][4417:4417] CHIP:DMG:                         Attribute = 0x0000_000F,
          [1657279166.426389][4417:4417] CHIP:DMG:                 }
          [1657279166.426465][4417:4417] CHIP:DMG:
          [1657279166.426528][4417:4417] CHIP:DMG:         ],
          [1657279166.426597][4417:4417] CHIP:DMG:
          [1657279166.426660][4417:4417] CHIP:DMG:         isFabricFiltered = true,
          [1657279166.426721][4417:4417] CHIP:DMG:         InteractionModelRevision = 1
          [1657279166.426777][4417:4417] CHIP:DMG: },
      disabled: true

    - label:
          "DUT reads all supported optional 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 levelcontrol read remaining-time 1 1
          Verify DUT receives  remaining-time  attribute response on the TH(all-clusters-app) Log:
          1657913316.919773][3126:3126] CHIP:IM: Received Read request
          [1657913316.919880][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913316.919920][3126:3126] CHIP:DMG: {
          [1657913316.919952][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913316.919995][3126:3126] CHIP:DMG:        [
          [1657913316.920046][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913316.920135][3126:3126] CHIP:DMG:                {
          [1657913316.920176][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913316.920341][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913316.920396][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0001,
          [1657913316.920457][3126:3126] CHIP:DMG:                }
          [1657913316.920503][3126:3126] CHIP:DMG:
          [1657913316.920543][3126:3126] CHIP:DMG:        ],
          [1657913316.920584][3126:3126] CHIP:DMG:
          [1657913316.920622][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913316.920673][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913316.920707][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read min-level 1 1
          Verify DUT receives  min-level   attribute response on the TH(all-clusters-app) Log:
          [1657913332.319502][3126:3126] CHIP:IM: Received Read request
          [1657913332.319628][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913332.319675][3126:3126] CHIP:DMG: {
          [1657913332.319734][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913332.319782][3126:3126] CHIP:DMG:        [
          [1657913332.319826][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913332.319898][3126:3126] CHIP:DMG:                {
          [1657913332.319950][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913332.320006][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913332.320127][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0002,
          [1657913332.320181][3126:3126] CHIP:DMG:                }
          [1657913332.320239][3126:3126] CHIP:DMG:
          [1657913332.320305][3126:3126] CHIP:DMG:        ],
          [1657913332.320358][3126:3126] CHIP:DMG:
          [1657913332.320405][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913332.320470][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913332.320514][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read max-level 1 1
          Verify DUT receives  max-level   attribute response on the TH(all-clusters-app) Log:
          [1657913350.880504][3126:3126] CHIP:IM: Received Read request
          [1657913350.880648][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913350.880703][3126:3126] CHIP:DMG: {
          [1657913350.880770][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913350.880838][3126:3126] CHIP:DMG:        [
          [1657913350.880889][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913350.880965][3126:3126] CHIP:DMG:                {
          [1657913350.881023][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913350.881090][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913350.881175][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0003,
          [1657913350.881243][3126:3126] CHIP:DMG:                }
          [1657913350.881437][3126:3126] CHIP:DMG:
          [1657913350.881496][3126:3126] CHIP:DMG:        ],
          [1657913350.881576][3126:3126] CHIP:DMG:
          [1657913350.881630][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913350.881705][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913350.881756][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read current-frequency 1 1
          Verify DUT receives current-frequency  attribute response on the TH(all-clusters-app) Log:
          [1657913381.091563][3126:3126] CHIP:IM: Received Read request
          [1657913381.091690][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913381.091738][3126:3126] CHIP:DMG: {
          [1657913381.091797][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913381.091844][3126:3126] CHIP:DMG:        [
          [1657913381.091889][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913381.091958][3126:3126] CHIP:DMG:                {
          [1657913381.092013][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913381.092105][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913381.092178][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0004,
          [1657913381.092233][3126:3126] CHIP:DMG:                }
          [1657913381.092284][3126:3126] CHIP:DMG:
          [1657913381.092348][3126:3126] CHIP:DMG:        ],
          [1657913381.092400][3126:3126] CHIP:DMG:
          [1657913381.092448][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913381.092514][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913381.092557][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read min-frequency 1 1
          Verify DUT receives min-frequency  attribute response on the TH(all-clusters-app) Log:
          [1657913397.410411][3126:3126] CHIP:IM: Received Read request
          [1657913397.410539][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913397.410588][3126:3126] CHIP:DMG: {
          [1657913397.410629][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913397.410676][3126:3126] CHIP:DMG:        [
          [1657913397.410720][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913397.410782][3126:3126] CHIP:DMG:                {
          [1657913397.410834][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913397.410891][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913397.410948][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0005,
          [1657913397.411002][3126:3126] CHIP:DMG:                }
          [1657913397.411056][3126:3126] CHIP:DMG:
          [1657913397.411103][3126:3126] CHIP:DMG:        ],
          [1657913397.411161][3126:3126] CHIP:DMG:
          [1657913397.411209][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913397.411255][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913397.411298][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read max-frequency 1 1
          Verify DUT receives max-frequency  attribute response on the TH(all-clusters-app) Log:
          [1657913412.416960][3126:3126] CHIP:IM: Received Read request
          [1657913412.417086][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913412.417134][3126:3126] CHIP:DMG: {
          [1657913412.417175][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913412.417227][3126:3126] CHIP:DMG:        [
          [1657913412.417271][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913412.417321][3126:3126] CHIP:DMG:                {
          [1657913412.417372][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913412.417428][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913412.417487][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0006,
          [1657913412.417542][3126:3126] CHIP:DMG:                }
          [1657913412.417593][3126:3126] CHIP:DMG:
          [1657913412.417642][3126:3126] CHIP:DMG:        ],
          [1657913412.417693][3126:3126] CHIP:DMG:
          [1657913412.417740][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913412.417786][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913412.417822][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read on-off-transition-time 1 1
          Verify DUT receives on-off-transition-time  attribute response on the TH(all-clusters-app) Log:
          [1657913438.117302][3126:3126] CHIP:IM: Received Read request
          [1657913438.117462][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913438.117526][3126:3126] CHIP:DMG: {
          [1657913438.117718][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913438.117782][3126:3126] CHIP:DMG:        [
          [1657913438.117841][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913438.117907][3126:3126] CHIP:DMG:                {
          [1657913438.117976][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913438.118061][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913438.118137][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0010,
          [1657913438.118206][3126:3126] CHIP:DMG:                }
          [1657913438.118279][3126:3126] CHIP:DMG:
          [1657913438.118347][3126:3126] CHIP:DMG:        ],
          [1657913438.118415][3126:3126] CHIP:DMG:
          [1657913438.118474][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913438.118535][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913438.118592][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read on-transition-time 1 1
          Verify DUT receives on-transition-time  attribute response on the TH(all-clusters-app) Log:
          [1657913454.127158][3126:3126] CHIP:IM: Received Read request
          [1657913454.127241][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913454.127268][3126:3126] CHIP:DMG: {
          [1657913454.127291][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913454.127317][3126:3126] CHIP:DMG:        [
          [1657913454.127341][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913454.127368][3126:3126] CHIP:DMG:                {
          [1657913454.127396][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913454.127461][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913454.127497][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0012,
          [1657913454.127528][3126:3126] CHIP:DMG:                }
          [1657913454.127556][3126:3126] CHIP:DMG:
          [1657913454.127582][3126:3126] CHIP:DMG:        ],
          [1657913454.127610][3126:3126] CHIP:DMG:
          [1657913Verify in DUT as client side: 454.127636][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913454.127661][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913454.127685][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read off-transition-time 1 1
          Verify DUT receives off-transition-time  attribute response on the TH(all-clusters-app) Log:
          [1657913518.488375][3126:3126] CHIP:IM: Received Read request
          [1657913518.488457][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913518.488486][3126:3126] CHIP:DMG: {
          [1657913518.488508][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913518.488534][3126:3126] CHIP:DMG:        [
          [1657913518.488558][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913518.488585][3126:3126] CHIP:DMG:                {
          [1657913518.488613][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913518.488649][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913518.488678][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0013,
          [1657913518.488705][3126:3126] CHIP:DMG:                }
          [1657913518.488733][3126:3126] CHIP:DMG:
          [1657913518.488757][3126:3126] CHIP:DMG:        ],
          [1657913518.488785][3126:3126] CHIP:DMG:
          [1657913518.488812][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913518.488837][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913518.488860][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read default-move-rate 1 1
          Verify DUT receives default-move-rate  attribute response on the TH(all-clusters-app) Log:
          [1657913537.304689][3126:3126] CHIP:IM: Received Read request
          [1657913537.304828][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913537.304884][3126:3126] CHIP:DMG: {
          [1657913537.304931][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913537.304996][3126:3126] CHIP:DMG:        [
          [1657913537.305047][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913537.305108][3126:3126] CHIP:DMG:                {
          [1657913537.305171][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913537.305238][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913537.305304][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0014,
          [1657913537.305372][3126:3126] CHIP:DMG:                }
          [1657913537.305434][3126:3126] CHIP:DMG:
          [1657913537.305607][3126:3126] CHIP:DMG:        ],
          [1657913537.305675][3126:3126] CHIP:DMG:
          [1657913537.305729][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913537.305787][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913537.305836][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read start-up-current-level 1 1
          Verify DUT receives start-up-current-level   attribute response on the TH(all-clusters-app) Log:
          [1657913554.968190][3126:3126] CHIP:IM: Received Read request
          [1657913554.968312][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913554.968343][3126:3126] CHIP:DMG: {
          [1657913554.968366][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913554.968393][3126:3126] CHIP:DMG:        [
          [1657913554.968416][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913554.968444][3126:3126] CHIP:DMG:                {
          [1657913554.968473][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913554.968513][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913554.968546][3126:3126] CHIP:DMG:                        Attribute = 0x0000_4000,
          [1657913554.968569][3126:3126] CHIP:DMG:                }
          [1657913554.968594][3126:3126] CHIP:DMG:
          [1657913554.968617][3126:3126] CHIP:DMG:        ],
          [1657913554.968679][3126:3126] CHIP:DMG:
          [1657913554.968717][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913554.968743][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913554.968766][3126:3126] CHIP:DMG: },
      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 levelcontrol write on-level 5 (replace with your value) 1 1
          Verify DUT receives on-level attribute write response on the TH(all-clusters-app) Log:
          [1657913667.893875][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913667.893923][3126:3126] CHIP:DMG: {
          [1657913667.893965][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913667.894013][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913667.894058][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913667.894112][3126:3126] CHIP:DMG:        [
          [1657913667.894157][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913667.894213][3126:3126] CHIP:DMG:                {
          [1657913667.894264][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913667.894322][3126:3126] CHIP:DMG:                        {
          [1657913667.894495][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913667.894561][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913667.894622][3126:3126] CHIP:DMG:                                Attribute = 0x0000_0011,
          [1657913667.894684][3126:3126] CHIP:DMG:                        }
          [1657913667.894744][3126:3126] CHIP:DMG:
          [1657913667.894808][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913667.894866][3126:3126] CHIP:DMG:                },
          [1657913667.894914][3126:3126] CHIP:DMG:
          [1657913667.894957][3126:3126] CHIP:DMG:        ],
          [1657913667.895010][3126:3126] CHIP:DMG:
          [1657913667.895055][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913667.895105][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913667.895148][3126:3126] CHIP:DMG: },
      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: |
          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 levelcontrol write on-off-transition-time 5 (replace with your own value) 123123 1
          Verify DUT receives on-off-transition-time attribute write response on the TH(all-clusters-app) Log:
          [1657913716.044424][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913716.044478][3126:3126] CHIP:DMG: {
          [1657913716.044527][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913716.044583][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913716.044634][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913716.044696][3126:3126] CHIP:DMG:        [
          [1657913716.044748][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913716.044806][3126:3126] CHIP:DMG:                {
          [1657913716.044860][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913716.044932][3126:3126] CHIP:DMG:                        {
          [1657913716.044994][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913716.045061][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913716.045137][3126:3126] CHIP:DMG:                                Attribute = 0x0000_0010,
          [1657913716.045202][3126:3126] CHIP:DMG:                        }
          [1657913716.045270][3126:3126] CHIP:DMG:
          [1657913716.045344][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913716.045407][3126:3126] CHIP:DMG:                },
          [1657913716.045468][3126:3126] CHIP:DMG:
          [1657913716.045519][3126:3126] CHIP:DMG:        ],
          [1657913716.045579][3126:3126] CHIP:DMG:
          [1657913716.045630][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913716.045683][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913716.045732][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol write on-transition-time 5 (replace with your value) 1 1
          Verify DUT receives on-transition-time attribute write response on the TH(all-clusters-app) Log:
          [1657913743.728014][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913743.728046][3126:3126] CHIP:DMG: {
          [1657913743.728145][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913743.728179][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913743.728239][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913743.728279][3126:3126] CHIP:DMG:        [
          [1657913743.728308][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913743.728351][3126:3126] CHIP:DMG:                {
          [1657913743.728383][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913743.728423][3126:3126] CHIP:DMG:                        {
          [1657913743.728467][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913743.728512][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913743.728553][3126:3126] CHIP:DMG:                                Attribute = 0x0000_0012,
          [1657913743.728591][3126:3126] CHIP:DMG:                        }
          [1657913743.728631][3126:3126] CHIP:DMG:
          [1657913743.728671][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913743.728710][3126:3126] CHIP:DMG:                },
          [1657913743.728746][3126:3126] CHIP:DMG:
          [1657913743.728775][3126:3126] CHIP:DMG:        ],
          [1657913743.728811][3126:3126] CHIP:DMG:
          [1657913743.728842][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913743.728872][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913743.728901][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol write off-transition-time 5 1 1
          Verify DUT receives off-transition-time attribute write response on the TH(all-clusters-app) Log:

          [1657913763.836957][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913763.837010][3126:3126] CHIP:DMG: {
          [1657913763.837058][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913763.837119][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913763.837170][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913763.837230][3126:3126] CHIP:DMG:        [
          [1657913763.837361][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913763.837424][3126:3126] CHIP:DMG:                {
          [1657913763.837478][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913763.837544][3126:3126] CHIP:DMG:                        {
          [1657913763.837580][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913763.837613][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913763.837645][3126:3126] CHIP:DMG:                                Attribute = 0x0000_0013,
          [1657913763.837755][3126:3126] CHIP:DMG:                        }
          [1657913763.837790][3126:3126] CHIP:DMG:
          [1657913763.837822][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913763.837850][3126:3126] CHIP:DMG:                },
          [1657913763.837880][3126:3126] CHIP:DMG:
          [1657913763.837904][3126:3126] CHIP:DMG:        ],
          [1657913763.837932][3126:3126] CHIP:DMG:
          [1657913763.837956][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913763.837981][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913763.838004][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol write default-move-rate 5 1 1
          Verify DUT receives default-move-rate attribute write response on the TH(all-clusters-app) Log:
          [1657913781.895720][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913781.895799][3126:3126] CHIP:DMG: {
          [1657913781.895824][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913781.895850][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913781.895874][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913781.895904][3126:3126] CHIP:DMG:        [
          [1657913781.895929][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913781.895956][3126:3126] CHIP:DMG:                {
          [1657913781.895982][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913781.896024][3126:3126] CHIP:DMG:                        {
          [1657913781.896147][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913781.896209][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913781.896247][3126:3126] CHIP:DMG:                                Attribute = 0x0000_0014,
          [1657913781.896278][3126:3126] CHIP:DMG:                        }
          [1657913781.896312][3126:3126] CHIP:DMG:
          [1657913781.896345][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913781.896374][3126:3126] CHIP:DMG:                },
          [1657913781.896403][3126:3126] CHIP:DMG:
          [1657913781.896427][3126:3126] CHIP:DMG:        ],
          [1657913781.896503][3126:3126] CHIP:DMG:
          [1657913781.896531][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913781.896558][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913781.896581][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol write start-up-current-level 5 (replace with your value) 123123 1
          Verify DUT receives start-up-current-level attribute write response on the TH(all-clusters-app) Log:
          [1657913811.290764][3126:3126] CHIP:DMG: WriteRequestMessage =
          [1657913811.290809][3126:3126] CHIP:DMG: {
          [1657913811.290850][3126:3126] CHIP:DMG:        suppressResponse = false,
          [1657913811.290898][3126:3126] CHIP:DMG:        timedRequest = false,
          [1657913811.290942][3126:3126] CHIP:DMG:        AttributeDataIBs =
          [1657913811.290995][3126:3126] CHIP:DMG:        [
          [1657913811.291039][3126:3126] CHIP:DMG:                AttributeDataIB =
          [1657913811.291094][3126:3126] CHIP:DMG:                {
          [1657913811.291142][3126:3126] CHIP:DMG:                        AttributePathIB =
          [1657913811.291258][3126:3126] CHIP:DMG:                        {
          [1657913811.291326][3126:3126] CHIP:DMG:                                Endpoint = 0x1,
          [1657913811.291394][3126:3126] CHIP:DMG:                                Cluster = 0x8,
          [1657913811.291455][3126:3126] CHIP:DMG:                                Attribute = 0x0000_4000,
          [1657913811.291512][3126:3126] CHIP:DMG:                        }
          [1657913811.291630][3126:3126] CHIP:DMG:
          [1657913811.291694][3126:3126] CHIP:DMG:                        Data = 5,
          [1657913811.291748][3126:3126] CHIP:DMG:                },
          [1657913811.291805][3126:3126] CHIP:DMG:
          [1657913811.291848][3126:3126] CHIP:DMG:        ],
          [1657913811.291949][3126:3126] CHIP:DMG:
          [1657913811.291992][3126:3126] CHIP:DMG:        moreChunkedMessages = false,
          [1657913811.292017][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913811.292039][3126:3126] CHIP:DMG: },
      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 levelcontrol read current-level 1 1
          Verify DUT receives  current-level attribute response on the TH(all-clusters-minimal-app) Log:
          [1657913862.815749][3126:3126] CHIP:IM: Received Read request
          [1657913862.815884][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913862.815935][3126:3126] CHIP:DMG: {
          [1657913862.815975][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913862.816023][3126:3126] CHIP:DMG:        [
          [1657913862.816107][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913862.816161][3126:3126] CHIP:DMG:                {
          [1657913862.816212][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913862.816268][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913862.816325][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0000,
          [1657913862.816377][3126:3126] CHIP:DMG:                }
          [1657913862.816431][3126:3126] CHIP:DMG:
          [1657913862.816477][3126:3126] CHIP:DMG:        ],
          [1657913862.816527][3126:3126] CHIP:DMG:
          [1657913862.816573][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913862.816619][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913862.816662][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read on-level 1 1
          Verify DUT receives  on-level attribute response on the TH(all-clusters-minimal-app) Log:
          [1657913877.850398][3126:3126] CHIP:IM: Received Read request
          [1657913877.850525][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913877.850574][3126:3126] CHIP:DMG: {
          [1657913877.850614][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913877.850725][3126:3126] CHIP:DMG:        [
          [1657913877.850771][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913877.850821][3126:3126] CHIP:DMG:                {
          [1657913877.850872][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913877.850932][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913877.850989][3126:3126] CHIP:DMG:                        Attribute = 0x0000_0011,
          [1657913877.851048][3126:3126] CHIP:DMG:                }
          [1657913877.851103][3126:3126] CHIP:DMG:
          [1657913877.851153][3126:3126] CHIP:DMG:        ],
          [1657913877.851203][3126:3126] CHIP:DMG:
          [1657913877.851251][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913877.851297][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913877.851343][3126:3126] CHIP:DMG: },
          [1657913877.851471][3126:3126] CHIP:DMG: IM


          ./chip-tool levelcontrol read options 1 1
          Verify DUT receives  options attribute response on the TH(all-clusters-minimal-app) Log:
          [1657913895.195563][3126:3126] CHIP:IM: Received Read request
          [1657913895.195705][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913895.195732][3126:3126] CHIP:DMG: {
          [1657913895.195754][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913895.195780][3126:3126] CHIP:DMG:        [
          [1657913895.195803][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913895.195901][3126:3126] CHIP:DMG:                {
          [1657913895.195932][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913895.195963][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913895.195993][3126:3126] CHIP:DMG:                        Attribute = 0x0000_000F,
          [1657913895.196022][3126:3126] CHIP:DMG:                }
          [1657913895.196073][3126:3126] CHIP:DMG:
          [1657913895.196101][3126:3126] CHIP:DMG:        ],
          [1657913895.196161][3126:3126] CHIP:DMG:
          [1657913895.196189][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913895.196214][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913895.196236][3126:3126] CHIP:DMG: },


          ./chip-tool levelcontrol read attribute-list 1 1
          Verify DUT receives   attribute-list attribute response on the TH(all-clusters-minimal-app) Log:
          [1657913906.648918][3126:3126] CHIP:IM: Received Read request
          [1657913906.649061][3126:3126] CHIP:DMG: ReadRequestMessage =
          [1657913906.649115][3126:3126] CHIP:DMG: {
          [1657913906.649162][3126:3126] CHIP:DMG:        AttributePathIBs =
          [1657913906.649225][3126:3126] CHIP:DMG:        [
          [1657913906.649273][3126:3126] CHIP:DMG:                AttributePathIB =
          [1657913906.649330][3126:3126] CHIP:DMG:                {
          [1657913906.649389][3126:3126] CHIP:DMG:                        Endpoint = 0x1,
          [1657913906.649462][3126:3126] CHIP:DMG:                        Cluster = 0x8,
          [1657913906.649529][3126:3126] CHIP:DMG:                        Attribute = 0x0000_FFFB,
          [1657913906.649569][3126:3126] CHIP:DMG:                }
          [1657913906.649593][3126:3126] CHIP:DMG:
          [1657913906.649618][3126:3126] CHIP:DMG:        ],
          [1657913906.649645][3126:3126] CHIP:DMG:
          [1657913906.649731][3126:3126] CHIP:DMG:        isFabricFiltered = true,
          [1657913906.649757][3126:3126] CHIP:DMG:        InteractionModelRevision = 1
          [1657913906.649781][3126:3126] CHIP:DMG: },
      disabled: true

    - label:
          "DUT reads all supported optional 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)

          TH all-clusters-minimal-app does not support optional attributes
          To verify this behaviour send the below mentioned commands and check the result as unsupported attribute
           ./chip-tool levelcontrol read remaining-time 1 1

           ./chip-tool levelcontrol read min-level 1 1

           ./chip-tool levelcontrol read max-level 1 1

          ./chip-tool levelcontrol read current-frequency 1 1

          ./chip-tool levelcontrol read min-frequency 1 1

           ./chip-tool levelcontrol read max-frequency 1 1

          ./chip-tool levelcontrol read on-off-transition-time 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: |
          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)

          TH all-clusters-minimal-app does not support optional attributes
          To verify this behaviour send the below mentioned commands and check the result as unsupported attribute
           ./chip-tool levelcontrol write on-off-transition-time 5 1 1
           ./chip-tool levelcontrol write on-transition-time 5 1 1
           ./chip-tool levelcontrol write off-transition-time 5 1 1
           ./chip-tool levelcontrol write default-move-rate 5 1 1
           ./chip-tool levelcontrol write start-up-current-level 5 1 1
      disabled: true
