# 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: 11.2.3. [TC-BINFO-2.3] Attributes [DUT-Client]

PICS:
    - BINFO.C

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

tests:
    - label: "Wait for the device to be commissioned"
      cluster: "DelayCommands"
      command: "WaitForCommissioning"

    - label: "Log OnOff Test Startup"
      cluster: "LogCommands"
      command: "Log"
      arguments:
          values:
              - name: "message"
                value: "*** Basic Cluster Tests Ready"

    - label: "Query Data Model Revision"
      wait: "readAttribute"
      attribute: "DataModelRevision"

    - label: "Query Vendor Name"
      wait: "readAttribute"
      attribute: "VendorName"

    - label: "Query VendorID"
      wait: "readAttribute"
      attribute: "VendorID"

    - label: "Query Product Name"
      wait: "readAttribute"
      attribute: "ProductName"

    - label: "Query ProductID"
      wait: "readAttribute"
      attribute: "ProductID"

    - label: "Query Node Label"
      wait: "readAttribute"
      attribute: "NodeLabel"

    - label: "Query User Location"
      wait: "readAttribute"
      attribute: "Location"

    - label: "Query HardwareVersion"
      wait: "readAttribute"
      attribute: "HardwareVersion"

    - label: "Query HardwareVersionString"
      wait: "readAttribute"
      attribute: "HardwareVersionString"

    - label: "Query SoftwareVersion"
      wait: "readAttribute"
      attribute: "SoftwareVersion"

    - label: "Query SoftwareVersionString"
      wait: "readAttribute"
      attribute: "SoftwareVersionString"

    - label: "Query ManufacturingDate"
      wait: "readAttribute"
      attribute: "ManufacturingDate"

    - label: "Query PartNumber"
      wait: "readAttribute"
      attribute: "PartNumber"

    - label: "Query ProductURL"
      wait: "readAttribute"
      attribute: "ProductURL"

    - label: "Query ProductLabel"
      wait: "readAttribute"
      attribute: "ProductLabel"

    - label: "Query SerialNumber"
      wait: "readAttribute"
      attribute: "SerialNumber"

    - label: "Query LocalConfigDisabled"
      wait: "readAttribute"
      attribute: "LocalConfigDisabled"

    - label: "Query Reachable"
      wait: "readAttribute"
      attribute: "Reachable"

    - label: "Query UniqueID"
      wait: "readAttribute"
      attribute: "UniqueID"
