# 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: "Commission TH and DUT on Ethernet setup"
      verification: |

      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
