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

PICS:
    - BRBINFO.S

config:
    nodeId: 0x12344321
    cluster: "Bridged Device Basic Information"
    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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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
