# 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: 3.3.2. [TC-OO-3.2] Functionality with client as DUT

PICS:
    - OO.C

config:
    nodeId: 0x12344321
    cluster: "On/Off"
    endpoint: 1

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

    - label: "DUT issues an Off command to the TH"
      PICS: OO.C.C00.Tx
      wait: "Off"

    - label: "DUT issues an On command to the TH"
      PICS: OO.C.C01.Tx
      wait: "On"

    - label: "DUT issues an Toggle command to the TH"
      PICS: OO.C.C02.Tx
      wait: "Toggle"

    - label: "DUT issues an OffWithEffect command to the TH"
      PICS: OO.C.C40.Tx
      wait: "OffWithEffect"

    - label: "DUT issues an OnWithRecallGlobalScene command to the TH"
      PICS: OO.C.C41.Tx
      wait: "OnWithRecallGlobalScene"

    - label: "DUT issues an OnWithTimedOff command to the TH"
      PICS: OO.C.C42.Tx
      wait: "OnWithTimedOff"
