# 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.10. [TC-CNET-4.12] [Thread] Verification for ConnectNetwork Command
    [DUT-Server]

PICS:
    - CNET.S.F01

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

tests:
    - label:
          "During the commissioning process, TH and DUT, TH sends ArmFailSafe
          command to the DUT"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 900 1 22 0

          Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log:

          [1657808518.577084][5979:5984] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657808518.577181][5979:5984] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657808518.577311][5979:5984] CHIP:TOO:   ArmFailSafeResponse: {
          [1657808518.577409][5979:5984] CHIP:TOO:     errorCode: 0
          [1657808518.577466][5979:5984] CHIP:TOO:     debugText:
          [1657808518.577518][5979:5984] CHIP:TOO:    }
          [1657808518.577604][5979:5984] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657808518.577705][5979:5984] CHIP:EM: Sending Standalone Ack for MessageCounter:240383707 on exchange 56756i
      disabled: true

    - label:
          "TH reads  Networks  attribute from the  DUT and saves the  number of
          entries  as NumNetworks"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool networkcommissioning read networks 22 0

          Verify "Networks entiries and its status" on the TH(Chip-tool) Log:

          [1659623217.387917][9816:9821] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 4196844346
          [1659623217.388007][9816:9821] CHIP:TOO:   Networks: 1 entries
          [1659623217.388058][9816:9821] CHIP:TOO:     [1]: {
          [1659623217.388089][9816:9821] CHIP:TOO:       NetworkID: 2111111122222222
          [1659623217.388110][9816:9821] CHIP:TOO:       Connected: TRUE
          [1659623217.388129][9816:9821] CHIP:TOO:      }
      disabled: true

    - label:
          "TH saves the index  of the Networks  list entry from  step 2
          as  Userth_netidx"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH sends RemoveNetwork Command to the DUT with NetworkID field set to
          th_xpan and Breadcrumb field set to 1"
      PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool networkcommissioning remove-network hex:<your network id in hex> 1 0

          Below is an example:

          ./chip-tool networkcommissioning  remove-network hex:2111111122222222 22 0

          Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log:

          [1659623277.664477][9824:9831] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005
          [1659623277.664556][9824:9831] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1659623277.664667][9824:9831] CHIP:TOO:   NetworkConfigResponse: {
          [1659623277.664758][9824:9831] CHIP:TOO:     networkingStatus: 0
          [1659623277.664810][9824:9831] CHIP:TOO:     networkIndex: 0
          [1659623277.664843][9824:9831] CHIP:TOO:    }
          [1659623277.664907][9824:9831] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH sends AddOrUpdateThre adNetwork command to the DUT with
          operational dataset field set to PIXIT.CNET.THRE AD_2ND_OPERATI
          ONALDATASET and Breadcrumb field set to 1"
      PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool networkcommissioning add-or-update-thread-network-network hex:<your network id in hex> 1 0

          Below is an example:

          ./chip-tool networkcommissioning add-or-update-thread-network hex:0e080000000000010000000300000c35060004001fffe0020831111111222222220708fd6958bdf99a83e6051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6b0102123404101fdf27d94ddb7edc69dc3e72a0ca0ae10c0402a0f7f8 22 0 (second network dataset value)

          Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log:

          [1659623353.963125][9870:9875] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1659623353.963312][9870:9875] CHIP:TOO:   NetworkConfigResponse: {
          [1659623353.963406][9870:9875] CHIP:TOO:     networkingStatus: 0
          [1659623353.963473][9870:9875] CHIP:TOO:     networkIndex: 0
          [1659623353.963530][9870:9875] CHIP:TOO:    }
          [1659623353.963623][9870:9875] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "TH reads  Networks  attribute from the  DUT"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool networkcommissioning read networks 22 0

          Verify "Networks entiries and its status" on the TH(Chip-tool) Log:

          [1659623451.276073][9891:9896] CHIP:TOO:   Networks: 1 entries
          [1659623451.276194][9891:9896] CHIP:TOO:     [1]: {
          [1659623451.276268][9891:9896] CHIP:TOO:       NetworkID: 3111111122222222
          [1659623451.276326][9891:9896] CHIP:TOO:       Connected: FALSE
          [1659623451.276381][9891:9896] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends  ConnectNetwork  command to the  DUT with  NetworkID
          field  set to  PIXIT.CNET.THRE  AD_2ND_OPERATI  ONALDATASET  and
          Breadcrumb  field set to 2"
      PICS: CNET.S.C06.Rsp
      verification: |
          ./chip-tool networkcommissioning connect-network hex:<your network id in hex> 1 0

          Below is an example:

          ./chip-tool networkcommissioning connect-network hex:3111111122222222 22 0 --Breadcrumb 2

          Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log:

          1 Command=0x0000_0007
          [1659623520.296630][9903:9908] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007
          [1659623520.296853][9903:9908] CHIP:TOO:   ConnectNetworkResponse: {
          [1659623520.296935][9903:9908] CHIP:TOO:     networkingStatus: 0
          [1659623520.296987][9903:9908] CHIP:TOO:     errorValue: null
          [1659623520.297037][9903:9908] CHIP:TOO:    }
          [1659623520.297124][9903:9908] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH discovers and  connects to DUT  on
          the  PIXIT.CNET.THRE  AD_2ND_OPERATI  ONALDATASET  operational  network"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH reads  Breadcrumb  attribute from
          the  General  Commissioning  cluster of the DUT"
      PICS: CNET.S.C06.Rsp
      verification: |
          ./chip-tool generalcommissioning read breadcrumb 22 0

          Verify "breadcrumb value is set to 2" on the TH(Chip-tool) Log:

          [1659623558.934419][9911:9917] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 808037534
          [1659623558.934529][9911:9917] CHIP:TOO:   Breadcrumb: 2
          [1659623558.934681][9911:9917] CHIP:EM: Sending Standalone Ack for MessageCounter:244248455 on exchange 8477i
      disabled: true

    - label:
          "TH sends  ArmFailSafe  command to the  DUT
          with  ExpiryLengthSeco  nds set to 0. This  forcibly disarms  the
          fail-safe and is  expected to cause  the changes of  configuration
          to  NetworkCommissi  oning cluster done  so far to be  reverted."
      verification: |
          Mark as not applicable and proceed to next step

          ./chip-tool generalcommissioning arm-fail-safe 0 1 22 0

          Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log:

          [1659623653.222898][9932:9937] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1659623653.223029][9932:9937] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1659623653.223198][9932:9937] CHIP:TOO:   ArmFailSafeResponse: {
          [1659623653.223283][9932:9937] CHIP:TOO:     errorCode: 0
          [1659623653.223347][9932:9937] CHIP:TOO:     debugText:
          [1659623653.223403][9932:9937] CHIP:TOO:    }
          [1659623653.223492][9932:9937] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH ensures it can communicate on PIXIT.CNET.THRE AD_1ST_OPERATI
          ONALDATASET"
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH discovers and connects to DUT on the PIXIT.CNET.THRE
          AD_1ST_OPERATI ONALDATASET operational network"
      verification: |
          Mark as not applicable and proceed to next step

          ./chip-tool networkcommissioning read networks 22 0

          Verify "Networks entiries and its status" on the TH(Chip-tool) Log:
      disabled: true

    - label:
          "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set
          to 900"
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH sends RemoveNetwork Command to the DUT with NetworkID field set to
          th_xpan and Breadcrumb field set to 1"
      PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH sends AddOrUpdateThre adNetwork command to the DUT with the
          OperationalDatase t field set to PIXIT.CNET.THRE AD_2ND_OPERATI
          ONALDATASET and Breadcrumb field set to 1"
      PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH sends ConnectNetwork command to the DUT with NetworkID field set
          to the extended PAN ID of PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET
          and Breadcrumb field set to 3"
      PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH discovers and  connects to DUT  on
          the  PIXIT.CNET.THRE  AD_2ND_OPERATI  ONALDATASET  operational  network"
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label:
          "TH reads  Breadcrumb  attribute from
          the  General  Commissioning  cluster of the DUT"
      PICS: CNET.S.C06.Rsp
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label: "TH sends the  CommissioningCo  mplete command  to the DUT"
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true

    - label: "TH reads  Networks  attribute from the  DUT"
      PICS: CNET.S.A0001
      verification: |
          Mark as not applicable and proceed to next step
      disabled: true
