# 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: 24.3.4. [TC-CC-3.4] Hue functionality with client as DUT

PICS:
    - CC.C

config:
    nodeId: 0x12344321
    cluster: "Color Control"
    endpoint: 1
    timeout: 300
    ConfigTransitionTime:
        type: int16u
        defaultValue: 3000

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

    - label: "PreCondition: Set TH OnOff to On"
      cluster: "On/Off"
      wait: "On"

    - label: "DUT sends MoveToHue command to TH an Hue with _TransitionTime 300"
      wait: "MoveToHue"
      PICS: CC.C.C00.Tx && CC.C.F00

    - label: "DUT reads CurrentHue attribute from TH periodically"
      PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00
      wait: "readAttribute"
      attribute: "CurrentHue"

    - label: "Wait for ConfigTransitionTime"
      PICS: CC.C.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: ConfigTransitionTime

    - label: "DUT reads CurrentHue attribute from TH periodically"
      PICS: CC.C.C00.Tx && CC.C.A0000 && CC.C.F00
      wait: "readAttribute"
      attribute: "CurrentHue"

    - label: "DUT sends MoveHue command to TH"
      wait: "MoveHue"
      PICS: CC.C.C01.Tx && CC.C.F00

    - label: "DUT reads CurrentHue attribute from TH several times."
      wait: "readAttribute"
      attribute: "CurrentHue"
      PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00

    - label: "Wait for ConfigTransitionTime"
      PICS: CC.C.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: ConfigTransitionTime

    - label: "DUT reads CurrentHue attribute from TH several times."
      wait: "readAttribute"
      attribute: "CurrentHue"
      PICS: CC.C.C01.Tx && CC.C.A0000 && CC.C.F00

    - label: "DUT sends StepHue command to TH"
      wait: "StepHue"
      PICS: CC.C.C02.Tx && CC.C.F00

    - label: "DUT reads CurrentHue attribute from TH several times."
      wait: "readAttribute"
      attribute: "CurrentHue"
      PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00

    - label: "Wait for ConfigTransitionTime"
      PICS: CC.C.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: ConfigTransitionTime

    - label: "DUT reads CurrentHue attribute from TH several times."
      wait: "readAttribute"
      attribute: "CurrentHue"
      PICS: CC.C.C02.Tx && CC.C.A0000 && CC.C.F00

    - label: "DUT sends StopMoveStep command to TH"
      wait: "StopMoveStep"
      PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00

    - label: "Wait for ConfigTransitionTime"
      PICS: CC.C.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: ConfigTransitionTime

    - label: "Over TransitionTime, DUT reads CurrentHue attribute from TH"
      wait: "readAttribute"
      attribute: "CurrentHue"
      PICS: CC.C.C03.Tx && CC.C.A0000 && CC.C.F00
