# 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.

name: 19.4.1. [TC-APPLAUNCHER-3.5] Catalog List Verification

PICS:
    - APPLAUNCHER.S

config:
    nodeId: 0x12344321
    cluster: "Application Launcher"
    endpoint: 1

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

    # Issue 13029
    #this step implicitly validating the attribute(CatalogList)constraints, as long as the payload is being parsed successfully
    - label:
          "Step 1: TH reads CatalogList attribute from the DUT for the list of
          supported application catalogs and where each entry in the list is a
          CSA-issued Vendor Id of type unsigned 16 bit integer ranging between
          0-65536 for the catalog"
      PICS: APPLAUNCHER.S.A0000
      command: "readAttribute"
      attribute: "CatalogList"
