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

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

tests:
    - label: "TH reads VendorName from the DUT."
      PICS: BRBINFO.S.A0001
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-name  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495199.434300][2158:2163] CHIP:TOO:   VendorName: TEST_VENDOR
      disabled: true

    - label: "TH writes VendorName as sample"
      PICS: BRBINFO.S.A0001
      verification: |
          ./chip-tool bridgeddevicebasic write vendor-name sample 1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads VendorName"
      PICS: BRBINFO.S.A0001
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-name  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495199.434300][2158:2163] CHIP:TOO:   VendorName: TEST_VENDOR
      disabled: true

    - label: "TH reads VendorID from the DUT."
      PICS: BRBINFO.S.A0002
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-id  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495322.252171][2177:2182] CHIP:TOO:   VendorID: 65521
      disabled: true

    - label: "TH writes VendorID as 0x0011"
      PICS: BRBINFO.S.A0002
      verification: |
          ./chip-tool bridgeddevicebasic write vendor-name 0x0011 1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads VendorID"
      PICS: BRBINFO.S.A0002
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-id  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495322.252171][2177:2182] CHIP:TOO:   VendorID: 65521
      disabled: true

    - label: "TH reads ProductName from the DUT."
      PICS: BRBINFO.S.A0003
      verification: |
          ./chip-tool bridgeddevicebasic read product-name  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495708.412745][2200:2205] CHIP:TOO:   ProductName: TEST_PRODUCT
      disabled: true

    - label: "TH writes ProductName as newproduct"
      PICS: BRBINFO.S.A0003
      verification: |
          ./chip-tool bridgeddevicebasic write vendor-name ""newproduct"" 1 3

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

          NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote
          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads ProductName"
      PICS: BRBINFO.S.A0003
      verification: |
          ./chip-tool bridgeddevicebasic read product-name  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495708.412745][2200:2205] CHIP:TOO:   ProductName: TEST_PRODUCT
      disabled: true

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

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325
          [1657696463.081791][15476:15481] CHIP:TOO:   NodeLabel: Light 1
      disabled: true

    - label: "TH writes newnode to NodeLabel"
      PICS: BRBINFO.S.A0005
      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:                 },
      disabled: true

    - label: "TH reads NodeLabel"
      PICS: BRBINFO.S.A0005
      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
      disabled: true

    - label: "TH reads HardwareVersion from the DUT."
      PICS: BRBINFO.S.A0007
      verification: |
          ./chip-tool bridgeddevicebasic read hardware-version  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496175.564718][2302:2307] CHIP:TOO:   HardwareVersion: 0
      disabled: true

    - label: "TH writes HardwareVersion as 0x4531"
      PICS: BRBINFO.S.A0007
      verification: |
          ./chip-tool bridgeddevicebasic write hardware-version-string 0x4531  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads HardwareVersion"
      PICS: BRBINFO.S.A0007
      verification: |
          ./chip-tool bridgeddevicebasic write hardware-version-string 0x4531  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496175.564718][2302:2307] CHIP:TOO:   HardwareVersion: 0
      disabled: true

    - label: "TH reads HardwareVersionString from the DUT."
      PICS: BRBINFO.S.A0008
      verification: |
          ./chip-tool bridgeddevicebasic read hardware-version-string  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496257.298675][2315:2320] CHIP:TOO:   HardwareVersionString: TEST_VERSION
      disabled: true

    - label: "TH writes HardwareVersionString as newhardwareversion"
      PICS: BRBINFO.S.A0008
      verification: |
          ./chip-tool bridgeddevicebasic write hardware-version-string newhardwareversion  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads HardwareVersionString"
      PICS: BRBINFO.S.A0008
      verification: |
          ./chip-tool bridgeddevicebasic read hardware-version-string  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496257.298675][2315:2320] CHIP:TOO:   HardwareVersionString: TEST_VERSION
      disabled: true

    - label: "TH reads SoftwareVersion from the DUT."
      PICS: BRBINFO.S.A0009
      verification: |
          ./chip-tool bridgeddevicebasic read software-version 1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496411.609866][2348:2353] CHIP:TOO:   SoftwareVersion: 1
      disabled: true

    - label: "TH writes SoftwareVersion as 0x8213"
      PICS: BRBINFO.S.A0009
      verification: |
          ./chip-tool bridgeddevicebasic write software-version 0x8213  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads SoftwareVersion"
      PICS: BRBINFO.S.A0009
      verification: |
          ./chip-tool bridgeddevicebasic read software-version 1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496411.609866][2348:2353] CHIP:TOO:   SoftwareVersion: 1
      disabled: true

    - label: "TH reads SoftwareVersionString from the DUT."
      PICS: BRBINFO.S.A000a
      verification: |
          ./chip-tool bridgeddevicebasic read software-version-string  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496498.568951][2362:2367] CHIP:TOO:   SoftwareVersionString: 1.0
      disabled: true

    - label: "TH writes SoftwareVersionString as 1.0"
      PICS: BRBINFO.S.A000a
      verification: |
          ./chip-tool bridgeddevicebasic write software-version 1.0  1 3

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


          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads SoftwareVersionString"
      PICS: BRBINFO.S.A000a
      verification: |
          ./chip-tool bridgeddevicebasic read software-version-string  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496498.568951][2362:2367] CHIP:TOO:   SoftwareVersionString: 1.0
      disabled: true

    - label: "TH reads ManufacturingDate from the DUT."
      PICS: BRBINFO.S.A000b
      verification: |
          ./chip-tool bridgeddevicebasic read manufacturing-date  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496661.777852][2388:2393] CHIP:TOO:   ManufacturingDate: 20200101
      disabled: true

    - label: "TH writes ManufacturingDate as 20210814789452IN"
      PICS: BRBINFO.S.A000b
      verification: |
          ./chip-tool bridgeddevicebasic write manufacturing-date  20210814789452IN 1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads ManufacturingDate"
      PICS: BRBINFO.S.A000b
      verification: |
          ./chip-tool bridgeddevicebasic read manufacturing-date  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496661.777852][2388:2393] CHIP:TOO:   ManufacturingDate: 20200101
      disabled: true

    - label: "TH reads PartNumber from the DUT."
      PICS: BRBINFO.S.A000c
      verification: |
          ./chip-tool bridgeddevicebasic read part-number  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1656496800.941788][2405:2410] CHIP:TOO:   PartNumber: 1234
      disabled: true

    - label: "TH writes PartNumber as newpart"
      PICS: BRBINFO.S.A000c
      verification: |
          ./chip-tool bridgeddevicebasic write part-number newpart  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads PartNumber"
      PICS: BRBINFO.S.A000c
      verification: |
          ./chip-tool bridgeddevicebasic read part-number  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656496800.941788][2405:2410] CHIP:TOO:   PartNumber: 1234
      disabled: true

    - label: "TH reads ProductURL from the DUT."
      PICS: BRBINFO.S.A000d
      verification: |
          ./chip-tool bridgeddevicebasic read product-url  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1656497181.118653][2436:2441] CHIP:TOO:   ProductURL: https://example.com/myproduct
      disabled: true

    - label: "TH writes ProductURL as https://www.example.com"
      PICS: BRBINFO.S.A000d
      verification: |
          ./chip-tool bridgeddevicebasic write product-url  https://www.example.com 1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads ProductURL"
      PICS: BRBINFO.S.A000d
      verification: |
          ./chip-tool bridgeddevicebasic read product-url  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656497181.118653][2436:2441] CHIP:TOO:   ProductURL: https://example.com/myproduct
      disabled: true

    - label: "TH reads ProductLabel from the DUT."
      PICS: BRBINFO.S.A000e
      verification: |
          ./chip-tool bridgeddevicebasic read product-label  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1656501313.811305][2602:2607] CHIP:TOO:   ProductLabel: ABCD
      disabled: true

    - label: "TH writes ProductLabel as newproductlabel"
      PICS: BRBINFO.S.A000e
      verification: |
          ./chip-tool bridgeddevicebasic write product-label newproductlabel  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads ProductLabel"
      PICS: BRBINFO.S.A000e
      verification: |
          ./chip-tool bridgeddevicebasic read product-label  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656501313.811305][2602:2607] CHIP:TOO:   ProductLabel: ABCD
      disabled: true

    - label: "TH reads SerialNumber from the DUT."
      PICS: BRBINFO.S.A000f
      verification: |
          ./chip-tool bridgeddevicebasic read serial-number  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1656501452.183890][2624:2630] CHIP:TOO:   SerialNumber: 5678
      disabled: true

    - label: "TH writes SerialNumber_test as newserialnumber"
      PICS: BRBINFO.S.A000f
      verification: |
          ./chip-tool bridgeddevicebasic write serial-number newserialnumber  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads SerialNumber"
      PICS: BRBINFO.S.A000f
      verification: |
          ./chip-tool bridgeddevicebasic read serial-number  1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656501452.183890][2624:2630] CHIP:TOO:   SerialNumber: 5678
      disabled: true

    - label: "TH reads Reachable from the DUT."
      PICS: BRBINFO.S.A0011
      verification: |
          ./chip-tool bridgeddevicebasic read reachable 1 3

          Verify value of reachable is type of bool and its true in TH Log:

          [1659012746.234251][8169:8174] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1363291551
          [1659012746.234309][8169:8174] CHIP:TOO:   Reachable: TRUE
          [1659012746.234420][8169:8174] CHIP:EM: Sending Standalone Ack for MessageCounter:92645971 on exchange 389i
      disabled: true

    - label:
          "TH sends Write request message to DUT to change value of Reachable to
          false."
      PICS: BRBINFO.S.A0011
      verification: |
          ./chip-tool bridgeddevicebasic write-by-id 17   false 1 3



          On TH verify that, TH receives  UNSUPPORTED_WRITE response as status
          [1656496372.884955][2340:2345] CHIP:DMG: }
          [1656496372.885085][2340:2345] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1656496372.885148][2340:2345] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
          [1656496372.885242][2340:2345] CHIP:EM: Sending Standalone Ack for MessageCounter:201795946 on exchange 27637ihe attribute is optional so no example log can be provided.
      disabled: true

    - label: "TH reads Reachable from the DUT."
      PICS: BRBINFO.S.A0011
      verification: |
          ./chip-tool bridgeddevicebasic read reachable 1 3
          On TH verify that the  value of reachable is type is same as 51

          [1659012746.234251][8169:8174] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1363291551
          [1659012746.234309][8169:8174] CHIP:TOO:   Reachable: TRUE
          [1659012746.234420][8169:8174] CHIP:EM: Sending Standalone Ack for MessageCounter:92645971 on exchange 389i
      disabled: true

    - label: "TH reads UniqueID from the DUT."
      PICS: BRBINFO.S.A0012
      verification: |
          ./chip-tool bridgeddevicebasic read unique-id 1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1656501734.253827][2673:2679] CHIP:TOO:   UniqueID: 30789FE4FCF832C9
      disabled: true

    - label: "TH writes UniqueID as newid"
      PICS: BRBINFO.S.A0012
      verification: |
          ./chip-tool bridgeddevicebasic write unique-id newid  1 3

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

          [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
      disabled: true

    - label: "TH reads UniqueID"
      PICS: BRBINFO.S.A0012
      verification: |
          ./chip-tool bridgeddevicebasic read unique-id 1 3

          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1656501734.253827][2673:2679] CHIP:TOO:   UniqueID: 30789FE4FCF832C9
      disabled: true
