# 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.1.15. [TC-DD-1.15] Onboarding Payload Verification - Unique Discriminator
    and Passcode Values    [DUT - Commissionee]

PICS:
    - MCORE.ROLE.COMMISSIONEE

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

tests:
    - label: "Preconditions"
      verification: |
          1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual) through a QR Code, a manually entered code or as content in an NFC tag.
      disabled: true

    - label:
          "Using the TH Onboarding payload reader, scan or read the Onboarding
          payload from DUT1"
      verification: |
          1. Parse payload for DUT1

          $  ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00
          Verify in TH as commissioner side:

          [1651194471211] [16050:465158] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00
          [1651194471211] [16050:465158] CHIP: [SPL] CommissioningFlow: 0
          [1651194471211] [16050:465158] CHIP: [SPL] VendorID: 65521
          [1651194471211] [16050:465158] CHIP: [SPL] Version: 0
          [1651194471211] [16050:465158] CHIP: [SPL] ProductID: 32769
          [1651194471211] [16050:465158] CHIP: [SPL] Discriminator: 3840
          [1651194471211] [16050:465158] CHIP: [SPL] SetUpPINCode: 20202021
          [1651194471211] [16050:465158] CHIP: [SPL] RendezvousInformation: 4
      disabled: true

    - label:
          "Using the TH, parse the Onboarding payload from previous step and
          verify that the Discriminator and Passcode for DUT1 are present."
      verification: |
          DUT1 Descriminator: 3840
          DUT1 Passcode: 20202021
      disabled: true

    - label:
          "Using the TH Onboarding payload reader, scan or read the Onboarding
          payload from DUT2"
      verification: |
          1. Parse payload for DUT2

          $  ./chip-tool payload parse-setup-payload MT:-24J0IRV01WCCN68G00
          Verify in TH as commissioner side:

          [1651194577916] [16053:466154] CHIP: [SPL] Parsing base38Representation: MT:-24J0IRV01WCCN68G00
          [1651194577916] [16053:466154] CHIP: [SPL] CommissioningFlow: 0
          [1651194577916] [16053:466154] CHIP: [SPL] VendorID: 65521
          [1651194577916] [16053:466154] CHIP: [SPL] Version: 0
          [1651194577916] [16053:466154] CHIP: [SPL] ProductID: 32769
          [1651194577916] [16053:466154] CHIP: [SPL] Discriminator: 3841
          [1651194577916] [16053:466154] CHIP: [SPL] SetUpPINCode: 20212022
          [1651194577916] [16053:466154] CHIP: [SPL] RendezvousInformation: 4
      disabled: true

    - label:
          "Using the TH, parse the Onboarding payload from previous step and
          verify that the Discriminator and Passcode for DUT2 are present."
      verification: |
          DUT2 Descriminator: 3841
          DUT2 Passcode: 20212022
      disabled: true

    - label:
          "Compare the Discriminator values for DUT1 (Step 1.b) and DUT2 (Step
          2.b)"
      verification: |
          1. Verify DUT1 Descriminator in Step 1.b is NOT equal to DUT2 Descriminator in Step 2.b
      disabled: true

    - label:
          "Compare the Passcode values for DUT1 (Step 1.b) and DUT2 (Step 2.b)"
      verification: |
          Verify DUT1 Passcode in step 1b is not equal DUT2 Passcode in step 2b
      disabled: true
