# 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: 15.1.1. [TC-PCC-3.1] Global attributes with server as DUT

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

config:
    nodeId: 0x12344321
    cluster: "Pump Configuration and Control"
    endpoint: 0

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

    #Read Mandatory attributes
    - label: "Read attribute MaxPressure"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "MaxPressure"

    - label: "Read attribute MaxSpeed"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "MaxSpeed"

    - label: "Read attribute MaxFlow"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "MaxFlow"

    - label: "Read attribute EffectiveOperationMode"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "EffectiveOperationMode"

    - label: "Read attribute EffectiveControlMode"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "EffectiveControlMode"

    - label: "Read attribute Capacity"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "Capacity"

    - label: "Read attribute OperationMode"
      PICS: PCC.C.AM-READ
      wait: "readAttribute"
      attribute: "OperationMode"

    #Read Optional attributes
    - label: "Read attribute MinConstPressure"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MinConstPressure"

    - label: "Read attribute MaxConstPressure"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MaxConstPressure"

    - label: "Read attribute MinCompPressure"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MinCompPressure"

    - label: "Read attribute MaxCompPressure"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MaxCompPressure"

    - label: "Read attribute MinConstSpeed"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MinConstSpeed"

    - label: "Read attribute MaxConstSpeed"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MaxConstSpeed"

    - label: "Read attribute MinConstFlow"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MinConstFlow"

    - label: "Read attribute MaxConstFlow"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MaxConstFlow"

    - label: "Read attribute MinConstTemp"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MinConstTemp"

    - label: "Read attribute MaxConstTemp"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "MaxConstTemp"

    - label: "Read attribute PumpStatus"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "PumpStatus"

    - label: "Read attribute Speed"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "Speed"

    - label: "Read attribute LifetimeRunningHours"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "LifetimeRunningHours"

    - label: "Read attribute Power"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "Power"

    - label: "Read attribute LifetimeEnergyConsumed"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "LifetimeEnergyConsumed"

    - label: "Read attribute ControlMode"
      PICS: PCC.C.AO-READ
      wait: "readAttribute"
      attribute: "ControlMode"

    #Write attributes
    - label: "Write attribute LifetimeRunningHours"
      PICS: PCC.C.AO-WRITE
      wait: "writeAttribute"
      attribute: "LifetimeRunningHours"
      arguments:
          value:

    - label: "Write attribute LifetimeEnergyConsumed"
      PICS: PCC.C.AO-WRITE
      wait: "writeAttribute"
      attribute: "LifetimeEnergyConsumed"
      arguments:
          value:

    - label: "Write attribute OperationMode"
      PICS: PCC.C.AO-WRITE
      wait: "writeAttribute"
      attribute: "OperationMode"
      arguments:
          value:

    - label: "Write attribute ControlMode"
      PICS: PCC.C.AO-WRITE
      wait: "writeAttribute"
      attribute: "ControlMode"
      arguments:
          value:

    - 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 pumpconfigurationandcontrol read attribute-list  1 1


          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1660745892.540246][3657:3657] CHIP:IM: Received Read request
          [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage =
          [1660745892.540346][3657:3657] CHIP:DMG: {
          [1660745892.540364][3657:3657] CHIP:DMG:        AttributePathIBs =
          [1660745892.540401][3657:3657] CHIP:DMG:        [
          [1660745892.540422][3657:3657] CHIP:DMG:                AttributePathIB =
          [1660745892.540452][3657:3657] CHIP:DMG:                {
          [1660745892.540487][3657:3657] CHIP:DMG:                        Endpoint = 0x1,
          [1660745892.540517][3657:3657] CHIP:DMG:                        Cluster = 0x200,
          [1660745892.540556][3657:3657] CHIP:DMG:                        Attribute = 0x0000_FFFB,
          [1660745892.540582][3657:3657] CHIP:DMG:                }
          [1660745892.540616][3657:3657] CHIP:DMG:
          [1660745892.540638][3657:3657] CHIP:DMG:        ],
          [1660745892.540673][3657:3657] CHIP:DMG:
          [1660745892.540696][3657:3657] CHIP:DMG:        isFabricFiltered = true,
          [1660745892.540726][3657:3657] CHIP:DMG:        InteractionModelRevision = 1
          [1660745892.540747][3657:3657] CHIP:DMG: },
          [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1660745892.540954][3657:3657] CHIP:DMG: <RE:Run> Cluster 200, Attribute fffb is dirty
          [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0)

          ./chip-tool pumpconfigurationandcontrol  read feature-map  1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1660745929.334567][3657:3657] CHIP:IM: Received Read request
          [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage =
          [1660745929.334677][3657:3657] CHIP:DMG: {
          [1660745929.334696][3657:3657] CHIP:DMG:        AttributePathIBs =
          [1660745929.334728][3657:3657] CHIP:DMG:        [
          [1660745929.334750][3657:3657] CHIP:DMG:                AttributePathIB =
          [1660745929.334778][3657:3657] CHIP:DMG:                {
          [1660745929.334814][3657:3657] CHIP:DMG:                        Endpoint = 0x1,
          [1660745929.334853][3657:3657] CHIP:DMG:                        Cluster = 0x200,
          [1660745929.334884][3657:3657] CHIP:DMG:                        Attribute = 0x0000_FFFC,
          [1660745929.334920][3657:3657] CHIP:DMG:                }
          [1660745929.334947][3657:3657] CHIP:DMG:
          [1660745929.334978][3657:3657] CHIP:DMG:        ],
          [1660745929.335006][3657:3657] CHIP:DMG:
          [1660745929.335037][3657:3657] CHIP:DMG:        isFabricFiltered = true,
          [1660745929.335059][3657:3657] CHIP:DMG:        InteractionModelRevision = 1
          [1660745929.335079][3657:3657] CHIP:DMG: },
          [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1660745929.335291][3657:3657] CHIP:DMG: <RE:Run> Cluster 200, Attribute fffc is dirty
          [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0)



          ./chip-tool pumpconfigurationandcontrol read max-pressure 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651148412.273866][2336:2336] CHIP:IM: Received Read request
          [1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651148412.273950][2336:2336] CHIP:DMG: {
          [1651148412.273972][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651148412.273999][2336:2336] CHIP:DMG:         [
          [1651148412.274024][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651148412.274063][2336:2336] CHIP:DMG:                 {
          [1651148412.274093][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651148412.274126][2336:2336] CHIP:DMG:                         Cluster = 0x200,
          [1651148412.274156][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1651148412.274186][2336:2336] CHIP:DMG:                 }
          [1651148412.274216][2336:2336] CHIP:DMG:
          [1651148412.274242][2336:2336] CHIP:DMG:         ],
          [1651148412.274271][2336:2336] CHIP:DMG:
          [1651148412.274298][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651148412.274325][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651148412.274349][2336:2336] CHIP:DMG: },
          [1651148412.274424][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]

          ./chip-tool pumpconfigurationandcontrol read max-speed 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651148440.471321][2336:2336] CHIP:IM: Received Read request
          [1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651148440.471416][2336:2336] CHIP:DMG: {
          [1651148440.471438][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651148440.471481][2336:2336] CHIP:DMG:         [
          [1651148440.471507][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651148440.471546][2336:2336] CHIP:DMG:                 {
          [1651148440.471571][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651148440.471609][2336:2336] CHIP:DMG:                         Cluster = 0x200,
          [1651148440.471642][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1651148440.471681][2336:2336] CHIP:DMG:                 }
          [1651148440.471719][2336:2336] CHIP:DMG:
          [1651148440.471745][2336:2336] CHIP:DMG:         ],
          [1651148440.471770][2336:2336] CHIP:DMG:
          [1651148440.471806][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651148440.471831][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651148440.471867][2336:2336] CHIP:DMG: },
          [1651148440.471947][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651148440.472042][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          ./chip-tool pumpconfigurationandcontrol read max-flow 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651148472.518933][2336:2336] CHIP:IM: Received Read request
          [1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage =
          [1651148472.519023][2336:2336] CHIP:DMG: {
          [1651148472.519071][2336:2336] CHIP:DMG:         AttributePathIBs =
          [1651148472.519104][2336:2336] CHIP:DMG:         [
          [1651148472.519163][2336:2336] CHIP:DMG:                 AttributePathIB =
          [1651148472.519218][2336:2336] CHIP:DMG:                 {
          [1651148472.519286][2336:2336] CHIP:DMG:                         Endpoint = 0x1,
          [1651148472.519328][2336:2336] CHIP:DMG:                         Cluster = 0x200,
          [1651148472.519364][2336:2336] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1651148472.519400][2336:2336] CHIP:DMG:                 }
          [1651148472.519459][2336:2336] CHIP:DMG:
          [1651148472.519521][2336:2336] CHIP:DMG:         ],
          [1651148472.519555][2336:2336] CHIP:DMG:
          [1651148472.519584][2336:2336] CHIP:DMG:         isFabricFiltered = true,
          [1651148472.519666][2336:2336] CHIP:DMG:         InteractionModelRevision = 1
          [1651148472.519695][2336:2336] CHIP:DMG: },
          [1651148472.519802][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1651148472.519971][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          ./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command


          [1651570515.206834][9246:9246] CHIP:IM: Received Read request
          [1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage =
          [1651570515.206966][9246:9246] CHIP:DMG: {
          [1651570515.207006][9246:9246] CHIP:DMG:         AttributePathIBs =
          [1651570515.207053][9246:9246] CHIP:DMG:         [
          [1651570515.207098][9246:9246] CHIP:DMG:                 AttributePathIB =
          [1651570515.207154][9246:9246] CHIP:DMG:                 {
          [1651570515.207210][9246:9246] CHIP:DMG:                         Endpoint = 0x1,
          [1651570515.207265][9246:9246] CHIP:DMG:                         Cluster = 0x200,
          [1651570515.207322][9246:9246] CHIP:DMG:                         Attribute = 0x0000_0011,
          [1651570515.207381][9246:9246] CHIP:DMG:                 }
          [1651570515.207436][9246:9246] CHIP:DMG:
          [1651570515.207483][9246:9246] CHIP:DMG:         ],
          [1651570515.207535][9246:9246] CHIP:DMG:
          [1651570515.207587][9246:9246] CHIP:DMG:         isFabricFiltered = true,
          [1651570515.207634][9246:9246] CHIP:DMG:         InteractionModelRevision = 1
          [1651570515.207677][9246:9246] CHIP:DMG: }

          ./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651570975.559213][9246:9246] CHIP:IM: Received Read request
          [1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage =
          [1651570975.559295][9246:9246] CHIP:DMG: {
          [1651570975.559317][9246:9246] CHIP:DMG:         AttributePathIBs =
          [1651570975.559343][9246:9246] CHIP:DMG:         [
          [1651570975.559367][9246:9246] CHIP:DMG:                 AttributePathIB =
          [1651570975.559400][9246:9246] CHIP:DMG:                 {
          [1651570975.559428][9246:9246] CHIP:DMG:                         Endpoint = 0x1,
          [1651570975.559465][9246:9246] CHIP:DMG:                         Cluster = 0x200,
          [1651570975.559602][9246:9246] CHIP:DMG:                         Attribute = 0x0000_0012,
          [1651570975.559626][9246:9246] CHIP:DMG:                 }
          [1651570975.559655][9246:9246] CHIP:DMG:
          [1651570975.559681][9246:9246] CHIP:DMG:         ],
          [1651570975.559710][9246:9246] CHIP:DMG:

          ./chip-tool pumpconfigurationandcontrol read capacity  1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651571009.295069][9246:9246] CHIP:IM: Received Read request
          [1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage =
          [1651571009.295203][9246:9246] CHIP:DMG: {
          [1651571009.295244][9246:9246] CHIP:DMG:         AttributePathIBs =
          [1651571009.295293][9246:9246] CHIP:DMG:         [
          [1651571009.295339][9246:9246] CHIP:DMG:                 AttributePathIB =
          [1651571009.295387][9246:9246] CHIP:DMG:                 {
          [1651571009.295438][9246:9246] CHIP:DMG:                         Endpoint = 0x1,
          [1651571009.295493][9246:9246] CHIP:DMG:                         Cluster = 0x200,
          [1651571009.295548][9246:9246] CHIP:DMG:                         Attribute = 0x0000_0013,
          [1651571009.295597][9246:9246] CHIP:DMG:                 }
          [1651571009.295649][9246:9246] CHIP:DMG:
          [1651571009.295696][9246:9246] CHIP:DMG:         ],
          [1651571009.295747][9246:9246] CHIP:DMG:

          ./chip-tool pumpconfigurationandcontrol read  operation-mode 1 1

          verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command

          [1651571334.617100][9337:9337] CHIP:IM: Received Read request
          [1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage =
          [1651571334.617181][9337:9337] CHIP:DMG: {
          [1651571334.617213][9337:9337] CHIP:DMG:         AttributePathIBs =
          [1651571334.617250][9337:9337] CHIP:DMG:         [
          [1651571334.617291][9337:9337] CHIP:DMG:                 AttributePathIB =
          [1651571334.617338][9337:9337] CHIP:DMG:                 {
          [1651571334.617368][9337:9337] CHIP:DMG:                         Endpoint = 0x1,
          [1651571334.617404][9337:9337] CHIP:DMG:                         Cluster = 0x200,
          [1651571334.617433][9337:9337] CHIP:DMG:                         Attribute = 0x0000_0020,
          [1651571334.617467][9337:9337] CHIP:DMG:                 }
          [1651571334.617499][9337:9337] CHIP:DMG:
          [1651571334.617537][9337:9337] CHIP:DMG:         ],
          [1651571334.617567][9337:9337] CHIP:DMG:    "
      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)


          ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read min-comp-pressure  1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read max-comp-pressure  1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)


          ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read max-const-flow  1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read pump-status 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read speed  1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read  power 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read  lifetime-energy-consumed  1  1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol read  control-mode 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      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: |
          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 pumpconfigurationandcontrol write control-mode 0 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)

          ./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed  1 1 1
          General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_SKIP_SAMPLE_APP
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"
