# 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:
    3.8.5. [TC-MEDIAPLAYBACK-6.5] Mandatory Media Playback Verification (DUT as
    Client)

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "DUT sends Play command to TH"
      PICS: MEDIAPLAYBACK.C.C00.Tx
      verification: |
          ./chip-tool mediaplayback  play 1 3

          The following chip-tool command simulates the interaction of the DUT and the log below shows the resulting log on the TH.

          [1658530945655] [21924:317544] CHIP: [DMG] InvokeRequestMessage =
          [1658530945655] [21924:317544] CHIP: [DMG] {
          [1658530945655] [21924:317544] CHIP: [DMG] 	suppressResponse = false,
          [1658530945655] [21924:317544] CHIP: [DMG] 	timedRequest = false,
          [1658530945655] [21924:317544] CHIP: [DMG] 	InvokeRequests =
          [1658530945655] [21924:317544] CHIP: [DMG] 	[
          [1658530945655] [21924:317544] CHIP: [DMG] 		CommandDataIB =
          [1658530945655] [21924:317544] CHIP: [DMG] 		{
          [1658530945655] [21924:317544] CHIP: [DMG] 			CommandPathIB =
          [1658530945655] [21924:317544] CHIP: [DMG] 			{
          [1658530945655] [21924:317544] CHIP: [DMG] 				EndpointId = 0x3,
          [1658530945655] [21924:317544] CHIP: [DMG] 				ClusterId = 0x506,
          [1658530945655] [21924:317544] CHIP: [DMG] 				CommandId = 0x0,
          [1658530945655] [21924:317544] CHIP: [DMG] 			},
          [1658530945655] [21924:317544] CHIP: [DMG]
          [1658530945655] [21924:317544] CHIP: [DMG] 			CommandFields =
          [1658530945655] [21924:317544] CHIP: [DMG] 			{
          [1658530945655] [21924:317544] CHIP: [DMG] 			},
          [1658530945655] [21924:317544] CHIP: [DMG] 		},
          [1658530945655] [21924:317544] CHIP: [DMG]
          [1658530945655] [21924:317544] CHIP: [DMG] 	],
          [1658530945655] [21924:317544] CHIP: [DMG]
          [1658530945655] [21924:317544] CHIP: [DMG] 	InteractionModelRevision = 1
          [1658530945655] [21924:317544] CHIP: [DMG] },
      disabled: true

    - label: "DUT sends Pause command to TH"
      PICS: MEDIAPLAYBACK.C.C01.Tx
      verification: |
          ./chip-tool mediaplayback  pause 1 3

          The following chip-tool command simulates the interaction of the DUT and the log below shows the resulting log on the TH.

          [1658530975757] [21924:317544] CHIP: [DMG] InvokeRequestMessage =
          [1658530975757] [21924:317544] CHIP: [DMG] {
          [1658530975757] [21924:317544] CHIP: [DMG] 	suppressResponse = false,
          [1658530975757] [21924:317544] CHIP: [DMG] 	timedRequest = false,
          [1658530975757] [21924:317544] CHIP: [DMG] 	InvokeRequests =
          [1658530975757] [21924:317544] CHIP: [DMG] 	[
          [1658530975757] [21924:317544] CHIP: [DMG] 		CommandDataIB =
          [1658530975757] [21924:317544] CHIP: [DMG] 		{
          [1658530975757] [21924:317544] CHIP: [DMG] 			CommandPathIB =
          [1658530975757] [21924:317544] CHIP: [DMG] 			{
          [1658530975757] [21924:317544] CHIP: [DMG] 				EndpointId = 0x3,
          [1658530975757] [21924:317544] CHIP: [DMG] 				ClusterId = 0x506,
          [1658530975757] [21924:317544] CHIP: [DMG] 				CommandId = 0x1,
          [1658530975757] [21924:317544] CHIP: [DMG] 			},
          [1658530975757] [21924:317544] CHIP: [DMG]
          [1658530975757] [21924:317544] CHIP: [DMG] 			CommandFields =
          [1658530975757] [21924:317544] CHIP: [DMG] 			{
          [1658530975757] [21924:317544] CHIP: [DMG] 			},
          [1658530975757] [21924:317544] CHIP: [DMG] 		},
          [1658530975757] [21924:317544] CHIP: [DMG]
          [1658530975757] [21924:317544] CHIP: [DMG] 	],
          [1658530975757] [21924:317544] CHIP: [DMG]
          [1658530975757] [21924:317544] CHIP: [DMG] 	InteractionModelRevision = 1
          [1658530975757] [21924:317544] CHIP: [DMG] },
      disabled: true

    - label: "DUT sends Stop command to TH"
      PICS: MEDIAPLAYBACK.C.C02.Tx
      verification: |
          ./chip-tool mediaplayback  stop-playback 1 3
          The following chip-tool command simulates the interaction of the DUT and the log below shows the resulting log on the TH.

          [1658531007495] [21924:317544] CHIP: [DMG] InvokeRequestMessage =
          [1658531007495] [21924:317544] CHIP: [DMG] {
          [1658531007495] [21924:317544] CHIP: [DMG] 	suppressResponse = false,
          [1658531007495] [21924:317544] CHIP: [DMG] 	timedRequest = false,
          [1658531007495] [21924:317544] CHIP: [DMG] 	InvokeRequests =
          [1658531007495] [21924:317544] CHIP: [DMG] 	[
          [1658531007495] [21924:317544] CHIP: [DMG] 		CommandDataIB =
          [1658531007495] [21924:317544] CHIP: [DMG] 		{
          [1658531007495] [21924:317544] CHIP: [DMG] 			CommandPathIB =
          [1658531007495] [21924:317544] CHIP: [DMG] 			{
          [1658531007495] [21924:317544] CHIP: [DMG] 				EndpointId = 0x3,
          [1658531007495] [21924:317544] CHIP: [DMG] 				ClusterId = 0x506,
          [1658531007495] [21924:317544] CHIP: [DMG] 				CommandId = 0x2,
          [1658531007495] [21924:317544] CHIP: [DMG] 			},
          [1658531007495] [21924:317544] CHIP: [DMG]
          [1658531007495] [21924:317544] CHIP: [DMG] 			CommandFields =
          [1658531007495] [21924:317544] CHIP: [DMG] 			{
          [1658531007495] [21924:317544] CHIP: [DMG] 			},
          [1658531007495] [21924:317544] CHIP: [DMG] 		},
          [1658531007495] [21924:317544] CHIP: [DMG]
          [1658531007495] [21924:317544] CHIP: [DMG] 	],
          [1658531007495] [21924:317544] CHIP: [DMG]
          [1658531007495] [21924:317544] CHIP: [DMG] 	InteractionModelRevision = 1
          [1658531007495] [21924:317544] CHIP: [DMG] },
      disabled: true
