# 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.4.8. [TC-WNCV-7.1] GoToPercentage Commands Verification [DUT as Client]

PICS:
    - WNCV.C

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

tests:
    - label: "Check GoToLiftPercentage command 50%"
      verification: |
          verification step to be updated.
      disabled: true

    - label: "DUT sends GoToLiftPercentage command with 50% to TH"
      PICS: WNCV.C.C05.Tx
      verification: |
          ./chip-tool windowcovering go-to-lift-percentage 5000 1 1

          Verify the "DUT responds with right request response"

          [1659945446.669477][2742:2742] CHIP:DMG: InvokeRequestMessage =
          [1659945446.669520][2742:2742] CHIP:DMG: {
          [1659945446.669555][2742:2742] CHIP:DMG:         suppressResponse = false,
          [1659945446.669599][2742:2742] CHIP:DMG:         timedRequest = false,
          [1659945446.669639][2742:2742] CHIP:DMG:         InvokeRequests =
          [1659945446.669688][2742:2742] CHIP:DMG:         [
          [1659945446.669729][2742:2742] CHIP:DMG:                 CommandDataIB =
          [1659945446.669773][2742:2742] CHIP:DMG:                 {
          [1659945446.669815][2742:2742] CHIP:DMG:                         CommandPathIB =
          [1659945446.669866][2742:2742] CHIP:DMG:                         {
          [1659945446.669919][2742:2742] CHIP:DMG:                                 EndpointId = 0x1,
          [1659945446.669975][2742:2742] CHIP:DMG:                                 ClusterId = 0x102,
          [1659945446.670033][2742:2742] CHIP:DMG:                                 CommandId = 0x5,
          [1659945446.670084][2742:2742] CHIP:DMG:                         },
          [1659945446.670137][2742:2742] CHIP:DMG:
          [1659945446.670191][2742:2742] CHIP:DMG:                         CommandFields =
          [1659945446.670247][2742:2742] CHIP:DMG:                         {
          [1659945446.670302][2742:2742] CHIP:DMG:                                 0x0 = 5000,
          [1659945446.670361][2742:2742] CHIP:DMG:                         },
          [1659945446.670409][2742:2742] CHIP:DMG:                 },
          [1659945446.670460][2742:2742] CHIP:DMG:
          [1659945446.670499][2742:2742] CHIP:DMG:         ],
          [1659945446.670548][2742:2742] CHIP:DMG:
          [1659945446.670587][2742:2742] CHIP:DMG:         InteractionModelRevision = 1
          [1659945446.670626][2742:2742] CHIP:DMG: },
      disabled: true

    - label: "Check GoToTiltPercentage command 50%"
      verification: |
          verification step to be updated.
      disabled: true

    - label: "DUT sends GoToTiltPercentage command with 50% to TH"
      PICS: WNCV.C.C08.Tx
      verification: |
          ./chip-tool windowcovering go-to-tilt-percentage 5000 1 1


          Verify the "DUT responds with right  request response"

          [1659945481.649337][2742:2742] CHIP:DMG: InvokeRequestMessage =
          [1659945481.649367][2742:2742] CHIP:DMG: {
          [1659945481.649393][2742:2742] CHIP:DMG:         suppressResponse = false,
          [1659945481.649424][2742:2742] CHIP:DMG:         timedRequest = false,
          [1659945481.649452][2742:2742] CHIP:DMG:         InvokeRequests =
          [1659945481.649487][2742:2742] CHIP:DMG:         [
          [1659945481.649515][2742:2742] CHIP:DMG:                 CommandDataIB =
          [1659945481.649551][2742:2742] CHIP:DMG:                 {
          [1659945481.649582][2742:2742] CHIP:DMG:                         CommandPathIB =
          [1659945481.649622][2742:2742] CHIP:DMG:                         {
          [1659945481.649660][2742:2742] CHIP:DMG:                                 EndpointId = 0x1,
          [1659945481.649702][2742:2742] CHIP:DMG:                                 ClusterId = 0x102,
          [1659945481.649743][2742:2742] CHIP:DMG:                                 CommandId = 0x8,
          [1659945481.649778][2742:2742] CHIP:DMG:                         },
          [1659945481.649819][2742:2742] CHIP:DMG:
          [1659945481.649856][2742:2742] CHIP:DMG:                         CommandFields =
          [1659945481.649892][2742:2742] CHIP:DMG:                         {
          [1659945481.649929][2742:2742] CHIP:DMG:                                 0x0 = 5000,
          [1659945481.649970][2742:2742] CHIP:DMG:                         },
          [1659945481.650002][2742:2742] CHIP:DMG:                 },
          [1659945481.650037][2742:2742] CHIP:DMG:
          [1659945481.650065][2742:2742] CHIP:DMG:         ],
          [1659945481.650099][2742:2742] CHIP:DMG:
          [1659945481.650126][2742:2742] CHIP:DMG:         InteractionModelRevision = 1
          [1659945481.650153][2742:2742] CHIP:DMG: },
      disabled: true
