# 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: 127.2.2. [TC-ACL-2.2] Cluster endpoint

PICS:
    - ACL.S

config:
    nodeId: 0x12344321
    cluster: "Access Control"
    endpoint: 0

tests:
    - label: "Wait for the commissioned device to be retrieved"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label:
          "TH1 reads DUT Descriptor cluster ServerList attribute from Endpoint 0"
      command: "readAttribute"
      cluster: "Descriptor"
      attribute: "ServerList"
      response:
          constraints:
              type: list
              contains: [31]

    #Endpoint configuration is not supported in YAML
    - label:
          "TH1 reads DUT Descriptor cluster ServerList attribute from every
          Endpoint except 0"
      verification: |
          ./chip-tool  descriptor read server-list 1 1


          On TH1(Chiptool) ,Verify the serverList attribute of Descriptor Cluster without  an element of 31( 0x001F)

          [1656412927.698026][3383:3388] CHIP:DMG:        SuppressResponse = true,
          [1656412927.698052][3383:3388] CHIP:DMG:        InteractionModelRevision = 1
          [1656412927.698076][3383:3388] CHIP:DMG: }
          [1656412927.698852][3383:3388] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 239898735
          [1656412927.698963][3383:3388] CHIP:TOO:   server list: 44 entries
          [1656412927.698997][3383:3388] CHIP:TOO:     [1]: 3
          [1656412927.699023][3383:3388] CHIP:TOO:     [2]: 4
          [1656412927.699050][3383:3388] CHIP:TOO:     [3]: 5
          [1656412927.699075][3383:3388] CHIP:TOO:     [4]: 6
          [1656412927.699101][3383:3388] CHIP:TOO:     [5]: 7
          [1656412927.699127][3383:3388] CHIP:TOO:     [6]: 8
          [1656412927.699153][3383:3388] CHIP:TOO:     [7]: 15
          [1656412927.699179][3383:3388] CHIP:TOO:     [8]: 29
          [1656412927.699205][3383:3388] CHIP:TOO:     [9]: 30
          [1656412927.699231][3383:3388] CHIP:TOO:     [10]: 37
          [1656412927.699258][3383:3388] CHIP:TOO:     [11]: 47
          [1656412927.699284][3383:3388] CHIP:TOO:     [12]: 59
          [1656412927.699310][3383:3388] CHIP:TOO:     [13]: 64
          [1656412927.699336][3383:3388] CHIP:TOO:     [14]: 65
          [1656412927.699361][3383:3388] CHIP:TOO:     [15]: 69
          [1656412927.699387][3383:3388] CHIP:TOO:     [16]: 80
          [1656412927.699414][3383:3388] CHIP:TOO:     [17]: 257
          [1656412927.699440][3383:3388] CHIP:TOO:     [18]: 258
          [1656412927.699466][3383:3388] CHIP:TOO:     [19]: 259
          [1656412927.699492][3383:3388] CHIP:TOO:     [20]: 512
          [1656412927.699518][3383:3388] CHIP:TOO:     [21]: 513
          [1656412927.699544][3383:3388] CHIP:TOO:     [22]: 514
          [1656412927.699571][3383:3388] CHIP:TOO:     [23]: 516
          [1656412927.699596][3383:3388] CHIP:TOO:     [24]: 768
          [1656412927.699623][3383:3388] CHIP:TOO:     [25]: 1024
          [1656412927.699649][3383:3388] CHIP:TOO:     [26]: 1026
          [1656412927.699675][3383:3388] CHIP:TOO:     [27]: 1027
          [1656412927.699701][3383:3388] CHIP:TOO:     [28]: 1028
          [1656412927.699727][3383:3388] CHIP:TOO:     [29]: 1029
          [1656412927.699754][3383:3388] CHIP:TOO:     [30]: 1030
          [1656412927.699780][3383:3388] CHIP:TOO:     [31]: 1283
          [1656412927.699806][3383:3388] CHIP:TOO:     [32]: 1284
          [1656412927.699832][3383:3388] CHIP:TOO:     [33]: 1285
          [1656412927.699858][3383:3388] CHIP:TOO:     [34]: 1286
          [1656412927.699884][3383:3388] CHIP:TOO:     [35]: 1287
          [1656412927.699911][3383:3388] CHIP:TOO:     [36]: 1288
          [1656412927.699937][3383:3388] CHIP:TOO:     [37]: 1289
          [1656412927.699963][3383:3388] CHIP:TOO:     [38]: 1290
          [1656412927.700002][3383:3388] CHIP:TOO:     [39]: 1291
          [1656412927.700029][3383:3388] CHIP:TOO:     [40]: 1292
          [1656412927.700056][3383:3388] CHIP:TOO:     [41]: 1293
          [1656412927.700082][3383:3388] CHIP:TOO:     [42]: 1294
          [1656412927.700108][3383:3388] CHIP:TOO:     [43]: 2820
          [1656412927.700134][3383:3388] CHIP:TOO:     [44]: 4294048773
          [1656412927.700251][3383:3388] CHIP:EM: Sending Standalone Ack for MessageCounter:186152197 on exchange 39489i
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT
      arguments:
          values:
              - name: "message"
                value: "Factory Reset the DUT and enter 'y' after success"
              - name: "expectedValue"
                value: "y"
