# 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: 3.3.1. [TC-ULABEL-3.1] User label cluster [DUT-client]

PICS:
    - ULABEL.C

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

tests:
    - label: "DUT reads LabelList from the TH"
      PICS: ULABEL.C.A0000
      verification: |
          ./chip-tool userlabel read label-list 1 0


          Verify in DUT as client side: Verify that DUT reads LabelList from the TH successfully


          [1651124790.936078][2829:2834] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_0000 DataVersion: 953549512
          [1651124790.936142][2829:2834] CHIP:TOO:   label list: 0 entries
          [1651124790.936236][2829:2834] CHIP:EM: Sending Standalone Ack for MessageCounter:5651248 on exchange 8394i
      disabled: true

    - label:
          "DUT sends a write request to the TH to write to an entry in the
          LabelList"
      PICS: ULABEL.C.A0000
      verification: |
          ./chip-tool userlabel write label-list "[{"label":"room", "value":"bedroom 1"}, {"label":"orientation", "value":"east"}]" 1 0


          Verify in DUT as client side: Verify that DUT is able to write to the LabelList entries successfully


          [1657187118.343190][4999:5005] CHIP:DMG: WriteResponseMessage =
          [1657187118.343215][4999:5005] CHIP:DMG: {
          [1657187118.343237][4999:5005] CHIP:DMG:         AttributeStatusIBs =
          [1657187118.343267][4999:5005] CHIP:DMG:         [
          [1657187118.343291][4999:5005] CHIP:DMG:                 AttributeStatusIB =
          [1657187118.343318][4999:5005] CHIP:DMG:                 {
          [1657187118.343343][4999:5005] CHIP:DMG:                         AttributePathIB =
          [1657187118.343372][4999:5005] CHIP:DMG:                         {
          [1657187118.343407][4999:5005] CHIP:DMG:                                 Endpoint = 0x0,
          [1657187118.343441][4999:5005] CHIP:DMG:                                 Cluster = 0x41,
          [1657187118.343516][4999:5005] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1657187118.343548][4999:5005] CHIP:DMG:                         }
          [1657187118.343582][4999:5005] CHIP:DMG:
          [1657187118.343612][4999:5005] CHIP:DMG:                         StatusIB =
          [1657187118.343642][4999:5005] CHIP:DMG:                         {
          [1657187118.343673][4999:5005] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657187118.343706][4999:5005] CHIP:DMG:                         },
          [1657187118.343736][4999:5005] CHIP:DMG:
          [1657187118.343760][4999:5005] CHIP:DMG:                 },
          [1657187118.343794][4999:5005] CHIP:DMG:
          [1657187118.343818][4999:5005] CHIP:DMG:                 AttributeStatusIB =
          [1657187118.343846][4999:5005] CHIP:DMG:                 {
          [1657187118.343872][4999:5005] CHIP:DMG:                         AttributePathIB =
          [1657187118.343903][4999:5005] CHIP:DMG:                         {
          [1657187118.343934][4999:5005] CHIP:DMG:                                 Endpoint = 0x0,
          [1657187118.343969][4999:5005] CHIP:DMG:                                 Cluster = 0x41,
          [1657187118.344002][4999:5005] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1657187118.344036][4999:5005] CHIP:DMG:                                 ListIndex = Null,
          [1657187118.344065][4999:5005] CHIP:DMG:                         }
          [1657187118.344098][4999:5005] CHIP:DMG:
          [1657187118.344127][4999:5005] CHIP:DMG:                         StatusIB =
          [1657187118.344155][4999:5005] CHIP:DMG:                         {
          [1657187118.344186][4999:5005] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657187118.344214][4999:5005] CHIP:DMG:                         },
          [1657187118.344243][4999:5005] CHIP:DMG:
          [1657187118.344270][4999:5005] CHIP:DMG:                 },
          [1657187118.344327][4999:5005] CHIP:DMG:
          [1657187118.344385][4999:5005] CHIP:DMG:                 AttributeStatusIB =
          [1657187118.344458][4999:5005] CHIP:DMG:                 {
          [1657187118.344524][4999:5005] CHIP:DMG:                         AttributePathIB =
          [1657187118.344598][4999:5005] CHIP:DMG:                         {
          [1657187118.344674][4999:5005] CHIP:DMG:                                 Endpoint = 0x0,
          [1657187118.344864][4999:5005] CHIP:DMG:                                 Cluster = 0x41,
          [1657187118.344954][4999:5005] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1657187118.345030][4999:5005] CHIP:DMG:                                 ListIndex = Null,
          [1657187118.345110][4999:5005] CHIP:DMG:                         }
          [1657187118.345192][4999:5005] CHIP:DMG:
          [1657187118.345263][4999:5005] CHIP:DMG:                         StatusIB =
          [1657187118.345337][4999:5005] CHIP:DMG:                         {
          [1657187118.345410][4999:5005] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657187118.345487][4999:5005] CHIP:DMG:                         },
          [1657187118.345559][4999:5005] CHIP:DMG:
          [1657187118.345625][4999:5005] CHIP:DMG:                 },
          [1657187118.345699][4999:5005] CHIP:DMG:
          [1657187118.345757][4999:5005] CHIP:DMG:         ],
          [1657187118.345844][4999:5005] CHIP:DMG:
          [1657187118.345902][4999:5005] CHIP:DMG:         InteractionModelRevision = 1
          [1657187118.345960][4999:5005] CHIP:DMG: }
          [1657187118.346260][4999:5005] CHIP:DMG: WriteClient moving to [AwaitingDe]
      disabled: true
