# 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.

name: 24.1.4. [TC-CADMIN-1.4] Node Behavior using BCM [DUT - Commissionee]

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

config:
    nodeId: 0x12344321
    timeout: 300
    nodeId2:
        type: node_id
        defaultValue: 0xCAFE
    endpoint: 0
    payload:
        type: char_string
        defaultValue: "MT:-24J0AFN00KA0648G00"
    waitAfterCommissioning:
        type: int16u
        defaultValue: 5000
    PIXIT.CADMIN.CwDuration:
        type: int16u
        defaultValue: 180

tests:
    - label: "Precondition: Reset Devices to factory defaults"
      PICS: PICS_SDK_CI_ONLY
      cluster: "SystemCommands"
      command: "FactoryReset"

    - label: "Precondition: Reset Devices to factory defaults"
      verification: |
          Reset Devices to factory defaults
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Factory Reset the DUT and enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label: "Step 1a: TH_CR1 starts a commissioning process with DUT_CE"
      cluster: "CommissionerCommands"
      command: "PairWithCode"
      PICS: CADMIN.S
      arguments:
          values:
              - name: "nodeId"
                value: nodeId
              - name: "payload"
                value: payload

    - label: "Step 1a: TH_CR1 commissioned with DUT_CE"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      PICS: CADMIN.S
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label:
          "Step 1b: TH1 reads CurrentFabricIndex attribute and save it for
          future use."
      command: "readAttribute"
      cluster: "Operational Credentials"
      attribute: "CurrentFabricIndex"
      response:
          saveAs: TH1FabricIndex

    - label: "Step 2a: TH_CR1 opens a commissioning window on DUT_CE using BCM"
      cluster: "Administrator Commissioning"
      command: "OpenBasicCommissioningWindow"
      PICS: CADMIN.S.C01.Rsp
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "CommissioningTimeout"
                value: PIXIT.CADMIN.CwDuration

    - label: "Step 2a: Waiting after opening commissioning window"
      PICS: CADMIN.S.C01.Rsp
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: waitAfterCommissioning

    - label: "Step 2b: Verify that the DNS-SD advertisement shows CM=1"
      PICS: CADMIN.S.C01.Rsp
      cluster: "DiscoveryCommands"
      command: "FindCommissionable"
      response:
          values:
              - name: "commissioningMode"
                value: 1

    - label:
          "Step 2c: TH_CR1 writes the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      command: "writeAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      arguments:
          value: "chiptest"

    - label:
          "Step 2d: TH_CR1 reads the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      command: "readAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      response:
          constraints:
              type: char_string
              maxLength: 32

    - label: "Step 3a: TH_CR2 starts a commissioning process with DUT_CE"
      identity: "beta"
      cluster: "CommissionerCommands"
      command: "PairWithCode"
      PICS: CADMIN.S
      arguments:
          values:
              - name: "nodeId"
                value: nodeId2
              - name: "payload"
                value: payload

    - label: "Step 3b: DUT_CE is commissioned by TH_CR2 on Fabric ID2 "
      identity: "beta"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      PICS: CADMIN.S
      arguments:
          values:
              - name: "nodeId"
                value: nodeId2

    - label:
          "Step 3c: TH2 reads CurrentFabricIndex attribute and save it for
          future use."
      identity: "beta"
      command: "readAttribute"
      cluster: "Operational Credentials"
      attribute: "CurrentFabricIndex"
      response:
          saveAs: TH2FabricIndex

    #Check for DNS-SD advertisement is not possible in YAML
    - label:
          "Step 4: Verify DUT_CE is now discoverable over DNS-SD with two SRV
          Records"
      verification: |
          On TH_CR2 send the below command

          Verify if the DUT_CE is broadcasting using

          avahi-browse -rt _matter._tcp
          +   eth0 IPv6 C8A60CCA27F33379-0000000000000002             _matter._tcp         local
          +   eth0 IPv6 3C26C93CF201458F-0000000000000001             _matter._tcp         local
          =   eth0 IPv6 C8A60CCA27F33379-0000000000000002             _matter._tcp         local
            hostname = [E45F010F27530000.local]
            address = [fe80::e65f:1ff:fe0f:2753]
            port = [5540]
            txt = ["T=1" "SAI=300" "SII=5000"]
          =   eth0 IPv6 3C26C93CF201458F-0000000000000001             _matter._tcp         local
            hostname = [E45F010F27530000.local]
            address = [fe80::e65f:1ff:fe0f:2753]
            port = [5540]
            txt = ["T=1" "SAI=300" "SII=5000"]
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label: "Step 5: TH_CR1 reads the list of Fabrics on DUT_CE"
      command: "readAttribute"
      cluster: "Operational Credentials"
      PICS: OPCREDS.S.A0001
      attribute: "Fabrics"
      fabricFiltered: false
      response:
          constraints:
              type: list
              contains:
                  [
                      {
                          Label: "",
                          FabricIndex: TH1FabricIndex,
                          NodeID: nodeId,
                      },
                      {
                          Label: "",
                          FabricIndex: TH2FabricIndex,
                          NodeID: nodeId2,
                      },
                  ]

    - label: "Step 6: TH_CR2 reads the list of Fabrics on DUT_CE"
      identity: "beta"
      command: "readAttribute"
      cluster: "Operational Credentials"
      attribute: "Fabrics"
      PICS: OPCREDS.S.A0001
      fabricFiltered: false
      response:
          constraints:
              type: list
              contains:
                  [
                      {
                          Label: "",
                          FabricIndex: TH1FabricIndex,
                          NodeID: nodeId,
                      },
                      {
                          Label: "",
                          FabricIndex: TH2FabricIndex,
                          NodeID: nodeId2,
                      },
                  ]

    - label:
          "Step 7a: TH_CR1 writes the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      command: "writeAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      arguments:
          value: "chiptest"

    - label:
          "Step 7b: TH_CR1 reads the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      command: "readAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      response:
          value: "chiptest"
          constraints:
              type: char_string
              maxLength: 32

    - label:
          "Step 8a: TH_CR2 writes the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      identity: "beta"
      command: "writeAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      arguments:
          value: "chiptest"

    - label:
          "Step 8b: TH_CR2 reads the Basic Information Clusters NodeLabel
          mandatory attribute of DUT_CE"
      identity: "beta"
      command: "readAttribute"
      cluster: "Basic Information"
      attribute: "NodeLabel"
      PICS: BINFO.S.A0005
      response:
          value: "chiptest"
          constraints:
              type: char_string
              maxLength: 32

    - label: "Step 9: TH_CR2 opens a commissioning window on DUT_CE using BCM"
      cluster: "Administrator Commissioning"
      command: "OpenBasicCommissioningWindow"
      identity: "beta"
      PICS: CADMIN.S.C01.Rsp
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "CommissioningTimeout"
                value: PIXIT.CADMIN.CwDuration

    - label: "Step 10: Wait for the commissioning window in step 13 to timeout"
      PICS: CADMIN.S.C01.Rsp
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: PIXIT.CADMIN.CwDuration * 1000

    - label:
          "Step 11: TH_CR2 reads the window status to verify the DUT_CE window
          is closed"
      cluster: "Administrator Commissioning"
      PICS: CADMIN.S.A0000
      command: "readAttribute"
      attribute: "WindowStatus"
      response:
          value: 0

    - label: "Step 12a: TH_CR2 opens a commissioning window on DUT_CE using BCM"
      cluster: "Administrator Commissioning"
      command: "OpenBasicCommissioningWindow"
      identity: "beta"
      PICS: CADMIN.S.C01.Rsp
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "CommissioningTimeout"
                value: PIXIT.CADMIN.CwDuration

    - label: "Step 12b: Waiting after opening commissioning window"
      PICS: CADMIN.S.C01.Rsp
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: waitAfterCommissioning

    - label:
          "Step 13a: TH_CR1 starts a commissioning process with DUT_CE before
          the timeout from step 12"
      cluster: "CommissionerCommands"
      command: "PairWithCode"
      PICS: CADMIN.S
      arguments:
          values:
              - name: "nodeId"
                value: nodeId
              - name: "payload"
                value: payload
      response:
          error: FAILURE

    - label: "Remove TH2 FabricIndex"
      PICS: OPCREDS.S.C0a.Rsp && CADMIN.S
      identity: "beta"
      cluster: "Operational Credentials"
      command: "RemoveFabric"
      timedInteractionTimeoutMs: 10000
      arguments:
          values:
              - name: "FabricIndex"
                value: TH2FabricIndex
