# 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: 19.7.3. [TC-CHANNEL-5.3] Skip Channel Verification

PICS:
    - CHANNEL.S

config:
    nodeId: 0x12344321
    cluster: "Channel"
    endpoint: 1
    majornumber:
        type: int16u
        defaultValue: 9
    minornumber:
        type: int16u
        defaultValue: 1

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

    #Issue 13029
    #This step implicitly validating the attribute(Lineup)constraints, as long as the payload is being parsed successfully
    - label:
          "TH reads the Lineup attribute from the DUT to show list of Inputs
          available and Verify that the response contains a lineup info object"
      PICS: CHANNEL.S.A0001
      command: "readAttribute"
      attribute: "Lineup"

    - label: "Reads the ChannelList attribute from the DUT"
      PICS: CHANNEL.S.A0000
      command: "readAttribute"
      attribute: "ChannelList"
      response:
          constraints:
              type: list

    - label: "Reads the CurrentChannel attribute from the DUT"
      PICS: CHANNEL.S.A0002
      command: "readAttribute"
      attribute: "CurrentChannel"
      response:
          value: [majorNumber: majornumber, minorNumber: minornumber]

    - label: "Sends a SkipChannel command to the DUT"
      PICS: CHANNEL.S.C03.Rsp
      command: "SkipChannel"
      arguments:
          values:
              - name: "Count"
                value: 1

    - label: "Verify that the channel has changed on the device"
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && CHANNEL.S.C03.Rsp
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' if channel has changed on the device"
              - name: "expectedValue"
                value: "y"

    - label: "Reads the CurrentChannel attribute from the DUT"
      PICS: CHANNEL.S.A0002 && CHANNEL.S.C03.Rsp
      command: "readAttribute"
      attribute: "CurrentChannel"
      response:
          value: [majorNumber: majornumber, minorNumber: minornumber + 1]
          constraints:
              type: ChannelInfo
