# 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.9. [TC-CNET-4.11] [Wi-Fi] Verification for ConnectNetwork Command
    [DUT-Server]

PICS:
    - CNET.S.S.F00

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

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

          Verify ArmFailSafeResponse on the TH Log:


          [1653479952.284160][30473:30478] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1653479952.284231][30473:30478] CHIP:TOO:   ArmFailSafeResponse: {
          [1653479952.284273][30473:30478] CHIP:TOO:     errorCode: 0
          [1653479952.284297][30473:30478] CHIP:TOO:     debugText:
          [1653479952.284322][30473:30478] CHIP:TOO:    }
          [1653479952.284361][30473:30478] CHIP:DMG: ICR moving to [AwaitingDe]
          [1653479952.284425][30473:30478] CHIP:EM: Sending Standalone Ack for MessageCounter:9947639 on exchange 30687i
      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 1 0

          Verify Networks entiries and its status on the TH Log:

          [1657733068.835240][7475:7480] CHIP:TOO:   Networks: 1 entries
          [1657733068.835354][7475:7480] CHIP:TOO:     [1]: {
          [1657733068.835434][7475:7480] CHIP:TOO:       NetworkID: 47524C50726976617465
          [1657733068.835487][7475:7480] CHIP:TOO:       Connected: TRUE
          [1657733068.835535][7475:7480] CHIP:TOO:      }
      disabled: true

    - label:
          "TH finds the index of the Networks list entry with NetworkID for
          PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and saves it as Userwifi_netidx"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH sends RemoveNetwork Command to the DUT with NetworkID field set to
          PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID 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:47524C50726976617465 1  0 --Breadcrumb 1

          Verify NetworkConfigResponse and its arguments on the TH Log:

          [1657290079.168208][2668:2673] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1657290079.168273][2668:2673] CHIP:TOO:   NetworkConfigResponse: {
          [1657290079.168311][2668:2673] CHIP:TOO:     networkingStatus: 0
          [1657290079.168338][2668:2673] CHIP:TOO:     networkIndex: 0
          [1657290079.168362][2668:2673] CHIP:TOO:    }
      disabled: true

    - label:
          "TH sends AddOrUpdateWiFi Network command to the DUT with SSID field
          set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, Credentials field set
          to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_CREDENTIALS and Breadcrumb field
          set to 1"
      PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:<your network id in hex> 1 0

          Below is an example:

          ./chip-tool networkcommissioning add-or-update-wi-fi-network Sbee_Moto Sunsuraj 1 0 --Breadcrumb 1 ( second network)

          Verify NetworkConfigResponse and its arguments on the TH Log:

          [1657288838.207746][2455:2460] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005
          [1657288838.207816][2455:2460] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1657288838.207935][2455:2460] CHIP:TOO:   NetworkConfigResponse: {
          [1657288838.207990][2455:2460] CHIP:TOO:     networkingStatus: 0
          [1657288838.208030][2455:2460] CHIP:TOO:     networkIndex: 0
          [1657288838.208068][2455:2460] CHIP:TOO:    }
      disabled: true

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

          Verify Networks entiries and its status on the TH Log:

          [1657733345.351745][7595:7600] CHIP:TOO:   Networks: 1 entries
          [1657733345.351888][7595:7600] CHIP:TOO:     [1]: {
          [1657733345.351952][7595:7600] CHIP:TOO:       NetworkID: 536265655F4D6F746F
          [1657733345.352000][7595:7600] CHIP:TOO:       Connected: FALSE
          [1657733345.352053][7595:7600] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends  ConnectNetwork  command to the  DUT with  NetworkID
          field  set to  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID
          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:536265655F4D6F746F 1 0 --Breadcrumb 2 (second network)

          Verify NetworkConfigResponse and its arguments on the TH Log:


          [1653479953.633815][30491:30496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007
          [1653479953.633986][30491:30496] CHIP:TOO:   ConnectNetworkResponse: {
          [1653479953.634133][30491:30496] CHIP:TOO:     networkingStatus: 0
          [1653479953.634195][30491:30496] CHIP:TOO:     errorValue: null
          [1653479953.634275][30491:30496] CHIP:TOO:    }
          [1653479953.634367][30491:30496] CHIP:DMG: ICR moving to [AwaitingDe]
          [1653479953.634501][30491:30496] CHIP:EM: Sending Standalone Ack for MessageCounter:490923 on exchange 21425i
      disabled: true

    - label:
          "TH changes its WiFi connection to
          PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH discovers and  connects to DUT  on
          the  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID operational  network"
      verification: |
          ./chip-tool networkcommissioning read networks 1 0

          Verify Networks entiries and its status on the TH Log:


          [1657733596.457792][7640:7645] CHIP:TOO:   Networks: 1 entries
          [1657733596.457867][7640:7645] CHIP:TOO:     [1]: {
          [1657733596.457906][7640:7645] CHIP:TOO:       NetworkID: 536265655F4D6F746F
          [1657733596.457940][7640:7645] CHIP:TOO:       Connected: TRUE
          [1657733596.457972][7640:7645] CHIP:TOO:      }
      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 1 0

          Verify Breadcrumb: 2 on the TH Log:

          [1657733618.370511][7653:7658] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2956231097
          [1657733618.370581][7653:7658] CHIP:TOO:   Breadcrumb: 2
      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: |
          ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0

          Verify ArmFailSafeResponse on the TH Log:

          [1657289119.775902][2519:2524] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657289119.775973][2519:2524] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657289119.776050][2519:2524] CHIP:TOO:   ArmFailSafeResponse: {
          [1657289119.776102][2519:2524] CHIP:TOO:     errorCode: 0
          [1657289119.776141][2519:2524] CHIP:TOO:     debugText:
          [1657289119.776177][2519:2524] CHIP:TOO:    }
      disabled: true

    - label:
          "TH changes its  WiFi connection
          to  PIXIT.CNET.WIFI_  1ST_ACCESSPOINT  _SSID"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_
          1ST_ACCESSPOINT _SSID operational network"
      verification: |
          ./chip-tool networkcommissioning read networks 1 0

          Verify Networks entiries and its status on the TH Log:

          [1657881740.139492][3022:3027] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 4005581086
          [1657881740.139598][3022:3027] CHIP:TOO:   Networks: 0 entries
          [1657881740.139716][3022:3027] CHIP:EM: Sending Standalone Ack for MessageCounter:261851669 on exchange 34342i
      disabled: true

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

          Verify ArmFailSafeResponse on the TH Log:

          [1657289228.311622][2529:2534] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657289228.311668][2529:2534] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657289228.311721][2529:2534] CHIP:TOO:   ArmFailSafeResponse: {
          [1657289228.311758][2529:2534] CHIP:TOO:     errorCode: 0
          [1657289228.311783][2529:2534] CHIP:TOO:     debugText:
          [1657289228.311806][2529:2534] CHIP:TOO:    }
      disabled: true

    - label:
          "TH sends  RemoveNetwork  Command to the  DUT with  NetworkID
          field  set to  PIXIT.CNET.WIFI_  1ST_ACCESSPOINT  _SSID
          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:47524C50726976617465 1  0 --Breadcrumb 1

          Verify NetworkConfigResponse and its arguments on the TH Log:

          [1653479953.633815][30491:30496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007
          [1653479953.633986][30491:30496] CHIP:TOO:   ConnectNetworkResponse: {
          [1653479953.634133][30491:30496] CHIP:TOO:     networkingStatus: 0
          [1653479953.634195][30491:30496] CHIP:TOO:     errorValue: null
          [1653479953.634275][30491:30496] CHIP:TOO:    }
          [1653479953.634367][30491:30496] CHIP:DMG: ICR moving to [AwaitingDe]
          [1653479953.634501][30491:30496] CHIP:EM: Sending Standalone Ack for MessageCounter:490923 on exchange 21425i
      disabled: true

    - label:
          "TH sends  AddOrUpdateWiFi  Network  command to the  DUT with
          SSID  field set
          to  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID,  Credentials field  set
          to  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_CREDENTIALS  and
          Breadcrumb  field set to 1"
      PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx
      verification: |
          ./chip-tool networkcommissioning add-or-update-wi-fi-network-network hex:<your network id in hex> 1 0
          Below is an example:
          ./chip-tool networkcommissioning add-or-update-wi-fi-network Sbee_Moto Sunsuraj 1 0 --Breadcrumb 1 ( second network)

          Verify NetworkConfigResponse and its arguments on the TH Log:

          [1657734444.832145][7736:7741] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1657734444.832215][7736:7741] CHIP:TOO:   NetworkConfigResponse: {
          [1657734444.832251][7736:7741] CHIP:TOO:     networkingStatus: 0
          [1657734444.832277][7736:7741] CHIP:TOO:     networkIndex: 0
          [1657734444.832299][7736:7741] CHIP:TOO:    }
          [1657734444.832335][7736:7741] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH sends  ConnectNetwork  command to the  DUT with  NetworkID
          field  set to  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID
          and  Breadcrumb field  set to 3"
      PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx
      verification: |
          ./chip-tool networkcommissioning connect-network hex:<your network id in hex> 1 0
          Below is an example:
          ./chip-tool networkcommissioning connect-network hex:536265655F4D6F746F 1 0 --Breadcrumb 3 (second network)

          Verify ConnectNetworkResponse and its arguments on the TH Log:

          [1657734624.698518][7768:7773] CHIP:TOO:   ConnectNetworkResponse: {
          [1657734624.698601][7768:7773] CHIP:TOO:     networkingStatus: 0
          [1657734624.698661][7768:7773] CHIP:TOO:     errorValue: null
          [1657734624.698740][7768:7773] CHIP:TOO:    }
      disabled: true

    - label:
          "TH changes its  WiFi connection
          to  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH discovers and  connects to DUT  on
          the  PIXIT.CNET.WIFI_  2ND_ACCESSPOIN  T_SSID operational  network"
      verification: |
          ./chip-tool networkcommissioning read networks 1 0

          Verify Networks entiries and its status on the TH Log:

          [1657733596.457792][7640:7645] CHIP:TOO:   Networks: 1 entries
          [1657733596.457867][7640:7645] CHIP:TOO:     [1]: {
          [1657733596.457906][7640:7645] CHIP:TOO:       NetworkID: 536265655F4D6F746F
          [1657733596.457940][7640:7645] CHIP:TOO:       Connected: TRUE
          [1657733596.457972][7640:7645] CHIP:TOO:      }
      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 1 0


          Verify Breadcrumb: 3 on the TH Log:

          [1657734757.740003][7793:7798] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2956231102
          [1657734757.740140][7793:7798] CHIP:TOO:   Breadcrumb: 3
      disabled: true

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

          Verify CommissioningCompleteResponse and its arguments on the TH Log:

          [1657734803.411199][7802:7808] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005
          [1657734803.411256][7802:7808] CHIP:TOO:   CommissioningCompleteResponse: {
          [1657734803.411306][7802:7808] CHIP:TOO:     errorCode: 0
          [1657734803.411333][7802:7808] CHIP:TOO:     debugText:
          [1657734803.411356][7802:7808] CHIP:TOO:    }
      disabled: true

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

          Verify Networks entiries and its status on the TH Log:


          [1657734855.925075][7819:7824] CHIP:TOO:   Networks: 1 entries
          [1657734855.925147][7819:7824] CHIP:TOO:     [1]: {
          [1657734855.925185][7819:7824] CHIP:TOO:       NetworkID: 536265655F4D6F746F
          [1657734855.925215][7819:7824] CHIP:TOO:       Connected: TRUE
          [1657734855.925243][7819:7824] CHIP:TOO:      }
      disabled: true
