# 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: 32.2.2. [TC-BDX-2.2] Synchronous file receiving

PICS:
    - MCORE.BDX.SynchronousReceiver

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

tests:
    - label: "Preconditions"
      verification: |
          This test can be verified using TC-SU-2.3 from the OTA Software Update section. Pls refer to OTA section for steps.
          This test can also be verified with DUT sending a ReceiveInit message to the TH.
      disabled: true

    - label:
          "Step 1: TH sends the first Block message to DUT + DUT sends a
          BlockAck message back to TH."
      verification: |
          Out of scope
      disabled: true

    - label:
          "Step 2: DUT sends the first BlockQuery message to TH + TH sends a
          Block message back to DUT."
      PICS: MCORE.BDX.Driver
      verification: |
          On OTA Reference Provider App logs, Verify that the BlockQuery message has the following mandatory fields.
           - Block Counter - Must start at 0 at the start of the transfer.

          [1636410922974] [59203:62969336] CHIP: [ATM] Handling received BDX Message
          [1636410922974] [59203:62969336] CHIP: [ATM] BlockQuery
          [1636410922974] [59203:62969336] CHIP: [ATM]   Block Counter: 0
      disabled: true

    - label:
          "Step 3: DUT sends further BlockQuery messages to TH + TH sends
          further Block messages back to DUT."
      PICS: MCORE.BDX.Driver
      verification: |
          On OTA Reference Provider App logs, Verify that the BlockQuery messages are sent in ascending and sequential block counter order.

          [1636410924476] [59203:62969337] CHIP: [ATM] BlockQuery
          [1636410924476] [59203:62969337] CHIP: [ATM]   Block Counter: 1

          [1636410925977] [59203:62969337] CHIP: [ATM] BlockQuery
          [1636410925977] [59203:62969337] CHIP: [ATM]   Block Counter: 2

          and so on
      disabled: true

    - label:
          "Step 4: DUT sends a BlockQueryWithSkip message to TH + TH sends a
          Block message back to DUT."
      PICS: MCORE.BDX.BlockQueryWithSkip
      verification: |
          Out of scope
      disabled: true

    - label:
          "Step 5: TH sends a BlockEOF message to DUT + DUT sends a BlockAckEOF
          message back to TH"
      verification: |
          On OTA Reference App logs,  Verify that the BlockAckEOF message has the following mandatory fields.
           Block Counter - Must correspond to the Block Counter which was embedded in the BlockEOF being acknowledged

          [1636410936486] [59203:62969336] CHIP: [ATM] Handling received BDX Message
          [1636410936486] [59203:62969336] CHIP: [ATM] BlockAckEOF
          [1636410936486] [59203:62969336] CHIP: [ATM]   Block Counter: 8

          Compare with

          [1636410935209] [59203:62969337] CHIP: [ATM] Sending BDX Message
          [1636410935209] [59203:62969337] CHIP: [ATM] BlockEOF
          [1636410935209] [59203:62969337] CHIP: [ATM]   Block Counter: 8
          [1636410935209] [59203:62969337] CHIP: [ATM]   Data Length: 147
      disabled: true
