# 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.8. [TC-CNET-4.10] [Thread] Verification for RemoveNetwork Command
    [DUT-Server]

PICS:
    - CNET.S.F01

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

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

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

          [1650391404.723087][10042:10047] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1650391404.723164][10042:10047] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1650391404.723269][10042:10047] CHIP:TOO:   ArmFailSafeResponse: {
          [1650391404.723342][10042:10047] CHIP:TOO:     errorCode: 0
          [1650391404.723381][10042:10047] CHIP:TOO:     debugText:
          [1650391404.723419][10042:10047] CHIP:TOO:    }
          [1650391404.723479][10042:10047] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH1 reads Networks attribute from the DUT and save 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(Chip-tool) Log:

          [1657790578.359665][5247:5252] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 2276799582
          [1657790578.359820][5247:5252] CHIP:TOO:   Networks: 1 entries
          [1657790578.359925][5247:5252] CHIP:TOO:     [1]: {
          [1657790578.359992][5247:5252] CHIP:TOO:       NetworkID: 1850171990782922
          [1657790578.360049][5247:5252] CHIP:TOO:       Connected: TRUE
          [1657790578.360103][5247:5252] CHIP:TOO:      }
          [1657790578.360277][5247:5252] CHIP:EM: Sending Standalone Ack for MessageCounter:195491393 on exchange 23374i
      disabled: true

    - label:
          "TH finds the index of the Networks list entry with NetworkID field
          value PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET and saves it as
          Userth_netidx"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH sends RemoveNetwork Command to the DUT with NetworkID field set to
          PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET 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:1850171990782922 62 0

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

          [1657790635.532308][5254:5259] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005
          [1657790635.532395][5254:5259] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1657790635.532528][5254:5259] CHIP:TOO:   NetworkConfigResponse: {
          [1657790635.532617][5254:5259] CHIP:TOO:     networkingStatus: 0
          [1657790635.532671][5254:5259] CHIP:TOO:     networkIndex: 0
          [1657790635.532718][5254:5259] CHIP:TOO:    }
          [1657790635.532794][5254:5259] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657790635.532886][5254:5259] CHIP:EM: Sending Standalone Ack for MessageCounter:162806082 on exchange 55401i
      disabled: true

    - label: "TH1 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(Chip-tool) Log:

          [1657625584.426746][2703:2708] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1201757611
          [1657625584.427014][2703:2708] CHIP:TOO:   Networks: 0 entries
          [1657625584.427238][2703:2708] CHIP:EM: Sending Standalone Ack for MessageCounter:71370645 on exchange 9137i
      disabled: true

    - label: "TH reads LastNetworkingStatus attribute from the DUT"
      PICS: CNET.S.A0005
      verification: |
          ./chip-tool networkcommissioning read last-networking-status 1 0

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

          [1657625631.550171][2710:2715] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0005 DataVersion: 1201757611
          [1657625631.550337][2710:2715] CHIP:TOO:   LastNetworkingStatus: 0
          [1657625631.550495][2710:2715] CHIP:EM: Sending Standalone Ack for MessageCounter:45041626 on exchange 48206i
      disabled: true

    - label: "TH reads LastNetworkID attribute from the DUT"
      PICS: CNET.S.A0006
      verification: |
          ./chip-tool networkcommissioning read last-network-id 1 0

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

          [1657625691.050998][2718:2724] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 1201757611
          [1657625691.051142][2718:2724] CHIP:TOO:   LastNetworkID: 1850171990782922
          [1657625691.051317][2718:2724] CHIP:EM: Sending Standalone Ack for MessageCounter:151340993 on exchange 26558i
      disabled: true

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

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

          [1657625860.742472][2739:2744] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2669958173
          [1657625860.742607][2739:2744] CHIP:TOO:   Breadcrumb: 1
          [1657625860.742764][2739:2744] CHIP:EM: Sending Standalone Ack for MessageCounter:246118803 on exchange 50195i
      disabled: true

    - label:
          "TH sends ConnectNetwork command to the DUT with NetworkID field set
          to the extended PAN ID of PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET
          and Breadcrumb field set to 2"
      PICS: CNET.S.C04.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:1850171990782922 1 0 --Breadcrumb 2

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


          [1657625912.836563][2747:2752] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007
          [1657625912.836768][2747:2752] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007
          [1657625912.836933][2747:2752] CHIP:TOO:   ConnectNetworkResponse: {
          [1657625912.837012][2747:2752] CHIP:TOO:     networkingStatus: 3
          [1657625912.837075][2747:2752] CHIP:TOO:     errorValue: 0
          [1657625912.837131][2747:2752] CHIP:TOO:    }
          [1657625912.837220][2747:2752] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657625912.837330][2747:2752] CHIP:EM: Sending Standalone Ack for MessageCounter:259218125 on exchange 18569i
      disabled: true

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

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

          [1657781070.617341][4823:4828] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2383846386
          [1657781070.617458][4823:4828] CHIP:TOO:   Breadcrumb: 1
          [1657781070.617656][4823:4828] CHIP:EM: Sending Standalone Ack for MessageCounter:198695370 on exchange 43070i
      disabled: true

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

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

          [1657626058.290176][2767:2772] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657626058.290276][2767:2772] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657626058.290399][2767:2772] CHIP:TOO:   ArmFailSafeResponse: {
          [1657626058.290501][2767:2772] CHIP:TOO:     errorCode: 0
          [1657626058.290560][2767:2772] CHIP:TOO:     debugText:
          [1657626058.290613][2767:2772] CHIP:TOO:    }
          [1657626058.290699][2767:2772] 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 1 0

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

          [1657790810.454838][5308:5313] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 2276799582
          [1657790810.454996][5308:5313] CHIP:TOO:   Networks: 1 entries
          [1657790810.455100][5308:5313] CHIP:TOO:     [1]: {
          [1657790810.455168][5308:5313] CHIP:TOO:       NetworkID: 1850171990782922
          [1657790810.455225][5308:5313] CHIP:TOO:       Connected: TRUE
          [1657790810.455280][5308:5313] CHIP:TOO:      }
          [1657790810.455479][5308:5313] CHIP:EM: Sending Standalone Ack for MessageCounter:256297954 on exchange 23059i
      disabled: true

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

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

          [1657626161.611078][2780:2785] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657626161.611183][2780:2785] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657626161.611310][2780:2785] CHIP:TOO:   ArmFailSafeResponse: {
          [1657626161.611412][2780:2785] CHIP:TOO:     errorCode: 0
          [1657626161.611471][2780:2785] CHIP:TOO:     debugText:
          [1657626161.611525][2780:2785] CHIP:TOO:    }
          [1657626161.611613][2780:2785] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657626161.611722][2780:2785] CHIP:EM: Sending Standalone Ack for MessageCounter:216998470 on exchange 11517i
      disabled: true

    - label:
          "TH sends RemoveNetwork Command to the DUT with NetworkID field set to
          extended PAN ID of PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET 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:1850171990782922 32 0 --Breadcrumb 1

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

          [1657791030.761976][5336:5341] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005
          [1657791030.762070][5336:5341] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005
          [1657791030.762217][5336:5341] CHIP:TOO:   NetworkConfigResponse: {
          [1657791030.762314][5336:5341] CHIP:TOO:     networkingStatus: 0
          [1657791030.762375][5336:5341] CHIP:TOO:     networkIndex: 0
          [1657791030.762427][5336:5341] CHIP:TOO:    }
          [1657791030.762511][5336:5341] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657791030.762608][5336:5341] CHIP:EM: Sending Standalone Ack for MessageCounter:266194732 on exchange 7795i
      disabled: true

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

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

          [1657626243.485752][2795:2801] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
          [1657626243.485947][2795:2801] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005
          [1657626243.486108][2795:2801] CHIP:TOO:   CommissioningCompleteResponse: {
          [1657626243.486232][2795:2801] CHIP:TOO:     errorCode: 0
          [1657626243.486293][2795:2801] CHIP:TOO:     debugText:
          [1657626243.486368][2795:2801] CHIP:TOO:    }
          [1657626243.486455][2795:2801] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657626243.486572][2795:2801] CHIP:EM: Sending Standalone Ack for MessageCounter:8090042 on exchange 53943i
      disabled: true

    - label:
          "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set
          to 0 to ensure the CommissioningCo mplete call properly persisted the
          failsafe context. This call should have no effect if Commissionining
          Complete call is handled correctly"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 0 0 62 0

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


          [1657626274.218994][2802:2807] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1657626274.219096][2802:2807] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1657626274.219220][2802:2807] CHIP:TOO:   ArmFailSafeResponse: {
          [1657626274.219322][2802:2807] CHIP:TOO:     errorCode: 0
          [1657626274.219381][2802:2807] CHIP:TOO:     debugText:
          [1657626274.219436][2802:2807] CHIP:TOO:    }
          [1657626274.219522][2802:2807] CHIP:DMG: ICR moving to [AwaitingDe]
          [1657626274.219632][2802:2807] CHIP:EM: Sending Standalone Ack for MessageCounter:52231112 on exchange 13160i
      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:

          [1657626300.861344][2808:2813] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1201757611
          [1657626300.861492][2808:2813] CHIP:TOO:   Networks: 0 entries
          [1657626300.861678][2808:2813] CHIP:EM: Sending Standalone Ack for MessageCounter:89835226 on exchange 41681i
      disabled: true
