# 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: 116.1.1. [TC-BIND-1.1] Global Attributes with DUT as Server

PICS:
    - BIND.S

config:
    nodeId: 0x12344321
    cluster: "Binding"
    endpoint: 1

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

    - label: "Step 2: TH reads the ClusterRevision from DUT"
      command: "readAttribute"
      attribute: "ClusterRevision"
      response:
          value: 1
          constraints:
              type: int16u

    - label: "Step 3: TH reads the FeatureMap from DUT"
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          value: 0
          constraints:
              type: bitmap32

    - label: "Step 4: TH reads AttributeList from DUT"
      PICS: PICS_EVENT_LIST_ENABLED
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [0, 65528, 65529, 65530, 65531, 65532, 65533]

    - label: "Step 4: TH reads AttributeList from DUT"
      PICS: "!PICS_EVENT_LIST_ENABLED"
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [0, 65528, 65529, 65531, 65532, 65533]

    - label: "Step 5: TH reads EventList attribute from DUT"
      PICS: PICS_EVENT_LIST_ENABLED
      command: "readAttribute"
      attribute: "EventList"
      response:
          value: []
          constraints:
              type: list

    - label: "Step 6: TH reads AcceptedCommandList attribute from DUT"
      command: "readAttribute"
      attribute: "AcceptedCommandList"
      response:
          value: []
          constraints:
              type: list

    - label: "Step 7: TH reads GeneratedCommandList attribute from DUT"
      command: "readAttribute"
      attribute: "GeneratedCommandList"
      response:
          value: []
          constraints:
              type: list
