# 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:
    4.1.18. [TC-CADMIN-1.18] Removing Fabrics from DUT and Fabric index
    enumeration using BCM [DUT -    Commissioner]

PICS:
    - CADMIN.C

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

tests:
    - label: "Note"
      verification: |
          For DUT as comissioner  test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label: "Precondition"
      verification: |
          Reset Devices to factory defaults
      disabled: true

    - label: "DUT_CR1 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          "1. Provision the device using DUT controller chip tool(use above instructions) ,
          "
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On your first controller chip tool, open commissioning window using BCM

          Below is the example when using chip tool as controller
          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000


          CHIP: [DMG] InvokeResponseMessage =
          [1648116114630] [6871:3898916] CHIP: [DMG] {
          [1648116114630] [6871:3898916] CHIP: [DMG]         suppressResponse = false,
          [1648116114630] [6871:3898916] CHIP: [DMG]         InvokeResponseIBs =
          [1648116114630] [6871:3898916] CHIP: [DMG]         [
          [1648116114630] [6871:3898916] CHIP: [DMG]                 InvokeResponseIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                 {
          [1648116114630] [6871:3898916] CHIP: [DMG]                         CommandStatusIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                         {
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 CommandPathIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 {
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         EndpointId = 0x0,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         ClusterId = 0x3c,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         CommandId = 0x1,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 },
          [1648116114630] [6871:3898916] CHIP: [DMG]
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 StatusIB =
          [1648116114631] [6871:3898916] CHIP: [DMG]                                 {
          [1648116114631] [6871:3898916] CHIP: [DMG]                                         status = 0x0,
          [1648116114631] [6871:3898916] CHIP: [DMG]                                 },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]                         },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]                 },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]         ],
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]         InteractionModelRevision = 1
          [1648116114631] [6871:3898916] CHIP: [DMG] },
          [1648116114631] [6871:3898916] CHIP: [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
      disabled: true

    - label: "TH_CR2 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On 2nd controller using chip tool connect to the accessory


          ./chip-tool pairing onnetwork 1 20202021

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On your first controller chip tool, open commissioning window using BCM

          Below is the example when using chip tool as controller
          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000


          CHIP: [DMG] InvokeResponseMessage =
          [1648116114630] [6871:3898916] CHIP: [DMG] {
          [1648116114630] [6871:3898916] CHIP: [DMG]         suppressResponse = false,
          [1648116114630] [6871:3898916] CHIP: [DMG]         InvokeResponseIBs =
          [1648116114630] [6871:3898916] CHIP: [DMG]         [
          [1648116114630] [6871:3898916] CHIP: [DMG]                 InvokeResponseIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                 {
          [1648116114630] [6871:3898916] CHIP: [DMG]                         CommandStatusIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                         {
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 CommandPathIB =
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 {
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         EndpointId = 0x0,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         ClusterId = 0x3c,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                         CommandId = 0x1,
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 },
          [1648116114630] [6871:3898916] CHIP: [DMG]
          [1648116114630] [6871:3898916] CHIP: [DMG]                                 StatusIB =
          [1648116114631] [6871:3898916] CHIP: [DMG]                                 {
          [1648116114631] [6871:3898916] CHIP: [DMG]                                         status = 0x0,
          [1648116114631] [6871:3898916] CHIP: [DMG]                                 },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]                         },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]                 },
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]         ],
          [1648116114631] [6871:3898916] CHIP: [DMG]
          [1648116114631] [6871:3898916] CHIP: [DMG]         InteractionModelRevision = 1
          [1648116114631] [6871:3898916] CHIP: [DMG] },
          [1648116114631] [6871:3898916] CHIP: [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
      disabled: true

    - label: "TH_CR3 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On 3rd controller using chip tool connect to the accessory


          ./chip-tool pairing onnetwork 1 20202021

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE"
      PICS: OPCREDS.C.A0001
      verification: |
          On first controller, read fabrics list

          ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0



          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193
          CHIP:TOO:   Fabrics: 3 entries
          CHIP:TOO:     [1]: {
          CHIP:TOO:       RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
          CHIP:TOO:       VendorId: 65521
          CHIP:TOO:       FabricId: 1
          CHIP:TOO:       NodeId: 1
          CHIP:TOO:       Label:
          CHIP:TOO:       FabricIndex: 1
          CHIP:TOO:      }
          CHIP:TOO:     [2]: {
          CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          CHIP:TOO:       VendorId: 65521
          CHIP:TOO:       FabricId: 1
          CHIP:TOO:       NodeId: 2
          CHIP:TOO:       Label:
          CHIP:TOO:       FabricIndex: 2
          CHIP:TOO:      }
          CHIP:TOO:     [3]: {
          CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          CHIP:TOO:       VendorId: 65521
          CHIP:TOO:       FabricId: 1
          CHIP:TOO:       NodeId: 3
          CHIP:TOO:       Label:
          CHIP:TOO:       FabricIndex: 3
          CHIP:TOO:      }
          CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i
          "
      disabled: true

    - label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to TH_CE"
      PICS: OPCREDS.C.C0a.Tx
      verification: |
          on 2nd controller using chip tool, remove fabric with FabricIndex=2

          ./chip-tool operationalcredentials remove-fabric 2 1 0

          CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
          CHIP:TOO:   NOCResponse: {
          CHIP:TOO:     statusCode: 0
          CHIP:TOO:     fabricIndex: 2
          CHIP:TOO:    }
          CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH_CR2 sends command to TH_CE to write and read the Basic Information
          Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          Using your 2nd controller, write attribute and read attribute to and from TH_CE

          Below is the example while using chip tool on second controller,
          ./chip-tool basic write node-label te5new 2 0

           Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
          [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
          [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53

          ./chip-tool basic read node-label 2 0

           Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
          [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
          [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics"
      PICS: OPCREDS.C.A0001
      verification: |
          On first controller, read fabrics list

          Below is the command using chip tool controller

          ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219
          [1647863260.286772][9294:9299] CHIP:TOO:   Fabrics: 2 entries
          [1647863260.286908][9294:9299] CHIP:TOO:     [1]: {
          [1647863260.286947][9294:9299] CHIP:TOO:       RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
          [1647863260.286995][9294:9299] CHIP:TOO:       VendorId: 65521
          [1647863260.287026][9294:9299] CHIP:TOO:       FabricId: 1
          [1647863260.287055][9294:9299] CHIP:TOO:       NodeId: 1
          [1647863260.287084][9294:9299] CHIP:TOO:       Label:
          [1647863260.287113][9294:9299] CHIP:TOO:       FabricIndex: 1
          [1647863260.287144][9294:9299] CHIP:TOO:      }
          [1647863260.287185][9294:9299] CHIP:TOO:     [2]: {
          [1647863260.287221][9294:9299] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863260.287253][9294:9299] CHIP:TOO:       VendorId: 65521
          [1647863260.287282][9294:9299] CHIP:TOO:       FabricId: 1
          [1647863260.287310][9294:9299] CHIP:TOO:       NodeId: 3
          [1647863260.287339][9294:9299] CHIP:TOO:       Label:
          [1647863260.287368][9294:9299] CHIP:TOO:       FabricIndex: 3
          [1647863260.287396][9294:9299] CHIP:TOO:      }
          [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i
      disabled: true

    - label:
          "Verify TH_CE is now discoverable over DNS-SD with 2 Operational
          service records (_matter._tcp SRV records)."
      verification: |
          1. Verify if the DUT is broadcasting using
          grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
          + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001             _matter._tcp         local
          + wlp5s0 IPv6 03E707466A904C7E-0000000000000003             _matter._tcp         local
          = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001             _matter._tcp         local
             hostname = [E45F010F27530000.local]
             address = [fe80::e65f:1ff:fe0f:2753]
             port = [5540]
             txt = ["T=1" "SAI=300" "SII=5000"]
          = wlp5s0 IPv6 03E707466A904C7E-0000000000000003             _matter._tcp         local
             hostname = [E45F010F27530000.local]
             address = [fe80::e65f:1ff:fe0f:2753]
             port = [5540]
             txt = ["T=1" "SAI=300" "SII=5000"]
          grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On first controller chip tool, open commissioning window using BCM

          Below is the example when using chip tool as controller

          For BCM,
          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000

          CHIP:DMG: InvokeResponseMessage =
          [1650278416.248379][11064:11069] CHIP:DMG: {
          [1650278416.248436][11064:11069] CHIP:DMG:         suppressResponse = false,
          [1650278416.248495][11064:11069] CHIP:DMG:         InvokeResponseIBs =
          [1650278416.248570][11064:11069] CHIP:DMG:         [
          [1650278416.248630][11064:11069] CHIP:DMG:                 InvokeResponseIB =
          [1650278416.248718][11064:11069] CHIP:DMG:                 {
          [1650278416.248783][11064:11069] CHIP:DMG:                         CommandStatusIB =
          [1650278416.248860][11064:11069] CHIP:DMG:                         {
          [1650278416.248931][11064:11069] CHIP:DMG:                                 CommandPathIB =
          [1650278416.249011][11064:11069] CHIP:DMG:                                 {
          [1650278416.249100][11064:11069] CHIP:DMG:                                         EndpointId = 0x0,
          [1650278416.249186][11064:11069] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650278416.249268][11064:11069] CHIP:DMG:                                         CommandId = 0x1,
          [1650278416.249347][11064:11069] CHIP:DMG:                                 },
          [1650278416.249430][11064:11069] CHIP:DMG:
          [1650278416.249501][11064:11069] CHIP:DMG:                                 StatusIB =
          [1650278416.249581][11064:11069] CHIP:DMG:                                 {
          [1650278416.249664][11064:11069] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1650278416.249738][11064:11069] CHIP:DMG:                                 },
          [1650278416.249823][11064:11069] CHIP:DMG:
          [1650278416.249889][11064:11069] CHIP:DMG:                         },
          [1650278416.249969][11064:11069] CHIP:DMG:
          [1650278416.250035][11064:11069] CHIP:DMG:                 },
          [1650278416.250113][11064:11069] CHIP:DMG:
          [1650278416.250169][11064:11069] CHIP:DMG:         ],
          [1650278416.250241][11064:11069] CHIP:DMG:
          [1650278416.250298][11064:11069] CHIP:DMG:         InteractionModelRevision = 1
          [1650278416.250355][11064:11069] CHIP:DMG: },
          [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "TH_CR2 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          On 2nd controller using chip tool connect to the accessory


          ./chip-tool pairing onnetwork 1 20202021

          Verify you got below message
          Device commissioning completed with success
      disabled: true

    - label: "TH_CR2 sends command to TH_CE to read the list of Fabrics"
      PICS: OPCREDS.C.A0001
      verification: |
          On second controller, read fabrics list

          Below is the command using chip tool controller

          ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
          [1647863342.980899][9309:9314] CHIP:TOO:   Fabrics: 3 entries
          [1647863342.981158][9309:9314] CHIP:TOO:     [1]: {
          [1647863342.981231][9309:9314] CHIP:TOO:       RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
          [1647863342.981322][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.981380][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.981434][9309:9314] CHIP:TOO:       NodeId: 1
          [1647863342.981486][9309:9314] CHIP:TOO:       Label:
          [1647863342.981539][9309:9314] CHIP:TOO:       FabricIndex: 1
          [1647863342.981594][9309:9314] CHIP:TOO:      }
          [1647863342.981671][9309:9314] CHIP:TOO:     [2]: {
          [1647863342.981737][9309:9314] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863342.981796][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.981849][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.981901][9309:9314] CHIP:TOO:       NodeId: 3
          [1647863342.981952][9309:9314] CHIP:TOO:       Label:
          [1647863342.982005][9309:9314] CHIP:TOO:       FabricIndex: 3
          [1647863342.982057][9309:9314] CHIP:TOO:      }
          [1647863342.982131][9309:9314] CHIP:TOO:     [3]: {
          [1647863342.982195][9309:9314] CHIP:TOO:       RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
          [1647863342.982252][9309:9314] CHIP:TOO:       VendorId: 65521
          [1647863342.982305][9309:9314] CHIP:TOO:       FabricId: 1
          [1647863342.982357][9309:9314] CHIP:TOO:       NodeId: 2
          [1647863342.982409][9309:9314] CHIP:TOO:       Label:
          [1647863342.982460][9309:9314] CHIP:TOO:       FabricIndex: 4
          [1647863342.982512][9309:9314] CHIP:TOO:      }
          [1647863342.982738][9309:9314] CHIP:EM: Sending Standalone Ack for MessageCounter:5772016 on exchange 3310i
      disabled: true
