# 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.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 19.5.4. [TC-MEDIAINPUT-3.13] Rename Input Verification

PICS:
    - MEDIAINPUT.S

config:
    nodeId: 0x12344321
    cluster: "Media Input"
    endpoint: 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(InputList)constraints, as long as the payload is being parsed successfully
    - label:
          "TH reads the InputList attribute from the DUT to show list of Inputs
          available"
      PICS: MEDIAINPUT.S.A0000
      command: "readAttribute"
      attribute: "InputList"

    - label: "Rename Input Command"
      PICS: MEDIAINPUT.S.C03.Rsp
      command: "RenameInput"
      arguments:
          values:
              - name: "index"
                value: 1
              - name: "name"
                value: "A1"

    # Issue 13029
    - label:
          "TH reads the InputList attribute from the DUT to show list of Inputs
          available"
      verification: |
          ./chip-tool mediainput read input-list 1 1
          [1651055193.215119][155444:155449] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0507 Attribute 0x0000_0000 DataVersion: 2695202790
          [1651055193.215226][155444:155449] CHIP:TOO:   InputList: 2 entries
          [1651055193.215312][155444:155449] CHIP:TOO:     [1]: {
          [1651055193.215363][155444:155449] CHIP:TOO:       Index: 1
          [1651055193.215386][155444:155449] CHIP:TOO:       InputType: 4
          [1651055193.215401][155444:155449] CHIP:TOO:       Name: A1
          [1651055193.215420][155444:155449] CHIP:TOO:       Description: High-Definition Multimedia Interface
          [1651055193.215447][155444:155449] CHIP:TOO:      }
          [1651055193.215483][155444:155449] CHIP:TOO:     [2]: {
          [1651055193.215506][155444:155449] CHIP:TOO:       Index: 2
          [1651055193.215525][155444:155449] CHIP:TOO:       InputType: 4
          [1651055193.215544][155444:155449] CHIP:TOO:       Name: HDMI
          [1651055193.215564][155444:155449] CHIP:TOO:       Description: High-Definition Multimedia Interface
          [1651055193.215585][155444:155449] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && MEDIAINPUT.S.A0000 && MEDIAINPUT.S.C03.Rsp
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"
