# 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:
    22.6.2. [TC-LVL-7.1] Verification of MoveToClosestFrequency command (DUT as
    Server)

PICS:
    - LVL.S
    - LVL.S.F02

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

tests:
    - label: "TH writes 0x00 to the Options attribute"
      PICS: LVL.S.A000f
      verification: |
          ./chip-tool onoff on 1 1
          On TH(chip-tool)  verify that DUT sends a success response
          [1658731148.428641][2894:2899] CHIP:DMG:         InteractionModelRevision = 1
          [1658731148.428665][2894:2899] CHIP:DMG: },
          [1658731148.428723][2894:2899] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0
          [1658731148.428766][2894:2899] CHIP:DMG: ICR moving to [AwaitingDe]
          [1658731148.428828][2894:2899] CHIP:EM: Sending Standalone Ack for MessageCounter:77812182 on exchange 38946i
      disabled: true

    - label: "TH sends On command to DUT"
      PICS: OO.S.C01.Rsp
      verification: |
          ./chip-tool levelcontrol write  options 0x00 1 1
          On TH(chip-tool)  verify that DUT sends a success response
          [1658732283.094610][3087:3092] CHIP:DMG: WriteResponseMessage =
          [1658732283.094656][3087:3092] CHIP:DMG: {
          [1658732283.094696][3087:3092] CHIP:DMG:         AttributeStatusIBs =
          [1658732283.094863][3087:3092] CHIP:DMG:         [
          [1658732283.094914][3087:3092] CHIP:DMG:                 AttributeStatusIB =
          [1658732283.094965][3087:3092] CHIP:DMG:                 {
          [1658732283.095012][3087:3092] CHIP:DMG:                         AttributePathIB =
          [1658732283.095068][3087:3092] CHIP:DMG:                         {
          [1658732283.095129][3087:3092] CHIP:DMG:                                 Endpoint = 0x1,
          [1658732283.095197][3087:3092] CHIP:DMG:                                 Cluster = 0x8,
          [1658732283.095259][3087:3092] CHIP:DMG:                                 Attribute = 0x0000_000F,
          [1658732283.095322][3087:3092] CHIP:DMG:                         }
          [1658732283.095385][3087:3092] CHIP:DMG:
          [1658732283.095446][3087:3092] CHIP:DMG:                         StatusIB =
          [1658732283.095505][3087:3092] CHIP:DMG:                         {
          [1658732283.095564][3087:3092] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1658732283.095626][3087:3092] CHIP:DMG:                         },
          [1658732283.095682][3087:3092] CHIP:DMG:
          [1658732283.095731][3087:3092] CHIP:DMG:                 },
          [1658732283.095786][3087:3092] CHIP:DMG:
          [1658732283.095830][3087:3092] CHIP:DMG:         ],
          [1658732283.095883][3087:3092] CHIP:DMG:
          [1658732283.095927][3087:3092] CHIP:DMG:         InteractionModelRevision = 1
          [1658732283.095970][3087:3092] CHIP:DMG: }
      disabled: true

    - label: "TH reads the MinLevel attribute from the DUT"
      PICS: LVL.S.A0002
      verification: |
          ./chip-tool levelcontrol read min-level 1 1

          On TH, Record the MinLevel attribute value for usage in later steps
          [1658919507.800574][3717:3722] CHIP:DMG: }
          [1658919507.800774][3717:3722] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0002 DataVersion: 3233313015
          [1658919507.800931][3717:3722] CHIP:TOO:   min level: 1
          [1658919507.801058][3717:3722] CHIP:EM: Sending Standalone Ack for MessageCounter:165803473 on exchange 38651i
      disabled: true

    - label: "TH reads the MaxLevel attribute from the DUT"
      PICS: LVL.S.A0003
      verification: |
          ./chip-tool levelcontrol read max-level 1 1
          On TH(chip-tool)  Record the MaxLevel attribute value for usage in later steps


          [1654065684.869569][10048:10053] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0003 DataVersion: 540248549
          [1654065684.869621][10048:10053] CHIP:TOO:   max level: 254
          [1654065684.869737][10048:10053] CHIP:EM: Sending Standalone Ack for MessageCounter:9018536 on exchange 12814i
      disabled: true

    - label:
          "TH sends a MoveToLevel command to DUT, with the Level field set to a
          value between the MinLevel and MaxLevel values (if present, otherwise
          between 0x01 and 0xFE) and the TransitionTime field set to 0x0000
          (move immediately)."
      PICS: LVL.S.C00.Rsp
      verification: |
          ./chip-tool levelcontrol move-to-level  253 0 0 0 1 1
          On TH(chip-tool) verify that DUT sends a success response

          [1661759404.121731][104632:104637] CHIP:DMG: InvokeResponseMessage =
          [1661759404.121739][104632:104637] CHIP:DMG: {
          [1661759404.121750][104632:104637] CHIP:DMG:         suppressResponse = false,
          [1661759404.121759][104632:104637] CHIP:DMG:         InvokeResponseIBs =
          [1661759404.121774][104632:104637] CHIP:DMG:         [
          [1661759404.121782][104632:104637] CHIP:DMG:                 InvokeResponseIB =
          [1661759404.121797][104632:104637] CHIP:DMG:                 {
          [1661759404.121805][104632:104637] CHIP:DMG:                         CommandStatusIB =
          [1661759404.121817][104632:104637] CHIP:DMG:                         {
          [1661759404.121826][104632:104637] CHIP:DMG:                                 CommandPathIB =
          [1661759404.121838][104632:104637] CHIP:DMG:                                 {
          [1661759404.121849][104632:104637] CHIP:DMG:                                         EndpointId = 0x1,
          [1661759404.121862][104632:104637] CHIP:DMG:                                         ClusterId = 0x8,
          [1661759404.121871][104632:104637] CHIP:DMG:                                         CommandId = 0x0,
          [1661759404.121878][104632:104637] CHIP:DMG:                                 },
          [1661759404.121889][104632:104637] CHIP:DMG:
          [1661759404.121896][104632:104637] CHIP:DMG:                                 StatusIB =
          [1661759404.121906][104632:104637] CHIP:DMG:                                 {
          [1661759404.121914][104632:104637] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1661759404.121922][104632:104637] CHIP:DMG:                                 },
          [1661759404.121930][104632:104637] CHIP:DMG:
          [1661759404.121937][104632:104637] CHIP:DMG:                         },
          [1661759404.121947][104632:104637] CHIP:DMG:
          [1661759404.121954][104632:104637] CHIP:DMG:                 },
          [1661759404.121964][104632:104637] CHIP:DMG:
          [1661759404.121970][104632:104637] CHIP:DMG:         ],
          [1661759404.121981][104632:104637] CHIP:DMG:
          [1661759404.121988][104632:104637] CHIP:DMG:         InteractionModelRevision = 1
          [1661759404.121995][104632:104637] CHIP:DMG: },
          [1661759404.122021][104632:104637] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0008 Command=0x0000_0000 Status=0x0
          [1661759404.122040][104632:104637] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "TH reads CurrentLevel attribute from DUT"
      PICS: LVL.S.C00.Rsp && LVL.S.A0000
      verification: |
          ./chip-tool levelcontrol read current-level 1 1
          On TH(chip-tool) verify that the CurrentLevel attribute has the value given in 1c

          [1654065859.401140][10188:10193] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0000 DataVersion: 540248551
          [1654065859.401197][10188:10193] CHIP:TOO:   current level: 253
          [1654065859.401268][10188:10193] CHIP:EM: Sending Standalone Ack for MessageCounter:2942065 on exchange 21982i
      disabled: true

    - label: "TH reads the CurrentFrequency attribute."
      PICS: LVL.S.A0004
      verification: |
          ./chip-tool levelcontrol read current-frequency 1 1
          On TH(chip-tool) verify the CurrentFrequency attribute value
          [1654065889.927185][10196:10201] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0004 DataVersion: 540248551
          [1654065889.927213][10196:10201] CHIP:TOO:   current frequency: 0
          [1654065889.927247][10196:10201] CHIP:EM: Sending Standalone Ack for MessageCounter:9499985 on exchange 53579i
      disabled: true

    - label: "TH reads the MinFrequency attribute."
      PICS: LVL.S.A0005
      verification: |
          ./chip-tool levelcontrol read min-frequency 1 1
          On TH(chip-tool) verify the MinFrequency attribute value

          [1654066011.412756][10228:10233] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0005 DataVersion: 540248551
          [1654066011.412814][10228:10233] CHIP:TOO:   min frequency: 0
          [1654066011.412890][10228:10233] CHIP:EM: Sending Standalone Ack for MessageCounter:4631273 on exchange 37550i
      disabled: true

    - label: "TH reads the MaxFrequency attribute."
      PICS: LVL.S.A0006
      verification: |
          ./chip-tool levelcontrol read max-frequency 1 1
          On TH(chip-tool) verify the MaxFrequency attribute value

          [1654066035.586373][10241:10246] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0006 DataVersion: 540248551
          [1654066035.586435][10241:10246] CHIP:TOO:   max frequency: 0
          [1654066035.586512][10241:10246] CHIP:EM: Sending Standalone Ack for MessageCounter:13631899 on exchange 38194i
      disabled: true

    - label:
          "TH sends a MoveToClosestFrequency command to DUT, with the frequency
          field set to a random value frand, chosen such that: fmin < frand <
          fmax"
      PICS: LVL.S.C08.Rsp
      verification: |
          Frequency feature is Optional & is not verifiable at this moment. Please skip this step
      disabled: true

    - label: "TH reads the CurrentFrequency attribute."
      PICS: LVL.S.C08.Rsp && LVL.S.A0004
      verification: |
          ./chip-tool levelcontrol read current-frequency 1 1
      disabled: true

    - label:
          "TH sends a MoveToClosestFrequency command to DUT, with the frequency
          field set to fmax + 1"
      PICS: LVL.S.C08.Rsp
      verification: |
          Optional command based on Feature support
      disabled: true

    - label: "TH reads the CurrentFrequency attribute."
      PICS: LVL.S.C08.Rsp && LVL.S.A0004
      verification: |
          ./chip-tool levelcontrol read current-frequency 1 1
      disabled: true

    - label:
          "TH sends a MoveToClosestFrequency command to DUT, with the frequency
          field set to fmin - 1"
      PICS: LVL.S.C08.Rsp
      verification: |
          Frequency feature is Optional & is not verifiable at this moment. Please skip this step
      disabled: true

    - label: "TH reads the CurrentFrequency attribute."
      PICS: LVL.S.C08.Rsp && LVL.S.A0004
      verification: |
          ./chip-tool levelcontrol read current-frequency 1 1
      disabled: true
