# 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: 130.2.1. [TC-BRBINFO-2.1] Attributes [DUT-Server]

config:
    nodeId: 0x12344321
    cluster: "Bridged Device Basic"
    endpoint: 3

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

    - label: "TH reads VendorName from the DUT."
      PICS: BRBINFO.S.A0001
      command: "readAttribute"
      attribute: "VendorName"
      response:
          saveAs: VendorNameValue
          constraints:
              type: char_string
              maxLength: 32

    - label: "TH writes VendorName from the DUT."
      PICS: BRBINFO.S.A0001
      command: "writeAttribute"
      attribute: "VendorName"
      arguments:
          value: "sample"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads VendorName from the DUT."
      PICS: BRBINFO.S.A0001
      command: "readAttribute"
      attribute: "VendorName"
      response:
          value: VendorNameValue

    - label: "TH reads VendorID from the DUT."
      PICS: BRBINFO.S.A0002
      command: "readAttribute"
      attribute: "VendorID"
      response:
          saveAs: VendorIDValue
          constraints:
              type: vendor_id
              minValue: 1
              maxValue: 65521

    - label:
          "Verify that VendorID matches the value assigned to this manufacturer"
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && BRBINFO.S.A0002
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH writes VendorID from the DUT."
      PICS: BRBINFO.S.A0002
      command: "writeAttribute"
      attribute: "VendorID"
      arguments:
          value: 0x0011
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads VendorID from the DUT."
      PICS: BRBINFO.S.A0002
      command: "readAttribute"
      attribute: "VendorID"
      response:
          value: VendorIDValue

    - label: "TH reads ProductName from the DUT"
      PICS: BRBINFO.S.A0003
      command: "readAttribute"
      attribute: "ProductName"
      response:
          saveAs: ProductNameValue
          constraints:
              type: char_string
              maxLength: 32

    - label: "TH writes ProductName from the DUT."
      PICS: BRBINFO.S.A0003
      command: "writeAttribute"
      attribute: "ProductName"
      arguments:
          value: "newproduct"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads ProductName from the DUT"
      PICS: BRBINFO.S.A0003
      command: "readAttribute"
      attribute: "ProductName"
      response:
          value: ProductNameValue

    - label: "TH reads NodeLabel from the DUT"
      PICS: BRBINFO.S.A0005
      command: "readAttribute"
      attribute: "NodeLabel"
      response:
          saveAs: NodeLabelValue
          constraints:
              type: char_string
              maxLength: 32

    #Issue https://github.com/project-chip/connectedhomeip/issues/23509
    - label: "TH writes NodeLabel from the DUT."
      PICS: BRBINFO.S.A0005 && PICS_USER_PROMPT
      verification: |
          ./chip-tool bridgeddevicebasic write node-label '"newnode"' 1 3

          Verify response has unsupported write on TH(chip-tool) Log:

          NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote


          [1660839701.840432][2444:2449] CHIP:DMG:                         }
          [1660839701.840505][2444:2449] CHIP:DMG:
          [1660839701.840578][2444:2449] CHIP:DMG:                         StatusIB =
          [1660839701.840661][2444:2449] CHIP:DMG:                         {
          [1660839701.840742][2444:2449] CHIP:DMG:                                 status = 0x88 (UNSUPPORTED_WRITE),
          [1660839701.840827][2444:2449] CHIP:DMG:                         },
          [1660839701.840905][2444:2449] CHIP:DMG:
          [1660839701.840973][2444:2449] CHIP:DMG:                 },
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads NodeLabel from the DUT"
      PICS: BRBINFO.S.A0005 && PICS_USER_PROMPT
      verification: |
          ./chip-tool bridgeddevicebasic read node-label 1 3

          Verify the value of node-label is type of string and contains length between 0 and 32 in TH(chip-tool) Log:

          [1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325
          [1657696463.081791][15476:15481] CHIP:TOO:   NodeLabel: newnode
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads HardwareVersion from the DUT"
      PICS: BRBINFO.S.A0007
      command: "readAttribute"
      attribute: "HardwareVersion"
      response:
          saveAs: HardwareVersionValue
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65534

    - label: "TH writes HardwareVersion from the DUT."
      PICS: BRBINFO.S.A0007
      command: "writeAttribute"
      attribute: "HardwareVersion"
      arguments:
          value: 0x4531
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads HardwareVersion from the DUT"
      PICS: BRBINFO.S.A0007
      command: "readAttribute"
      attribute: "HardwareVersion"
      response:
          value: HardwareVersionValue

    - label: "TH reads HardwareVersionString from the DUT."
      PICS: BRBINFO.S.A0008
      command: "readAttribute"
      attribute: "HardwareVersionString"
      response:
          saveAs: HardwareVersionStringValue
          constraints:
              type: char_string
              minLength: 1
              maxLength: 64

    - label: "TH writes HardwareVersionString from the DUT."
      PICS: BRBINFO.S.A0008
      command: "writeAttribute"
      attribute: "HardwareVersionString"
      arguments:
          value: "newhardwareversion"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads HardwareVersionString from the DUT."
      PICS: BRBINFO.S.A0008
      command: "readAttribute"
      attribute: "HardwareVersionString"
      response:
          value: HardwareVersionStringValue

    - label: "TH reads SoftwareVersion from the DUT"
      PICS: BRBINFO.S.A0009
      command: "readAttribute"
      attribute: "SoftwareVersion"
      response:
          saveAs: SoftwareVersionValue
          constraints:
              minValue: 0
              maxValue: 4294967294

    - label: "TH writes SoftwareVersion from the DUT."
      PICS: BRBINFO.S.A0009
      command: "writeAttribute"
      attribute: "SoftwareVersion"
      arguments:
          value: 0x8213
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads SoftwareVersion from the DUT"
      PICS: BRBINFO.S.A0009
      command: "readAttribute"
      attribute: "SoftwareVersion"
      response:
          value: SoftwareVersionValue

    - label: "TH reads SoftwareVersionString from the DUT"
      PICS: BRBINFO.S.A000a
      command: "readAttribute"
      attribute: "SoftwareVersionString"
      response:
          saveAs: SoftwareVersionStringValue
          constraints:
              minLength: 1
              maxLength: 64

    - label: "TH writes SoftwareVersionString from the DUT."
      PICS: BRBINFO.S.A000a
      command: "writeAttribute"
      attribute: "SoftwareVersionString"
      arguments:
          value: "1.0"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads SoftwareVersionString from the DUT"
      PICS: BRBINFO.S.A000a
      command: "readAttribute"
      attribute: "SoftwareVersionString"
      response:
          value: SoftwareVersionStringValue

    - label: "TH reads ManufacturingDate from the DUT."
      PICS: BRBINFO.S.A000b
      command: "readAttribute"
      attribute: "ManufacturingDate"
      response:
          saveAs: ManufacturingDateValue
          constraints:
              type: char_string
              minLength: 8
              maxLength: 16

    - label:
          "Verify if the first 8 characters specify date according to ISO 8601,
          i.e, YYYYMMDD."
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && BRBINFO.S.A000b
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH writes ManufacturingDate from the DUT."
      PICS: BRBINFO.S.A000b
      command: "writeAttribute"
      attribute: "ManufacturingDate"
      arguments:
          value: "20210814789452IN"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads ManufacturingDate from the DUT."
      PICS: BRBINFO.S.A000b
      command: "readAttribute"
      attribute: "ManufacturingDate"
      response:
          value: ManufacturingDateValue

    - label: "TH reads PartNumber from the DUT"
      PICS: BRBINFO.S.A000c
      command: "readAttribute"
      attribute: "PartNumber"
      response:
          saveAs: PartNumberValue
          constraints:
              type: char_string
              maxLength: 32

    - label: "TH writes PartNumber from the DUT."
      PICS: BRBINFO.S.A000c
      command: "writeAttribute"
      attribute: "PartNumber"
      arguments:
          value: "newpart"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads PartNumber from the DUT"
      PICS: BRBINFO.S.A000c
      command: "readAttribute"
      attribute: "PartNumber"
      response:
          value: PartNumberValue

    - label: "TH reads ProductURL from the DUT"
      PICS: BRBINFO.S.A000d
      command: "readAttribute"
      attribute: "ProductURL"
      response:
          saveAs: ProductURLValue
          constraints:
              type: long_char_string
              maxLength: 256

    - label:
          "Verify that it specifies a link to a specific web page, Verify that
          it follows the syntax rules specified in RFC 3986."
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && BRBINFO.S.A000d
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH writes ProductURL from the DUT."
      PICS: BRBINFO.S.A000d
      command: "writeAttribute"
      attribute: "ProductURL"
      arguments:
          value: "https://www.example.com"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads ProductURL from the DUT"
      PICS: BRBINFO.S.A000d
      command: "readAttribute"
      attribute: "ProductURL"
      response:
          value: ProductURLValue

    - label: "TH reads ProductLabel from the DUT."
      PICS: BRBINFO.S.A000e
      command: "readAttribute"
      attribute: "ProductLabel"
      response:
          saveAs: ProductLabelValue
          constraints:
              type: char_string
              maxLength: 64

    - label:
          "Verify that it does not include the name of the vendor as defined
          within the VendorName attribute"
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && BRBINFO.S.A000e
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH writes ProductLabel from the DUT."
      PICS: BRBINFO.S.A000e
      command: "writeAttribute"
      attribute: "ProductLabel"
      arguments:
          value: "newproductlabel"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads ProductLabel from the DUT."
      PICS: BRBINFO.S.A000e
      command: "readAttribute"
      attribute: "ProductLabel"
      response:
          value: ProductLabelValue

    - label: "TH reads SerialNumber from the DUT."
      PICS: BRBINFO.S.A000f
      command: "readAttribute"
      attribute: "SerialNumber"
      response:
          saveAs: SerialNumberValue
          constraints:
              type: char_string
              maxLength: 32

    - label: "TH writes SerialNumber from the DUT."
      PICS: BRBINFO.S.A000f
      command: "writeAttribute"
      attribute: "SerialNumber"
      arguments:
          value: "newserialnumber"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads SerialNumber from the DUT."
      PICS: BRBINFO.S.A000f
      command: "readAttribute"
      attribute: "SerialNumber"
      response:
          value: SerialNumberValue

    - label: "TH reads Reachable from the DUT."
      PICS: BRBINFO.S.A0011
      command: "readAttribute"
      attribute: "Reachable"
      response:
          value: true
          constraints:
              type: boolean

    - label:
          "TH sends Write request message to DUT to change value of Reachable to
          false"
      PICS: BRBINFO.S.A0011
      command: "writeAttribute"
      attribute: "Reachable"
      arguments:
          value: false
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads Reachable from the DUT."
      PICS: BRBINFO.S.A0011
      command: "readAttribute"
      attribute: "Reachable"
      response:
          value: true
          constraints:
              type: boolean

    - label: "TH reads UniqueID from the DUT."
      PICS: BRBINFO.S.A0012
      command: "readAttribute"
      attribute: "UniqueID"
      response:
          saveAs: UniqueIDValue
          constraints:
              type: char_string
              maxLength: 32

    - label: "TH writes UniqueID from the DUT."
      PICS: BRBINFO.S.A0012
      command: "writeAttribute"
      attribute: "UniqueID"
      arguments:
          value: "newid"
      response:
          error: UNSUPPORTED_WRITE

    - label: "TH reads UniqueID from the DUT."
      PICS: BRBINFO.S.A0012
      command: "readAttribute"
      attribute: "UniqueID"
      response:
          value: UniqueIDValue
