# 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: 36.1.1. [TC-PRS-1.1] Global attributes with server as DUT

PICS:
    - PRS.S

config:
    nodeId: 0x12344321
    cluster: "Pressure Measurement"
    endpoint: 1

tests:
    - label: "Wait for the commissioned device to be retrieved"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "Read the global attribute: ClusterRevision"
      PICS: PRS.S.Afffd
      command: "readAttribute"
      attribute: "ClusterRevision"
      response:
          value: 3
          constraints:
              type: int16u

    - label: "Read the global attribute: FeatureMap"
      PICS: PRS.S.Afffc && !PRS.S.F00
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          value: 0
          constraints:
              type: bitmap32

    - label: "Given PRS.S.F00(EXT) ensure featuremap has the correct bit set"
      command: "readAttribute"
      attribute: "FeatureMap"
      PICS: PRS.S.F00 && PRS.S.Afffc
      response:
          constraints:
              type: bitmap32
              hasMasksSet: [0x1]

    - label: "Read the global mandatory attribute: AttributeList"
      PICS: PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533]

    - label: "Read the optional attribute(ScaledValue) in AttributeList"
      PICS: PRS.S.A0010 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [16]

    - label: "Read the optional attribute(MinScaledValue) in AttributeList"
      PICS: PRS.S.A0011 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [17]

    - label: "Read the optional attribute(MaxScaledValue) in AttributeList"
      PICS: PRS.S.A0012 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [18]

    - label: "Read the optional attribute(Scale) in AttributeList"
      PICS: PRS.S.A0014 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [20]

    - label: "Read the optional attribute(Tolerance) in AttributeList"
      PICS: PRS.S.A0003 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [3]

    - label: "Read the optional attribute(ScaledTolerance) in AttributeList"
      PICS: PRS.S.A0013 && PRS.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [19]

    #List values range check support https://github.com/project-chip/connectedhomeip/issues/26570
    - label:
          "TH reads AttributeList attribute from DUT. 1.The list SHALL NOT
          contain any additional values in the standard or scoped range:
          (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The
          list MAY contain values in the Manufacturer Extensible Identifier
          (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed
          MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list
          SHALL NOT contain any values in the Test Vendor or invalid range:
          (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 -
          0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the
          allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool pressuremeasurement read  attribute-list 1 1

          verify DUT responds  "AttributeList " which is containing all mandatory attributes(0, 1, 2) and global attributes (65528,65529,65530,65531,65532,65533) and if DUT supports it lists optional attribute (3, 16, 17, 18, 19, 20)on the TH(Chip-tool) Log

          [1676289596.056210][4588:4590] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFFB DataVersion: 2769469539
          [1676289596.056315][4588:4590] CHIP:TOO:   AttributeList: 9 entries
          [1676289596.056346][4588:4590] CHIP:TOO:     [1]: 0
          [1676289596.056372][4588:4590] CHIP:TOO:     [2]: 1
          [1676289596.056398][4588:4590] CHIP:TOO:     [3]: 2
          [1676289596.056423][4588:4590] CHIP:TOO:     [4]: 65528
          [1676289596.056449][4588:4590] CHIP:TOO:     [5]: 65529
          [1676289596.056474][4588:4590] CHIP:TOO:     [6]: 65530
          [1676289596.056499][4588:4590] CHIP:TOO:     [7]: 65531
          [1676289596.056524][4588:4590] CHIP:TOO:     [8]: 65532
          [1676289596.056550][4588:4590] CHIP:TOO:     [9]: 65533
          [1676289596.056791][4588:4590] CHIP:EM: <<< [E:36844i M:6918347 (Ack:1600359)] (S) Msg TX to 1:000000000000
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && PRS.S.Afffb
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads EventList attribute from DUT. 1.The list MAY contain values
          in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 -
          0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1),
          these values SHALL be ignored. 2.The list SHALL NOT contain any values
          in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF),
          (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where
          XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool pressuremeasurement read event-list  1 1


          Verify "  EventList attribute " consists the list of supported events,  which for this cluster should be an empty list on the TH(Chip-tool) Log:

          [1676465567.401932][27872:27874] CHIP:DMG: }
          [1676465567.402017][27872:27874] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFFA DataVersion: 2692357783
          [1676465567.402058][27872:27874] CHIP:TOO:   EventList: 0 entries
          [1676465567.402115][27872:27874] CHIP:EM: <<< [E:42541i S:49177 M:241708356 (Ack:116297335)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck)
          [1676465567.402128][27872:27874] CHIP:IN: (S) Sending msg 241708356 on secure session with LSID: 49177
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && PRS.S.Afffa
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads AcceptedCommandList attribute from DUT. 1.The list MAY
          contain values in the Manufacturer Extensible Identifier (MEI) range:
          (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range
          (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT
          contain any values in the Test Vendor or invalid range: (0x0000_0100 -
          0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 -
          0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool pressuremeasurement read accepted-command-list 1 1

          Verify "AcceptedCommandList " consists the list of supported commands, Also verify that the DUT response with an empty list (0 entries) if there is no accepted command on the TH(Chip-tool) Log:

          Verify response:
          [1650367843.973086][4114:4119] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFF9 DataVersion: 2248280323
          [1650367843.973242][4114:4119] CHIP:TOO:   AcceptedCommandList: 0 entries
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && PRS.S.Afff9
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads GeneratedCommandList attribute from DUT. 1.The list MAY
          contain values in the Manufacturer Extensible Identifier (MEI) range:
          (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range
          (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT
          contain any values in the Test Vendor or invalid range: (0x0000_0100 -
          0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 -
          0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool pressuremeasurement read generated-command-list 1 1

          Verify " GeneratedCommandList " consists the list of supported commands, Also verify that the DUT response with an empty list (0 entries) if there is no generated command on the TH(Chip-tool) Log:

          Verify response:
          [1650367913.285053][4120:4125] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFF8 DataVersion: 2248280323
          [1650367913.285193][4120:4125] CHIP:TOO:   GeneratedCommandList: 0 entries
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && PRS.S.Afff8
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"
