# 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:
    12.4.12. [TC-CNET-4.14] [Thread] Verification for ReorderNetwork command
    [DUT-Server]

PICS:
    - CNET.S.F01

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

tests:
    - label: "Preconditions"
      verification: |
          1. Commission TH and DUT on Thread setup on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET
          2. The cluster Identifier 49 (0x0031) is present in the ServerList attribute
          3. The FeatureMap attribute value is 2
          4. MaxNetworks attribute value is at least 2 which is saved as 'MaxNetworksValue' for future use
      disabled: true

    - label:
          "Step 1: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco
          nds set to 900"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 2: TH reads Networks attribute from the DUT and saves the number
          of entries as 'NumNetworks'"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool network-commissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 3: TH calculates the number of remaining network slots as
          'MaxNetworksValue' - 'NumNetworks' and saves as 'RemainingNetwor
          kSlots'"
      verification: |
          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 4: TH calculates the midpoint of the network list as
          floor(('MaxNetwor ksValue' + 1)/2) and saves as 'Midpoint'"
      verification: |
          ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 1 0 --Breadcrumb 1

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 5: TH sends ArmFailSafe command to the DUT with the
          ExpiryLengthSeco nds field set to 900"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0


          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 5: TH sends AddOrUpdateThre adNetwork command to the DUT. This
          step should be repeated 'RemainingNetwor kSlots' times using DIFFERENT
          OperationalDatase t values and Breadcrumb set to 1. Note that these
          credentials are NOT required to be connectable."
      PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 1 0 --Breadcrumb 1

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 6: TH reads Networks attribute from the DUT and saves the list
          as 'OriginalNetworkList'"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool networkcommissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 7: TH sends ReorderNetwo rk Command to the DUT with the
          following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET
          .THREAD_1 ST_OPERA TIONALDA TASET 2. NetworkIn dex is 'MaxNetwo
          rksValue' 3. Breadcrum b is 2"
      PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool network-commissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 8: TH reads Breadcumb attribute from the General Commissioning
          Cluster"
      verification: |
          ./chip-tool generalcommissioning read breadcrumb 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 9: TH sends ReorderNetwo rk Command to the DUT with the
          following fields: 1. NetworkID is a NetworkID value NOT present in
          'OriginalNe tworkList' 2. NetworkIndex is 'Midpoint' 3. Breadcrum b is
          2"
      PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx
      verification: |
          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 10: TH reads Breadcumb attribute from the General Commissioning
          Cluster"
      verification: |
          ./chip-tool generalcommissioning read breadcrumb 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 11: TH sends ReorderNetwo rk Command to the DUT with the
          following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET
          .THREAD_1 ST_OPERA TIONALDA TASET 2.NetworkIn dex is 'Midpoint' 3.
          Breadcrum b is 2"
      PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool  networkcommissioning reorder-network  hex:1011101122222229 1 0 --Breadcrumb 1

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 12: TH reads Breadcumb attribute from the General Commissioning
          Cluster"
      verification: |
          ./chip-tool generalcommissioning read breadcrumb 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label: "Step 13: TH reads Networks attribute list from the DUT"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool network-commissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 14: TH sends ArmFailSafe command to the DUT with
          ExpiryLengthSeco nds set to 0"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label: "Step 15: TH reads Networks attribute list from the DUT"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool network-commissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 16: TH sends ArmFailSafe command to the DUT with
          ExpiryLengthSeco nds set to 900"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0


          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 17: TH sends AddOrUpdateThre adNetwork command to the DUT. This
          step should be repeated 'RemainingNetwor kSlots' times using DIFFERENT
          OperationalDatase t values and Breadcrumb set to 1. Note that these
          credentials are NOT required to be connectable"
      PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx
      verification: |
          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 18: TH sends ReorderNetwo rk Command to the DUT with the
          following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET
          .THREAD_1 ST_OPERA TIONALDA TASET 2. NetworkIn dex is 'Midpoint' 3.
          Breadcrum b is 2"
      PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx
      verification: |
          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label: "Step 19: TH sends the CommissioningCo mplete command to the DUT"
      verification: |
          ./chip-tool generalcommissioning CommissioningComplete 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label:
          "Step 20: TH sends ArmFailSafe command to the DUT with
          ExpiryLengthSeco nds set to 0"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true

    - label: "Step 21: TH reads Networks attribute list from the DUT"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool network-commissioning read networks 1 0

          The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
          ( Pre-Condition)
      disabled: true
