# 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: 80.2.2. [TC-MOD-2.2] ChangeToMode Verification (DUT as Client)

PICS:
    - MOD.C.C00.Tx

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

tests:
    - label: "DUT reads the SupportedModes attribute from the TH"
      verification: |
          verify on Reference app receives the right response for the data sent in the above commands

          ./chip-tool modeselect read supported-modes 1 1

          Verify in TH all-clusters-app

          [1657112483.855657][5411:5417] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 736180028
          [1657112483.855821][5411:5417] CHIP:TOO:   SupportedModes: 3 entries
          [1657112483.856016][5411:5417] CHIP:TOO:     [1]: {
          [1657112483.856069][5411:5417] CHIP:TOO:       Label: Black
          [1657112483.856158][5411:5417] CHIP:TOO:       Mode: 0
          [1657112483.856218][5411:5417] CHIP:TOO:       SemanticTags: 1 entries
          [1657112483.856281][5411:5417] CHIP:TOO:         [1]: {
          [1657112483.856397][5411:5417] CHIP:TOO:           MfgCode: 0
          [1657112483.856466][5411:5417] CHIP:TOO:           Value: 0
          [1657112483.856515][5411:5417] CHIP:TOO:          }
          [1657112483.856582][5411:5417] CHIP:TOO:      }
          [1657112483.856652][5411:5417] CHIP:TOO:     [2]: {
          [1657112483.856700][5411:5417] CHIP:TOO:       Label: Cappuccino
          [1657112483.856864][5411:5417] CHIP:TOO:       Mode: 4
          [1657112483.856924][5411:5417] CHIP:TOO:       SemanticTags: 1 entries
          [1657112483.857004][5411:5417] CHIP:TOO:         [1]: {
          [1657112483.857055][5411:5417] CHIP:TOO:           MfgCode: 0
          [1657112483.857102][5411:5417] CHIP:TOO:           Value: 0
          [1657112483.857166][5411:5417] CHIP:TOO:          }
          [1657112483.857215][5411:5417] CHIP:TOO:      }
          [1657112483.857302][5411:5417] CHIP:TOO:     [3]: {
          [1657112483.857351][5411:5417] CHIP:TOO:       Label: Espresso
          [1657112483.857414][5411:5417] CHIP:TOO:       Mode: 7
          [1657112483.857469][5411:5417] CHIP:TOO:       SemanticTags: 1 entries
          [1657112483.857549][5411:5417] CHIP:TOO:         [1]: {
          [1657112483.857598][5411:5417] CHIP:TOO:           MfgCode: 0
          [1657112483.857665][5411:5417] CHIP:TOO:           Value: 0
          [1657112483.857713][5411:5417] CHIP:TOO:          }
          [1657112483.857778][5411:5417] CHIP:TOO:      }
      disabled: true

    - label:
          "DUT sends a ChangeToMode command to the TH with a integer from the
          list in step 1"
      verification: |
          verify on Reference app receives the right response for the data sent in the above commands

           ./chip-tool modeselect change-to-mode 4 1 1

          Verify in TH all-clusters-app

          [1657112505.553012][5418:5423] CHIP:DMG: InvokeResponseMessage =
          [1657112505.553052][5418:5423] CHIP:DMG: {
          [1657112505.553091][5418:5423] CHIP:DMG:         suppressResponse = false,
          [1657112505.553133][5418:5423] CHIP:DMG:         InvokeResponseIBs =
          [1657112505.553183][5418:5423] CHIP:DMG:         [
          [1657112505.553223][5418:5423] CHIP:DMG:                 InvokeResponseIB =
          [1657112505.553276][5418:5423] CHIP:DMG:                 {
          [1657112505.553319][5418:5423] CHIP:DMG:                         CommandStatusIB =
          [1657112505.553371][5418:5423] CHIP:DMG:                         {
          [1657112505.553418][5418:5423] CHIP:DMG:                                 CommandPathIB =
          [1657112505.553473][5418:5423] CHIP:DMG:                                 {
          [1657112505.553527][5418:5423] CHIP:DMG:                                         EndpointId = 0x1,
          [1657112505.553588][5418:5423] CHIP:DMG:                                         ClusterId = 0x50,
          [1657112505.553645][5418:5423] CHIP:DMG:                                         CommandId = 0x0,
          [1657112505.553698][5418:5423] CHIP:DMG:                                 },
          [1657112505.553762][5418:5423] CHIP:DMG:
          [1657112505.553810][5418:5423] CHIP:DMG:                                 StatusIB =
          [1657112505.553870][5418:5423] CHIP:DMG:                                 {
          [1657112505.553929][5418:5423] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1657112505.553983][5418:5423] CHIP:DMG:                                 },
          [1657112505.554037][5418:5423] CHIP:DMG:
          [1657112505.554085][5418:5423] CHIP:DMG:                         },
          [1657112505.554136][5418:5423] CHIP:DMG:
          [1657112505.554181][5418:5423] CHIP:DMG:                 },
          [1657112505.554238][5418:5423] CHIP:DMG:
          [1657112505.554277][5418:5423] CHIP:DMG:         ],
          [1657112505.554325][5418:5423] CHIP:DMG:
          [1657112505.554364][5418:5423] CHIP:DMG:         InteractionModelRevision = 1
          [1657112505.554432][5418:5423] CHIP:DMG: },
          [1657112505.554523][5418:5423] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0050 Command=0x0000_0000 Status=0x0
          [1657112505.554587][5418:5423] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true
