# 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:
    12.4.17. [TC-CNET-4.19] [Ethernet] Verification for attributes check
    [DUT-Client]

PICS:
    - CNET.C.F02

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the  DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label: "DUT reads the MaxNetworks attribute from the TH"
      PICS: CNET.S.A0000
      verification: |
          ./chip-tool networkcommissioning read max-networks 1 0

          Verify "MaxNetworks response" on the TH(All-cluster-app) Log:

          [1659609763.322869][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:183685847 on exchange 32698r
          [1659609763.322969][3355:3355] CHIP:EM: Handling via exchange: 32698r, Delegate: 0xaaaac00e4f08
          [1659609763.323017][3355:3355] CHIP:IM: Received Read request
          [1659609763.323116][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659609763.323147][3355:3355] CHIP:DMG: {
          [1659609763.323179][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659609763.323206][3355:3355] CHIP:DMG:         [
          [1659609763.323230][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659609763.323267][3355:3355] CHIP:DMG:                 {
          [1659609763.323296][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659609763.323355][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659609763.323402][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1659609763.323433][3355:3355] CHIP:DMG:                 }
          [1659609763.323471][3355:3355] CHIP:DMG:
          [1659609763.323497][3355:3355] CHIP:DMG:         ],
          [1659609763.323536][3355:3355] CHIP:DMG:
          [1659609763.323563][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659609763.323597][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659609763.323621][3355:3355] CHIP:DMG: },
          [1659609763.323719][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659609763.323834][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      disabled: true

    - label: "DUT reads the Networks attribute from the TH"
      PICS: CNET.S.A0001
      verification: |
          ./chip-tool networkcommissioning read networks 1 0

          Verify "Networks response" on the TH(All-cluster-app)Log:

          [1659609799.625479][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:137580527 on exchange 7860r
          [1659609799.625525][3355:3355] CHIP:EM: Handling via exchange: 7860r, Delegate: 0xaaaac00e4f08
          [1659609799.625564][3355:3355] CHIP:IM: Received Read request
          [1659609799.625641][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659609799.625667][3355:3355] CHIP:DMG: {
          [1659609799.625688][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659609799.625714][3355:3355] CHIP:DMG:         [
          [1659609799.625737][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659609799.625765][3355:3355] CHIP:DMG:                 {
          [1659609799.625797][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659609799.625828][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659609799.625860][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1659609799.625888][3355:3355] CHIP:DMG:                 }
          [1659609799.625916][3355:3355] CHIP:DMG:
          [1659609799.625941][3355:3355] CHIP:DMG:         ],
          [1659609799.625968][3355:3355] CHIP:DMG:
          [1659609799.625994][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659609799.626019][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659609799.626042][3355:3355] CHIP:DMG: },
          [1659609799.626114][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659609799.626196][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      disabled: true

    - label: "DUT reads InterfaceEnabled attribute from the TH"
      PICS: CNET.S.A0004
      verification: |
          ./chip-tool networkcommissioning read interface-enabled 1 0

          Verify "InterfaceEnabled response" on the TH(All-cluster-app) Log:

          [1659609853.345019][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:239370134 on exchange 36452r
          [1659609853.345063][3355:3355] CHIP:EM: Handling via exchange: 36452r, Delegate: 0xaaaac00e4f08
          [1659609853.345100][3355:3355] CHIP:IM: Received Read request
          [1659609853.345179][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659609853.345206][3355:3355] CHIP:DMG: {
          [1659609853.345226][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659609853.345252][3355:3355] CHIP:DMG:         [
          [1659609853.345275][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659609853.345303][3355:3355] CHIP:DMG:                 {
          [1659609853.345332][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659609853.345372][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659609853.345403][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0004,
          [1659609853.345433][3355:3355] CHIP:DMG:                 }
          [1659609853.345461][3355:3355] CHIP:DMG:
          [1659609853.345485][3355:3355] CHIP:DMG:         ],
          [1659609853.345513][3355:3355] CHIP:DMG:
          [1659609853.345539][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659609853.345564][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659609853.345588][3355:3355] CHIP:DMG: },
          [1659609853.345662][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659609853.345744][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      disabled: true

    - label: "DUT reads LastNetworkingStatus attribute from the TH"
      PICS: CNET.S.A0005
      verification: |
          ./chip-tool networkcommissioning read last-networking-status 1 0

          Verify "LastNetworkingStatus response" on the TH(All-cluster-app) Log:

          [1659609891.554817][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:196428434 on exchange 50438r
          [1659609891.554892][3355:3355] CHIP:EM: Handling via exchange: 50438r, Delegate: 0xaaaac00e4f08
          [1659609891.554942][3355:3355] CHIP:IM: Received Read request
          [1659609891.555037][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659609891.555064][3355:3355] CHIP:DMG: {
          [1659609891.555089][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659609891.555119][3355:3355] CHIP:DMG:         [
          [1659609891.555147][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659609891.555179][3355:3355] CHIP:DMG:                 {
          [1659609891.555210][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659609891.555243][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659609891.555286][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1659609891.555325][3355:3355] CHIP:DMG:                 }
          [1659609891.555357][3355:3355] CHIP:DMG:
          [1659609891.555387][3355:3355] CHIP:DMG:         ],
          [1659609891.555418][3355:3355] CHIP:DMG:
          [1659609891.555449][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659609891.555478][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659609891.555505][3355:3355] CHIP:DMG: },
          [1659609891.555595][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659609891.555710][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1659609891.555746][3355:3355] CHIP:DMG: <RE:Run> Cluster 31, Attribute 5 is dirty
          [1659609891.555770][3355:3355] CHIP:DMG: Reading attribute: Cluster=0x0000_0031 Endpoint=0 AttributeId=0x0000_0005 (expanded=0)
      disabled: true

    - label: "DUT reads LastNetworkID attribute from the TH"
      PICS: CNET.S.A0006
      verification: |
          ./chip-tool networkcommissioning read last-network-id 1 0

          Verify "LastNetworkID response" on the TH(All-cluster-app) Log:

          [1659610135.551323][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:254677399 on exchange 52969r
          [1659610135.551381][3355:3355] CHIP:EM: Handling via exchange: 52969r, Delegate: 0xaaaac00e4f08
          [1659610135.551423][3355:3355] CHIP:IM: Received Read request
          [1659610135.551505][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659610135.551531][3355:3355] CHIP:DMG: {
          [1659610135.551553][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659610135.551579][3355:3355] CHIP:DMG:         [
          [1659610135.551603][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659610135.551630][3355:3355] CHIP:DMG:                 {
          [1659610135.551658][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659610135.551695][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659610135.551727][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0006,
          [1659610135.551758][3355:3355] CHIP:DMG:                 }
          [1659610135.551788][3355:3355] CHIP:DMG:
          [1659610135.551812][3355:3355] CHIP:DMG:         ],
          [1659610135.551840][3355:3355] CHIP:DMG:
          [1659610135.551866][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659610135.551891][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659610135.551914][3355:3355] CHIP:DMG: },
          [1659610135.551990][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659610135.552075][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      disabled: true

    - label: "DUT reads LastConnectErrorValue attribute from the TH"
      PICS: CNET.S.A0007
      verification: |
          ./chip-tool networkcommissioning read last-connect-error-value 1 0

          Verify "LastConnectErrorValue response" on the TH(All-cluster-app) Log:

          [1659610208.727464][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:26873449 on exchange 27253r
          [1659610208.727511][3355:3355] CHIP:EM: Handling via exchange: 27253r, Delegate: 0xaaaac00e4f08
          [1659610208.727551][3355:3355] CHIP:IM: Received Read request
          [1659610208.727629][3355:3355] CHIP:DMG: ReadRequestMessage =
          [1659610208.727655][3355:3355] CHIP:DMG: {
          [1659610208.727678][3355:3355] CHIP:DMG:         AttributePathIBs =
          [1659610208.727704][3355:3355] CHIP:DMG:         [
          [1659610208.727727][3355:3355] CHIP:DMG:                 AttributePathIB =
          [1659610208.727763][3355:3355] CHIP:DMG:                 {
          [1659610208.727791][3355:3355] CHIP:DMG:                         Endpoint = 0x0,
          [1659610208.727822][3355:3355] CHIP:DMG:                         Cluster = 0x31,
          [1659610208.727854][3355:3355] CHIP:DMG:                         Attribute = 0x0000_0007,
          [1659610208.727882][3355:3355] CHIP:DMG:                 }
          [1659610208.727909][3355:3355] CHIP:DMG:
          [1659610208.727934][3355:3355] CHIP:DMG:         ],
          [1659610208.727963][3355:3355] CHIP:DMG:
          [1659610208.727988][3355:3355] CHIP:DMG:         isFabricFiltered = true,
          [1659610208.728014][3355:3355] CHIP:DMG:         InteractionModelRevision = 1
          [1659610208.728036][3355:3355] CHIP:DMG: },
          [1659610208.728112][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1659610208.728196][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1659610208.728226][3355:3355] CHIP:DMG: <RE:Run> Cluster 31, Attribute 7 is dirty
          [1659610208.728247][3355:3355] CHIP:DMG: Reading attribute: Cluster=0x0000_0031 Endpoint=0 AttributeId=0x0000_0007 (expanded=0)
      disabled: true
