# 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: 62.2.2. [TC-PS-2.2] Event reporting with server as DUT

PICS:
    - PS.S

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

tests:
    - label: "Commission DUT to TH"
      verification: |

      disabled: true

    - label: "Bring the DUT into a state without any wired faults."
      PICS: PS.S.A000a
      verification: |

      disabled: true

    - label: "TH reads the ActiveWiredFaults attribute from the DUT"
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-wired-faults 1 1

          Verify on TH logs:
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Set up subscription to WiredFaultChange event"
      PICS: PS.S.E00 && PS.M.ManualWiredFault
      verification: |
          ./chip-tool interactive start

          powersource subscribe-event-by-id 120 3600 1  1

          Verify on the TH Log:

          [1651671151.484803][6266:6266] CHIP:DMG: SubscribeRequestMessage =
          [1651671151.484857][6266:6266] CHIP:DMG: {
          [1651671151.484907][6266:6266] CHIP:DMG:         KeepSubscriptions = false,
          [1651671151.484968][6266:6266] CHIP:DMG:         MinIntervalFloorSeconds = 0x78,
          [1651671151.485025][6266:6266] CHIP:DMG:         MaxIntervalCeilingSeconds = 0xe10,
          [1651671151.485069][6266:6266] CHIP:DMG:         EventPathIBs =
          [1651671151.485134][6266:6266] CHIP:DMG:         [
          [1651671151.485185][6266:6266] CHIP:DMG:                 EventPath =
          [1651671151.485246][6266:6266] CHIP:DMG:                 {
          [1651671151.485303][6266:6266] CHIP:DMG:                         Endpoint = 0x1,
          [1651671151.485368][6266:6266] CHIP:DMG:                         Cluster = 0x2f,
          [1651671151.485439][6266:6266] CHIP:DMG:                         Event = 0x0,
          [1651671151.485510][6266:6266] CHIP:DMG:                 },
          [1651671151.485570][6266:6266] CHIP:DMG:
          [1651671151.485620][6266:6266] CHIP:DMG:         ],
          [1651671151.485679][6266:6266] CHIP:DMG:
          [1651671151.485731][6266:6266] CHIP:DMG:         isFabricFiltered = true,
          [1651671151.485784][6266:6266] CHIP:DMG:         InteractionModelRevision = 1
          [1651671151.485827][6266:6266] CHIP:DMG: },
          [1651671151.485956][6266:6266] CHIP:DMG: Final negotiated min/max parameters: Min = 120s, Max = 3600s
      disabled: true

    - label: "Bring the DUT into a wired fault state."
      verification: |
          DUT ACTION REQUIRED
      disabled: true

    - label: "TH reads the ActiveWiredFaults attribute from the DUT"
      PICS: PS.S.A000a && PS.M.ManualWiredFault
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-wired-faults 1 1

          Verify on the TH Log:

          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Bring the DUT back into a clean state."
      PICS: PS.S.E00 && PS.M.ManualWiredFault
      verification: |
          DUT ACTION REQUIRED
      disabled: true

    - label: "Bring the DUT into a state without any battery faults."
      PICS: PS.S.A0012
      verification: |

      disabled: true

    - label: "TH reads the ActiveBatFaults attribute from the DUT"
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-battery-faults 12345 1

          Verify on the TH Log:

          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Set up subscription to BatFaultChange event"
      PICS: PS.S.E01 && PS.M.ManualBatFault
      verification: |
          ./chip-tool interactive start
           powersource subscribe-event-by-id  0 100 1  1


          Verify on the TH Log:
           SubscribeRequestMessage =
          [1651667556.522349][6266:6266] CHIP:DMG: {
          [1651667556.522399][6266:6266] CHIP:DMG:         KeepSubscriptions = false,
          [1651667556.522454][6266:6266] CHIP:DMG:         MinIntervalFloorSeconds = 0x0,
          [1651667556.522512][6266:6266] CHIP:DMG:         MaxIntervalCeilingSeconds = 0x64,
          [1651667556.522564][6266:6266] CHIP:DMG:         EventPathIBs =
          [1651667556.522619][6266:6266] CHIP:DMG:         [
          [1651667556.522670][6266:6266] CHIP:DMG:                 EventPath =
          [1651667556.522730][6266:6266] CHIP:DMG:                 {
          [1651667556.522789][6266:6266] CHIP:DMG:                         Endpoint = 0x1,
          [1651667556.522897][6266:6266] CHIP:DMG:                         Cluster = 0x2f,
          [1651667556.522965][6266:6266] CHIP:DMG:                         Event = 0x1,
          [1651667556.523026][6266:6266] CHIP:DMG:                 },
          [1651667556.523090][6266:6266] CHIP:DMG:
          [1651667556.523140][6266:6266] CHIP:DMG:         ],
          [1651667556.523199][6266:6266] CHIP:DMG:
          [1651667556.523243][6266:6266] CHIP:DMG:         isFabricFiltered = true,
          [1651667556.523296][6266:6266] CHIP:DMG:         InteractionModelRevision = 1
          [1651667556.523344][6266:6266] CHIP:DMG: },
          [1651667556.523471][6266:6266] CHIP:DMG: Final negotiated min/max parameters: Min = 0s, Max = 100s
      disabled: true

    - label: "Bring the DUT into a battery fault state."
      verification: |
          DUT ACTION REQUIRED
      disabled: true

    - label: "TH reads the ActiveBatFaults attribute from the DUT"
      PICS: PS.S.A0012 && PS.M.ManualBatFault
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-battery-faults 1 1

          Verify on the TH Log:
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Bring the DUT back into a clean state."
      PICS: PS.S.E01 && PS.M.ManualWiredFault
      verification: |
          DUT ACTION REQUIRED
      disabled: true

    - label: "Bring the DUT into a state without any charge faults."
      PICS: PS.S.A001e
      verification: |

      disabled: true

    - label: "TH reads the ActiveBatChargeFaults attribute from the DUT"
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-battery-charge-faults 1 1

          Verify on the TH Log:
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Set up subscription to BatChargeFaultChange event"
      PICS: PS.S.E02 && PS.M.ManualBatChargeFault
      verification: |
          ./chip-tool interactive start

           powersource subscribe-event-by-id 1 100 1000 1 1

          Verify on the TH Log:
          [1651671068.817350][6266:6266] CHIP:IM: Received Subscribe request
          [1651671068.817489][6266:6266] CHIP:DMG: SubscribeRequestMessage =
          [1651671068.817529][6266:6266] CHIP:DMG: {
          [1651671068.817553][6266:6266] CHIP:DMG:         KeepSubscriptions = false,
          [1651671068.817612][6266:6266] CHIP:DMG:         MinIntervalFloorSeconds = 0x0,
          [1651671068.817672][6266:6266] CHIP:DMG:         MaxIntervalCeilingSeconds = 0x64,
          [1651671068.817707][6266:6266] CHIP:DMG:         EventPathIBs =
          [1651671068.817734][6266:6266] CHIP:DMG:         [
          [1651671068.817769][6266:6266] CHIP:DMG:                 EventPath =
          [1651671068.817830][6266:6266] CHIP:DMG:                 {
          [1651671068.817883][6266:6266] CHIP:DMG:                         Endpoint = 0x1,
          [1651671068.817923][6266:6266] CHIP:DMG:                         Cluster = 0x2f,
          [1651671068.817985][6266:6266] CHIP:DMG:                         Event = 0x2,
          [1651671068.818013][6266:6266] CHIP:DMG:                 },
          [1651671068.818074][6266:6266] CHIP:DMG:
          [1651671068.818129][6266:6266] CHIP:DMG:         ],
          [1651671068.818159][6266:6266] CHIP:DMG:
          [1651671068.818228][6266:6266] CHIP:DMG:         isFabricFiltered = true,
          [1651671068.818310][6266:6266] CHIP:DMG:         InteractionModelRevision = 1
          [1651671068.818336][6266:6266] CHIP:DMG: },
          [1651671068.818414][6266:6266] CHIP:DMG: Final negotiated min/max parameters: Min = 0s, Max = 100s
      disabled: true

    - label: "Bring the DUT into a charge fault state."
      verification: |
          DUT ACTION REQUIRED
      disabled: true

    - label: "TH reads the ActiveBatChargeFaults attribute from the DUT"
      PICS: PS.S.A001e && PS.M.ManualBatChargeFault
      verification: |
          Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE

          ./chip-tool powersource read active-battery-charge-faults 1 1

          Verify on the TH Log:
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      disabled: true

    - label: "Bring the DUT back into a clean state."
      PICS: PS.S.E02 && PS.M.ManualBatChargeFault
      verification: |
          DUT ACTION REQUIRED
      disabled: true
