# 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 Information"
    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: "DUT reads DataModelRevision from the TH"
      PICS: BINFO.C.A0000
      wait: "readAttribute"
      attribute: "DataModelRevision"

    - label: "DUT reads VendorName from the TH"
      PICS: BINFO.C.A0001
      wait: "readAttribute"
      attribute: "VendorName"

    - label: "DUT reads VendorID from the TH"
      PICS: BINFO.C.A0002
      wait: "readAttribute"
      attribute: "VendorID"

    - label: "DUT reads ProductName from the TH"
      PICS: BINFO.C.A0003
      wait: "readAttribute"
      attribute: "ProductName"

    - label: "DUT reads ProductID from the TH"
      PICS: BINFO.C.A0004
      wait: "readAttribute"
      attribute: "ProductID"

    - label: "DUT reads NodeLabel from the TH"
      PICS: BINFO.C.A0005
      wait: "readAttribute"
      attribute: "NodeLabel"

    - label: "DUT reads Location from the TH"
      PICS: BINFO.C.A0006
      wait: "readAttribute"
      attribute: "Location"

    - label: "DUT reads HardwareVersion from the TH"
      PICS: BINFO.C.A0007
      wait: "readAttribute"
      attribute: "HardwareVersion"

    - label: "DUT reads HardwareVersionString from the TH"
      PICS: BINFO.C.A0008
      wait: "readAttribute"
      attribute: "HardwareVersionString"

    - label: "DUT reads SoftwareVersion from the TH"
      PICS: BINFO.C.A0009
      wait: "readAttribute"
      attribute: "SoftwareVersion"

    - label: "DUT reads SoftwareVersionString from the TH"
      PICS: BINFO.C.A000a
      wait: "readAttribute"
      attribute: "SoftwareVersionString"

    - label: "DUT reads ManufacturingDate from the TH"
      PICS: BINFO.C.A000b
      wait: "readAttribute"
      attribute: "ManufacturingDate"

    - label: "DUT reads PartNumber from the TH"
      PICS: BINFO.C.A000c
      wait: "readAttribute"
      attribute: "PartNumber"

    - label: "DUT reads ProductURL from the TH"
      PICS: BINFO.C.A000d
      wait: "readAttribute"
      attribute: "ProductURL"

    - label: "DUT reads ProductLabel from the TH"
      PICS: BINFO.C.A000e
      wait: "readAttribute"
      attribute: "ProductLabel"

    - label: "DUT reads SerialNumber from the TH"
      PICS: BINFO.C.A000f
      wait: "readAttribute"
      attribute: "SerialNumber"

    - label: "DUT reads LocalConfigDisabled from the TH"
      PICS: BINFO.C.A0010
      wait: "readAttribute"
      attribute: "LocalConfigDisabled"

    - label: "DUT reads Reachable from the TH"
      PICS: BINFO.C.A0011
      wait: "readAttribute"
      attribute: "Reachable"

    - label: "DUT reads UniqueID from the TH"
      PICS: BINFO.C.A0012
      wait: "readAttribute"
      attribute: "UniqueID"

    - label: "DUT reads CapabilityMinima from the TH"
      PICS: BINFO.C.A0013
      wait: "readAttribute"
      attribute: "CapabilityMinima"
