# 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.9.2. [TC-AUDIOOUTPUT-7.2] Rename Output Verification

PICS:
    - AUDIOOUTPUT.S

config:
    nodeId: 0x12344321
    cluster: "Audio Output"
    endpoint: 1
    Index:
        type: int8u
        defaultValue: 1

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

    - label: "Reads the OutputList attribute from the DUT"
      PICS: AUDIOOUTPUT.S.A0000
      command: "readAttribute"
      attribute: "OutputList"
      response:
          saveAs: audioOutputListValues
          constraints:
              type: list

    - label: "Sends a RenameOutput command"
      PICS: AUDIOOUTPUT.S.C01.Rsp
      command: "RenameOutput"
      arguments:
          values:
              - name: "Index"
                value: Index
              - name: "Name"
                value: "CertTest"

    #Disabled due to issue- #13029
    - label:
          "Reads the OutputList attribute from the DUT Verify that the output at
          the index provided in step 2 has the name CertTest"
      verification: |
          ./chip-tool audiooutput read output-list 1 1
          [1651061821.366426][156898:156903] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_050B Attribute 0x0000_0000 DataVersion: 372822880
          [1651061821.366510][156898:156903] CHIP:TOO:   OutputList: 3 entries
          [1651061821.366575][156898:156903] CHIP:TOO:     [1]: {
          [1651061821.366603][156898:156903] CHIP:TOO:       Index: 1
          [1651061821.366619][156898:156903] CHIP:TOO:       OutputType: 0
          [1651061821.366635][156898:156903] CHIP:TOO:       Name: CertTest
          [1651061821.366651][156898:156903] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && AUDIOOUTPUT.S.A0001 && AUDIOOUTPUT.S.C01.Rsp
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"
