# 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: 25.3.5. [TC-CC-4.1] Saturation MoveTo functionality with server as DUT

PICS:
    - CC.S

config:
    nodeId: 0x12344321
    cluster: "Color Control"
    endpoint: 1
    SaturationConfigValue:
        type: int8u
        defaultValue: 90

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

    - label: "Step 1a: TH writes 0 to the Options attribute"
      PICS: CC.S.F00 && CC.S.A000f
      command: "writeAttribute"
      attribute: "Options"
      arguments:
          value: 0

    - label: "Step 1b: TH sends On command to DUT"
      PICS: OO.S.C01.Rsp
      cluster: "On/Off"
      command: "On"

    - label:
          "Step 2a: TH sends MoveToSaturation command to DUT with Saturation=60
          and TransitionTime=0 (immediately)"
      PICS: CC.S.F00 && CC.S.C03.Rsp
      command: "MoveToSaturation"
      arguments:
          values:
              - name: "Saturation"
                value: 60
              - name: "TransitionTime"
                value: 0
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label: "Wait 100ms"
      PICS: CC.S.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 100

    - label:
          "Step 2b: TH sends MoveToSaturation command to DUT with Saturation=120
          and TransitionTime=300 (30s)"
      PICS: CC.S.F00 && CC.S.C03.Rsp
      command: "MoveToSaturation"
      arguments:
          values:
              - name: "Saturation"
                value: 120
              - name: "TransitionTime"
                value: 300
              - name: "OptionsMask"
                value: 0
              - name: "OptionsOverride"
                value: 0

    - label: "Wait 10s"
      PICS: CC.S.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 10000

    - label: "Step 2c: TH reads CurrentSaturation attribute from DUT"
      PICS: CC.S.F00 && CC.S.A0001
      command: "readAttribute"
      attribute: "CurrentSaturation"
      response:
          constraints:
              minValue: 68
              maxValue: 92

    - label: "Wait 10s"
      PICS: CC.S.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 10000

    - label: "Step 2d: TH reads CurrentSaturation attribute from DUT"
      PICS: CC.S.F00 && CC.S.A0001
      command: "readAttribute"
      attribute: "CurrentSaturation"
      response:
          constraints:
              minValue: 80
              maxValue: 115

    - label: "Wait 10s"
      PICS: CC.S.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 10000

    - label: "Step 2e: TH reads CurrentSaturation attribute from DUT"
      PICS: CC.S.F00 && CC.S.A0001
      command: "readAttribute"
      attribute: "CurrentSaturation"
      response:
          constraints:
              minValue: 102
              maxValue: 138

    - label: "Wait 5s"
      PICS: CC.S.F00
      cluster: "DelayCommands"
      command: "WaitForMs"
      arguments:
          values:
              - name: "ms"
                value: 5000

    - label: "Step 2f: TH reads CurrentSaturation attribute from DUT"
      PICS: CC.S.F00 && CC.S.A0001
      command: "readAttribute"
      attribute: "CurrentSaturation"
      response:
          constraints:
              minValue: 102
              maxValue: 138

    - label: "Step 3a: TH reads ColorMode attribute from DUT"
      PICS: CC.S.F00 && CC.S.A0008
      command: "readAttribute"
      attribute: "ColorMode"
      response:
          value: 0
          constraints:
              minValue: 0
              maxValue: 2

    - label: "Step 3b: TH reads EnhancedColorMode attribute from DUT"
      PICS: CC.S.F00 && CC.S.A4001
      command: "readAttribute"
      attribute: "EnhancedColorMode"
      response:
          value: 0
          constraints:
              minValue: 0
              maxValue: 3

    - label: "Turn off light that we turned on"
      PICS: OO.S.C00.Rsp
      cluster: "On/Off"
      command: "Off"

    - label: "Check on/off attribute value is false after off command"
      cluster: "On/Off"
      command: "readAttribute"
      attribute: "OnOff"
      PICS: OO.S.A0000
      response:
          value: 0
