# 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.3.2. [TC-DGETH-3.2] Command Generated {DUT_Client}]

PICS:
    - DGETH.C

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

tests:
    - label: "Commission TH to DUT"
      verification: |
          verification step to be updated.
      disabled: true

    - label: "DUT sends ResetCounts to TH."
      PICS: DGETH.C.C00.Tx
      verification: |
          Verify Command data recieved from running the below command is a success

          ./chip-tool ethernetnetworkdiagnostics reset-counts 1 1

          Verify Command data recieved from running the below command is a success in DUT as Client side Log

          CHIP:DMG: InvokeResponseMessage =
          [1649664146.639743][8173:8178] CHIP:DMG: {
          [1649664146.639789][8173:8178] CHIP:DMG:         suppressResponse = false,
          [1649664146.639836][8173:8178] CHIP:DMG:         InvokeResponseIBs =
          [1649664146.639895][8173:8178] CHIP:DMG:         [
          [1649664146.639941][8173:8178] CHIP:DMG:                 InvokeResponseIB =
          [1649664146.640006][8173:8178] CHIP:DMG:                 {
          [1649664146.640059][8173:8178] CHIP:DMG:                         CommandStatusIB =
          [1649664146.640119][8173:8178] CHIP:DMG:                         {
          [1649664146.640175][8173:8178] CHIP:DMG:                                 CommandPathIB =
          [1649664146.640238][8173:8178] CHIP:DMG:                                 {
          [1649664146.640302][8173:8178] CHIP:DMG:                                         EndpointId = 0x0,
          [1649664146.640373][8173:8178] CHIP:DMG:                                         ClusterId = 0x37,
          [1649664146.640438][8173:8178] CHIP:DMG:                                         CommandId = 0x0,
          [1649664146.640500][8173:8178] CHIP:DMG:                                 },
          [1649664146.640574][8173:8178] CHIP:DMG:
          [1649664146.640632][8173:8178] CHIP:DMG:                                 StatusIB =
          [1649664146.640693][8173:8178] CHIP:DMG:                                 {
          [1649664146.640762][8173:8178] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1649664146.640824][8173:8178] CHIP:DMG:                                 },
          [1649664146.640886][8173:8178] CHIP:DMG:
          [1649664146.640943][8173:8178] CHIP:DMG:                         },
          [1649664146.641007][8173:8178] CHIP:DMG:
          [1649664146.641058][8173:8178] CHIP:DMG:                 },
          [1649664146.641126][8173:8178] CHIP:DMG:
          [1649664146.641174][8173:8178] CHIP:DMG:         ],
          [1649664146.641230][8173:8178] CHIP:DMG:
          [1649664146.641275][8173:8178] CHIP:DMG:         InteractionModelRevision = 1
          [1649664146.641318][8173:8178] CHIP:DMG: },
          [1649664146.641424][8173:8178] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0037 Command=0x0000_0000 Status=0x0
          [1649664146.641499][8173:8178] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true
