# 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
    - CADMIN.C.C01.Tx

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
