# 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: 62.3.1. [TC-PS-3.1] Attributes with client as DUT

PICS:
    - PS.C
    - PS.C.AM-READ
    - PS.C.AO-READ
    - PS.C.AM-WRITE
    - PS.C.AO-WRITE

config:
    nodeId: 0x12344321
    cluster: "Power Source"
    endpoint: 0

tests:
    #- label: "Wait for the device to be commissioned"
    #  cluster: "DelayCommands"
    #  command: "WaitForCommissioning"

    - label: "Read attribute: Status"
      wait: "readAttribute"
      attribute: "Status"

    - label: "Read attribute: Order"
      wait: "readAttribute"
      attribute: "Order"

    - label: "Read attribute: Description"
      wait: "readAttribute"
      attribute: "Description"

    - label: "Read attribute: WiredAssessedInputVoltage"
      wait: "readAttribute"
      attribute: "WiredAssessedInputVoltage"

    - label: "Read attribute: WiredAssessedInputFrequency"
      wait: "readAttribute"
      attribute: "WiredAssessedInputFrequency"

    - label: "Read attribute: WiredCurrentType"
      wait: "readAttribute"
      attribute: "WiredCurrentType"

    - label: "Read attribute: WiredAssessedCurrent"
      wait: "readAttribute"
      attribute: "WiredAssessedCurrent"

    - label: "Read attribute: WiredNominalVoltage"
      wait: "readAttribute"
      attribute: "WiredNominalVoltage"

    - label: "Read attribute: WiredPresent"
      wait: "readAttribute"
      attribute: "WiredPresent"

    - label: "Read attribute: WiredMaximumCurrent"
      wait: "readAttribute"
      attribute: "WiredMaximumCurrent"

    - label: "Read attribute: ActiveWiredFaults"
      wait: "readAttribute"
      attribute: "ActiveWiredFaults"

    - label: "Read attribute: BatVoltage"
      wait: "readAttribute"
      attribute: "BatVoltage"

    - label: "Read attribute: BatPercentRemaining"
      wait: "readAttribute"
      attribute: "BatPercentRemaining"

    - label: "Read attribute: BatTimeRemaining"
      wait: "readAttribute"
      attribute: "BatTimeRemaining"

    - label: "Read attribute: BatChargeLevel"
      wait: "readAttribute"
      attribute: "BatChargeLevel"

    - label: "Read attribute: BatReplacementNeeded"
      wait: "readAttribute"
      attribute: "BatReplacementNeeded"

    - label: "Read attribute: BatReplaceability"
      wait: "readAttribute"
      attribute: "BatReplaceability"

    - label: "Read attribute: BatPresent"
      wait: "readAttribute"
      attribute: "BatPresent"

    - label: "Read attribute: ActiveBatFaults"
      wait: "readAttribute"
      attribute: "ActiveBatFaults"

    - label: "Read attribute: BatReplacementDescription"
      wait: "readAttribute"
      attribute: "BatReplacementDescription"

    - label: "Read attribute: BatCommonDesignation"
      wait: "readAttribute"
      attribute: "BatCommonDesignation"

    - label: "Read attribute: BatANSIDesignation"
      wait: "readAttribute"
      attribute: "BatANSIDesignation"

    - label: "Read attribute: BatIECDesignation"
      wait: "readAttribute"
      attribute: "BatIECDesignation"

    - label: "Read attribute: BatApprovedChemistry"
      wait: "readAttribute"
      attribute: "BatApprovedChemistry"

    - label: "Read attribute: BatCapacity"
      wait: "readAttribute"
      attribute: "BatCapacity"

    - label: "Read attribute: BatQuantity"
      wait: "readAttribute"
      attribute: "BatQuantity"

    - label: "Read attribute: BatChargeState"
      wait: "readAttribute"
      attribute: "BatChargeState"

    - label: "Read attribute: BatTimeToFullCharge"
      wait: "readAttribute"
      attribute: "BatTimeToFullCharge"

    - label: "Read attribute: BatFunctionalWhileCharging"
      wait: "readAttribute"
      attribute: "BatFunctionalWhileCharging"

    - label: "Read attribute: BatChargingCurrent"
      wait: "readAttribute"
      attribute: "BatChargingCurrent"

    - label: "Read attribute: ActiveBatChargeFaults"
      wait: "readAttribute"
      attribute: "ActiveBatChargeFaults"

    - label:
          "Configure TH such that it implements mandatory and none of the
          optional attributes of the server-side of the cluster, and that it
          also reflects this in global attributes such as FeatureMap and
          AttributeList. Commission DUT to TH again"
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool powersource read feature-map 1 1
          verify the " feature-map  response" on the TH (all-cluster-minimal-app) log:
          [1678873672.092602][348369:348369] CHIP:IM: Received Read request
          [1678873672.092651][348369:348369] CHIP:DMG: ReadRequestMessage =
          [1678873672.092660][348369:348369] CHIP:DMG: {
          [1678873672.092669][348369:348369] CHIP:DMG:         AttributePathIBs =
          [1678873672.092680][348369:348369] CHIP:DMG:         [
          [1678873672.092706][348369:348369] CHIP:DMG:                 AttributePathIB =
          [1678873672.092715][348369:348369] CHIP:DMG:                 {
          [1678873672.092724][348369:348369] CHIP:DMG:                         Endpoint = 0x1,
          [1678873672.092735][348369:348369] CHIP:DMG:                         Cluster = 0x2f,
          [1678873672.092747][348369:348369] CHIP:DMG:                         Attribute = 0x0000_FFFC,
          [1678873672.092757][348369:348369] CHIP:DMG:                 }
          [1678873672.092770][348369:348369] CHIP:DMG:
          [1678873672.092777][348369:348369] CHIP:DMG:         ],
          [1678873672.092791][348369:348369] CHIP:DMG:
          [1678873672.092800][348369:348369] CHIP:DMG:         isFabricFiltered = true,
          [1678873672.092810][348369:348369] CHIP:DMG:         InteractionModelRevision = 1
          [1678873672.092818][348369:348369] CHIP:DMG: },
          [1678873672.092858][348369:348369] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1678873672.092892][348369:348369] CHIP:DMG: Building Reports for ReadHandler


          ./chip-tool powersource read attribute-list 1 0

          verify the " attribute-list response" on the TH (all-cluster-minimal-app) log:

          [1659596771.124636][2409:2409] CHIP:IM: Received Read request
          [1659596771.124765][2409:2409] CHIP:DMG: ReadRequestMessage =
          [1659596771.124795][2409:2409] CHIP:DMG: {
          [1659596771.124814][2409:2409] CHIP:DMG:         AttributePathIBs =
          [1659596771.124838][2409:2409] CHIP:DMG:         [
          [1659596771.124859][2409:2409] CHIP:DMG:                 AttributePathIB =
          [1659596771.124901][2409:2409] CHIP:DMG:                 {
          [1659596771.124928][2409:2409] CHIP:DMG:                         Endpoint = 0x0,
          [1659596771.124963][2409:2409] CHIP:DMG:                         Cluster = 0x2f,
          [1659596771.124989][2409:2409] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659596771.125020][2409:2409] CHIP:DMG:                 }
          [1659596771.125045][2409:2409] CHIP:DMG:
          [1659596771.125077][2409:2409] CHIP:DMG:         ],
          [1659596771.125102][2409:2409] CHIP:DMG:
          [1659596771.125134][2409:2409] CHIP:DMG:         isFabricFiltered = true,
          [1659596771.125156][2409:2409] CHIP:DMG:         InteractionModelRevision = 1
          [1659596771.125177][2409:2409] CHIP:DMG: },



          ./chip-tool powersource read status 1 1

          verify the " status response" on the TH (all-cluster-minimal-app) log:

          [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8
          [1646155382.978021][33190:33190] CHIP:IM: Received Read request
          [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage =
          [1646155382.978143][33190:33190] CHIP:DMG: {
          [1646155382.978167][33190:33190] CHIP:DMG:         AttributePathIBs =
          [1646155382.978204][33190:33190] CHIP:DMG:         [
          [1646155382.978309][33190:33190] CHIP:DMG:                 AttributePathIB =
          [1646155382.978369][33190:33190] CHIP:DMG:                 {
          [1646155382.978408][33190:33190] CHIP:DMG:                         Endpoint = 0x1,
          [1646155382.978459][33190:33190] CHIP:DMG:                         Cluster = 0x2f,
          [1646155382.978513][33190:33190] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1646155382.978545][33190:33190] CHIP:DMG:                 }
          [1646155382.978767][33190:33190] CHIP:DMG:
          [1646155382.978804][33190:33190] CHIP:DMG:         ],
          [1646155382.978836][33190:33190] CHIP:DMG:
          [1646155382.978872][33190:33190] CHIP:DMG:         isFabricFiltered = false,
          [1646155382.978901][33190:33190] CHIP:DMG:         InteractionModelRevision = 1
          [1646155382.978927][33190:33190] CHIP:DMG: },
          [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1646155382.979658][33190:33190] CHIP:DMG: <RE:Run> Cluster 2f, Attribute 0 is dirty
          [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
          [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v
          [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v

          ./chip-tool powersource read order 1 1

          verify the " order response" on the TH (all-cluster-minimal-app) log:

          [1653395573.862606][19412:19412] CHIP:IM: Received Read request
          [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395573.862739][19412:19412] CHIP:DMG: {
          [1653395573.862779][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395573.862827][19412:19412] CHIP:DMG:         [
          [1653395573.862872][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395573.862928][19412:19412] CHIP:DMG:                 {
          [1653395573.862980][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395573.863037][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395573.863101][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1653395573.863161][19412:19412] CHIP:DMG:                 }
          [1653395573.863217][19412:19412] CHIP:DMG:
          [1653395573.863267][19412:19412] CHIP:DMG:         ],
          [1653395573.863319][19412:19412] CHIP:DMG:
          [1653395573.863367][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395573.863413][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395573.863456][19412:19412] CHIP:DMG: },
          [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0

          ./chip-tool powersource read description 1 1

          verify the " description response" on the TH (all-cluster-minimal-app) log:

          CHIP:IM: Received Read request
          [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage =
          [1653395620.020364][19412:19412] CHIP:DMG: {
          [1653395620.020406][19412:19412] CHIP:DMG:         AttributePathIBs =
          [1653395620.020463][19412:19412] CHIP:DMG:         [
          [1653395620.020511][19412:19412] CHIP:DMG:                 AttributePathIB =
          [1653395620.020576][19412:19412] CHIP:DMG:                 {
          [1653395620.020635][19412:19412] CHIP:DMG:                         Endpoint = 0x1,
          [1653395620.020703][19412:19412] CHIP:DMG:                         Cluster = 0x2f,
          [1653395620.020770][19412:19412] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1653395620.020833][19412:19412] CHIP:DMG:                 }
          [1653395620.020893][19412:19412] CHIP:DMG:
          [1653395620.020945][19412:19412] CHIP:DMG:         ],
          [1653395620.020999][19412:19412] CHIP:DMG:
          [1653395620.021052][19412:19412] CHIP:DMG:         isFabricFiltered = true,
          [1653395620.021104][19412:19412] CHIP:DMG:         InteractionModelRevision = 1
          [1653395620.021153][19412:19412] CHIP:DMG: },
          [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports]


          ./chip-tool powersource read bat-charge-level 1 1

          Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log

          [1663140804.059599][2414:2414] CHIP:IM: Received Read request
          [1663140804.059679][2414:2414] CHIP:DMG: ReadRequestMessage =
          [1663140804.059706][2414:2414] CHIP:DMG: {
          [1663140804.059728][2414:2414] CHIP:DMG:         AttributePathIBs =
          [1663140804.059754][2414:2414] CHIP:DMG:         [
          [1663140804.059779][2414:2414] CHIP:DMG:                 AttributePathIB =
          [1663140804.059828][2414:2414] CHIP:DMG:                 {
          [1663140804.059861][2414:2414] CHIP:DMG:                         Endpoint = 0x1,
          [1663140804.059913][2414:2414] CHIP:DMG:                         Cluster = 0x2f,
          [1663140804.059946][2414:2414] CHIP:DMG:                         Attribute = 0x0000_000E,
          [1663140804.059976][2414:2414] CHIP:DMG:                 }
          [1663140804.060006][2414:2414] CHIP:DMG:
          [1663140804.060033][2414:2414] CHIP:DMG:         ],
          [1663140804.060060][2414:2414] CHIP:DMG:
          [1663140804.060087][2414:2414] CHIP:DMG:         isFabricFiltered = true,
          [1663140804.060111][2414:2414] CHIP:DMG:         InteractionModelRevision = 1
          [1663140804.060136][2414:2414] CHIP:DMG: },


          ./chip-tool powersource read bat-replacement-needed 1 1

          Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log

          [1663141268.348233][2414:2414] CHIP:IM: Received Read request
          [1663141268.348332][2414:2414] CHIP:DMG: ReadRequestMessage =
          [1663141268.348388][2414:2414] CHIP:DMG: {
          [1663141268.348418][2414:2414] CHIP:DMG:         AttributePathIBs =
          [1663141268.348465][2414:2414] CHIP:DMG:         [
          [1663141268.348498][2414:2414] CHIP:DMG:                 AttributePathIB =
          [1663141268.348545][2414:2414] CHIP:DMG:                 {
          [1663141268.348584][2414:2414] CHIP:DMG:                         Endpoint = 0x1,
          [1663141268.348637][2414:2414] CHIP:DMG:                         Cluster = 0x2f,
          [1663141268.348685][2414:2414] CHIP:DMG:                         Attribute = 0x0000_000F,
          [1663141268.348735][2414:2414] CHIP:DMG:                 }
          [1663141268.348774][2414:2414] CHIP:DMG:
          [1663141268.348820][2414:2414] CHIP:DMG:         ],
          [1663141268.348857][2414:2414] CHIP:DMG:
          [1663141268.348904][2414:2414] CHIP:DMG:         isFabricFiltered = true,
          [1663141268.348938][2414:2414] CHIP:DMG:         InteractionModelRevision = 1
          [1663141268.348982][2414:2414] CHIP:DMG: },
          [1663141268.349086][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1663141268.349214][2414:2414] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1663141268.349251][2414:2414] CHIP:DMG: <RE:Run> Cluster 2f, Attribute f is dirty


          ./chip-tool powersource read bat-replaceability 1 1

          Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log


          [1663141378.115928][2414:2414] CHIP:DMG: ReadRequestMessage =
          [1663141378.115978][2414:2414] CHIP:DMG: {
          [1663141378.116006][2414:2414] CHIP:DMG:         AttributePathIBs =
          [1663141378.116050][2414:2414] CHIP:DMG:         [
          [1663141378.116080][2414:2414] CHIP:DMG:                 AttributePathIB =
          [1663141378.116124][2414:2414] CHIP:DMG:                 {
          [1663141378.116160][2414:2414] CHIP:DMG:                         Endpoint = 0x1,
          [1663141378.116208][2414:2414] CHIP:DMG:                         Cluster = 0x2f,
          [1663141378.116247][2414:2414] CHIP:DMG:                         Attribute = 0x0000_0010,
          [1663141378.116294][2414:2414] CHIP:DMG:                 }
          [1663141378.116330][2414:2414] CHIP:DMG:
          [1663141378.116372][2414:2414] CHIP:DMG:         ],
          [1663141378.116407][2414:2414] CHIP:DMG:
          [1663141378.116450][2414:2414] CHIP:DMG:         isFabricFiltered = true,
          [1663141378.116481][2414:2414] CHIP:DMG:         InteractionModelRevision = 1
          [1663141378.116521][2414:2414] CHIP:DMG: },
          [1663141378.116621][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports]
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label:
          "DUT reads all supported optional attributes from TH one at a time in
          a manufacturer specific order"
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)



          Verify TH(all-clusters-minimal-app) receives the read command, and responds that this attribute is not available and also DUT is aware that the optional attributes are not available, and does not issue read requests for the attributes which it did read in step 2


          ./chip-tool powersource read bat-charge-level 1 1

          on TH all-clusters-minimal-app verify status response a  UNSUPPORTED_ATTRIBUTE
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)


          ./chip-tool powersource read bat-replacement-needed 1 1

          on TH all-clusters-minimal-app verify status response a  UNSUPPORTED_ATTRIBUTE
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)


          ./chip-tool powersource read bat-replaceability 1 1

          on TH all-clusters-minimal-app verify status response a  UNSUPPORTED_ATTRIBUTE
           General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP && PS.C.AO-READ
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label:
          "DUT writes a suitable value to all supported optional attributes on
          the TH one at a time in a manufacturer specific order"
      verification: |
          This cluster doesn"t have any writable attributes
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP && PS.C.AO-WRITE
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"
