# 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.20. [TC-CADMIN-1.20] max number of Commissioned Fabrics and
    SupportedFabrics rollover using BCM [DUT - Commissionee]

PICS:
    - CADMIN.S
    - CADMIN.S.F00

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

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

    - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE"
      PICS: CADMIN.S
      verification: |
          "1. Provision the device using TH_CR1 - chip tool(use above instructions) ,
          "
      disabled: true

    - label:
          "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.S.C01.Rsp
      verification: |
          On TH_CR1 (chip tool), open commissioning window using BCM

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0  --timedInteractionTimeoutMs 1000

          Verify success response On TH_CR1(chip-tool) Log

          CHIP:DMG: InvokeResponseMessage =
          [1649756654.928453][3385:3390] CHIP:DMG: {
          [1649756654.928511][3385:3390] CHIP:DMG:         suppressResponse = false,
          [1649756654.928571][3385:3390] CHIP:DMG:         InvokeResponseIBs =
          [1649756654.928647][3385:3390] CHIP:DMG:         [
          [1649756654.928708][3385:3390] CHIP:DMG:                 InvokeResponseIB =
          [1649756654.928794][3385:3390] CHIP:DMG:                 {
          [1649756654.928864][3385:3390] CHIP:DMG:                         CommandStatusIB =
          [1649756654.928948][3385:3390] CHIP:DMG:                         {
          [1649756654.929021][3385:3390] CHIP:DMG:                                 CommandPathIB =
          [1649756654.929109][3385:3390] CHIP:DMG:                                 {
          [1649756654.929191][3385:3390] CHIP:DMG:                                         EndpointId = 0x0,
          [1649756654.929284][3385:3390] CHIP:DMG:                                         ClusterId = 0x3c,
          [1649756654.929376][3385:3390] CHIP:DMG:                                         CommandId = 0x1,
          [1649756654.929459][3385:3390] CHIP:DMG:                                 },
          [1649756654.929551][3385:3390] CHIP:DMG:
          [1649756654.929632][3385:3390] CHIP:DMG:                                 StatusIB =
          [1649756654.929720][3385:3390] CHIP:DMG:                                 {
          [1649756654.929804][3385:3390] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1649756654.929878][3385:3390] CHIP:DMG:                                 },
          [1649756654.929946][3385:3390] CHIP:DMG:
          [1649756654.930017][3385:3390] CHIP:DMG:                         },
          [1649756654.930109][3385:3390] CHIP:DMG:
          [1649756654.930176][3385:3390] CHIP:DMG:                 },
          [1649756654.930256][3385:3390] CHIP:DMG:
          [1649756654.930314][3385:3390] CHIP:DMG:         ],
          [1649756654.930389][3385:3390] CHIP:DMG:
          [1649756654.930448][3385:3390] CHIP:DMG:         InteractionModelRevision = 1
          [1649756654.930555][3385:3390] CHIP:DMG: },
          [1649756654.930703][3385:3390] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
          [1649756654.930801][3385:3390] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "Step 3: THn starts a commissioning process with DUT_CE"
      PICS: CADMIN.S
      verification: |
          On TH_CR1+1 controller using chip tool connect to the accessory

          ./chip-tool pairing onnetwork 2 20202021  --commissioner-name beta

          Verify you got below message on TH_CR1+1(chip-tool) log
          Device commissioning completed with success
      disabled: true

    - label:
          "Step 4: Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2)
          times to reach an index value of SupportedFabrics on DUT_CE"
      PICS: CADMIN.S.C01.Rsp
      verification: |
          Repeat step 3 until  CommissionedFabrics=SupportedFabrics  (Supported fabrics value obtained in the precondition)

          Use the following command to verify the currentcommissioned fabric (Output number may vary depends on the number successful commissioning )

          ./chip-tool operationalcredentials read commissioned-fabrics 1 0

          [1660907933.677983][33780:33785] CHIP:TOO:   CommissionedFabrics: 16
      disabled: true

    - label:
          "Step 5: THn_1 starts a commissioning process and opens a
          commissioning window with DUT_CE"
      PICS: CADMIN.S.C01.Rsp
      verification: |
          On THnth controller using chip tool connect to the accessory

          ./chip-tool pairing onnetwork 6 20202021 --commissioner-name 4

          Verify DUT_CE responds with NOCResponse with a StatusCode of 0x05 on TH (chip-tool) log

          CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
          [1649756670.402192][10794:10799] CHIP:CTL: Device returned status 5 on receiving the NOC
          [1649756670.402221][10794:10799] CHIP:CTL: Add NOC failed with error ../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1110: CHIP Error 0x0000000B: No memory
          [1649756670.402241][10794:10799] CHIP:CTL: Failed to perform commissioning step 13
      disabled: true

    - label: "Step 6: TH_CR1 removes FabricIndex1"
      PICS: OPCREDS.S.C0a.Rsp
      verification: |
          on TH_CR1 using chip tool, remove fabric with FabricIndex=1

          ./chip-tool operationalcredentials remove-fabric 1 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: 1
          CHIP:TOO:    }
          CHIP:DMG: ICR moving to [AwaitingDe]

          Verify CommissionedFabrics=SupportedFabrics-1 on  TH_CR2(chip-tool) log

          ./chip-tool operationalcredentials read commissioned-fabrics 2 0 --commissioner-name beta

          [1660907933.677983][33780:33785] CHIP:TOO:   CommissionedFabrics: 15
      disabled: true
