# 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: 3.2.2. [TC-DGWIFI-2.2] Event Functionality [DUT as Server]

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

tests:
    - label:
          "Disconnect node WiFi as a result of de-authentication or
          dis-association."
      PICS: DGWIFI.S.E00
      verification: |
          This is an Optional event so its not compulsory to get the expected outcome

          ./chip-tool wifinetworkdiagnostics read-event disconnection 1 0

          Verify on the TH Log:

          [1655734228.476828][18708:18713] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Event 0x0000_0000
          [1655734228.476890][18708:18713] CHIP:TOO:          Event number: 2
          [1655734228.476945][18708:18713] CHIP:TOO:          Priority: Info
          [1655734228.476998][18708:18713] CHIP:TOO:          Timestamp: 30160685
          [1655734228.477141][18708:18713] CHIP:TOO:   Disconnection: {
          [1655734228.477215][18708:18713] CHIP:TOO:     ReasonCode: 65533
          [1655734228.477271][18708:18713] CHIP:TOO:    }
      disabled: true

    - label:
          "Disconnect node WiFi as a result of de-authentication or
          dis-association. DUT exhausts all internal retries."
      PICS: DGWIFI.S.E01
      verification: |
          This is an Optional event so its not compulsory to get the expected outcome

          ./chip-tool wifinetworkdiagnostics read-event association-failure 1 0

          Verify on the TH Log:

           CHIP:DMG: ReportDataMessage =
          [1651574380.297222][8941:8946] CHIP:DMG: {
          [1651574380.297245][8941:8946] CHIP:DMG:         SuppressResponse = true,
          [1651574380.297270][8941:8946] CHIP:DMG:         InteractionModelRevision = 1
          [1651574380.297293][8941:8946] CHIP:DMG: }
          [1651574380.297374][8941:8946] CHIP:EM: Sending Standalone Ack for MessageCounter:12534430 on exchange 15170i
      disabled: true

    - label: "Disconnect and reconnect node WiFi."
      PICS: DGWIFI.S.E02
      verification: |
          This is an Optional event so its not compulsory to get the expected outcome

          ./chip-tool wifinetworkdiagnostics read-event connection-status 1 0

          Verify on the TH Log:

          [1655734276.513474][18731:18736] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Event 0x0000_0002
          [1655734276.513504][18731:18736] CHIP:TOO:          Event number: 3
          [1655734276.513526][18731:18736] CHIP:TOO:          Priority: Info
          [1655734276.513548][18731:18736] CHIP:TOO:          Timestamp: 30160685
          [1655734276.513621][18731:18736] CHIP:TOO:   ConnectionStatus: {
          [1655734276.513659][18731:18736] CHIP:TOO:     ConnectionStatus: 0
          [1655734276.513733][18731:18736] CHIP:TOO:    }
      disabled: true
