# 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.

name: 50.2.1. [TC-DGTHREAD-2.1] Attributes [DUT- Server]

PICS:
    - DGTHREAD.S

config:
    nodeId: 0x12344321
    cluster: "Thread Network Diagnostics"
    endpoint: 0

tests:
    - label: "Wait for the commissioned device to be retrieved"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "TH reads Channel attribute value from DUT"
      PICS: DGTHREAD.S.A0000
      command: "readAttribute"
      attribute: "Channel"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads RoutingRole attribute value from DUT"
      PICS: DGTHREAD.S.A0001
      command: "readAttribute"
      attribute: "RoutingRole"
      response:
          constraints:
              type: enum8
              minValue: 0
              maxValue: 6

    - label:
          "TH reads Network Name attribute value from DUT and Verify that
          Network name is of the type string"
      PICS: DGTHREAD.S.A0002
      command: "readAttribute"
      attribute: "NetworkName"
      response:
          constraints:
              type: char_string

    - label:
          "Read NetworkName attribute from DUT and verify response value, If
          value is NULL then verify that RoutingRole is set to 1"
      verification: |
          ./chip-tool threadnetworkdiagnostics read network-name 54 0

          Verify "NetworkName is  type string and maximum size of Network name is 16 bytes " on the TH(Chip-tool)  Log:

          [1649823714.280544][3183:3188] CHIP:DMG:
          [1649823714.280605][3183:3188] CHIP:DMG:        SuppressResponse = true,
          [1649823714.280668][3183:3188] CHIP:DMG:        InteractionModelRevision = 1
          [1649823714.280725][3183:3188] CHIP:DMG: }
          [1649823714.281032][3183:3188] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0002 DataVersion: 2758196590
          [1649823714.281135][3183:3188] CHIP:TOO:   NetworkName: OpenThreaddDemo
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0002
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads PanId attribute value from DUT and Verify that PanId is of
          the type uint16"
      PICS: DGTHREAD.S.A0003
      command: "readAttribute"
      attribute: "PanId"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label:
          "Read PanId attribute from DUT and verify response value, If value is
          NULL then verify that RoutingRole is set to 1"
      verification: |
          ./chip-tool threadnetworkdiagnostics read pan-id 54 0

          Verify "PanId value is uint16" on the TH(Chip-tool) Log:

          [1649824713.095280][3292:3297] CHIP:DMG:        SuppressResponse = true,
          [1649824713.095343][3292:3297] CHIP:DMG:        InteractionModelRevision = 1
          [1649824713.095402][3292:3297] CHIP:DMG: }
          [1649824713.095703][3292:3297] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0003 DataVersion: 2758196590
          [1649824713.095867][3292:3297] CHIP:TOO:   PanId: 4660
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0003
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads ExtendedPanId attribute value from DUT and Verify that
          ExtendedPanId is of the type uint64"
      PICS: DGTHREAD.S.A0004
      command: "readAttribute"
      attribute: "ExtendedPanId"
      response:
          constraints:
              type: int64u

    - label:
          "Read ExtendedPanId attribute from DUT and verify response value, If
          value is NULL then verify that RoutingRole is set to 1"
      verification: |
          ./chip-tool threadnetworkdiagnostics read extended-pan-id 54 0

          Verify "ExtendedPanId value is uint64 "on the TH(Chip-tool) Log:

          [1649824746.370824][3300:3305] CHIP:DMG:        SuppressResponse = true,
          [1649824746.370887][3300:3305] CHIP:DMG:        InteractionModelRevision = 1
          [1649824746.370946][3300:3305] CHIP:DMG: }
          [1649824746.371245][3300:3305] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0004 DataVersion: 2758196590
          [1649824746.371387][3300:3305] CHIP:TOO:   ExtendedPanId: 1229782942828601890
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0004
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    #issue #18144
    - label:
          "Read MeshLocalPrefix attribute from DUT and verify response value, If
          value is NULL then verify that RoutingRole is set to 1"
      verification: |
          ./chip-tool threadnetworkdiagnostics read mesh-local-prefix 54 0

          Verify "MeshLocalPrefix value is IPv6 Prefix" on the TH(Chip-tool) Log:

          [1649824777.961973][3306:3311] CHIP:DMG:        SuppressResponse = true,
          [1649824777.962035][3306:3311] CHIP:DMG:        InteractionModelRevision = 1
          [1649824777.962093][3306:3311] CHIP:DMG: }
          [1649824777.962401][3306:3311] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0005 DataVersion: 2758196590
          [1649824777.962509][3306:3311] CHIP:TOO:   MeshLocalPrefix: 40FD7B3042ED5F42CF
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0005
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads OverrunCount attribute value from DUT"
      PICS: DGTHREAD.S.A0006
      command: "readAttribute"
      attribute: "OverrunCount"
      response:
          constraints:
              type: int64u

    - label:
          "read OverrunCount attribute from DUT and verify response value, If
          the Overruncount is greater than zero or not"
      verification: |
          ./chip-tool threadnetworkdiagnostics read overrun-count 54 0

          Verify "OverrunCount value is uint64 " on the TH(Chip-tool) Log:

          [1649824808.714398][3314:3319] CHIP:DMG:        SuppressResponse = true,
          [1649824808.714482][3314:3319] CHIP:DMG:        InteractionModelRevision = 1
          [1649824808.714539][3314:3319] CHIP:DMG: }
          [1649824808.714898][3314:3319] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0006 DataVersion: 2758196590
          [1649824808.715038][3314:3319] CHIP:TOO:   OverrunCount: 0
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0006
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    #issue #14097
    - label:
          "read NeighborTableList attribute from DUT and Verify that the
          NeighborTable List size is Zero or greater and verify each node types"
      verification: |
          ./chip-tool threadnetworkdiagnostics read neighbor-table-list 54 0

          Verify "NeighborTableList value is  Zero or greater  " on the TH(Chip-tool) Log:
          if the attribute has an entries verify the each node mentioned in the test plan.

          [1669097995.031917][33680:33682] CHIP:DMG:         SuppressResponse = true,
          [1669097995.031972][33680:33682] CHIP:DMG:         InteractionModelRevision = 1
          [1669097995.032023][33680:33682] CHIP:DMG: }
          [1669097995.032656][33680:33682] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0007 DataVersion: 169843492
          [1669097995.032845][33680:33682] CHIP:TOO:   NeighborTableList: 1 entries
          [1669097995.033077][33680:33682] CHIP:TOO:     [1]: {
          [1669097995.033163][33680:33682] CHIP:TOO:       ExtAddress: 17773424392377219829
          [1669097995.033222][33680:33682] CHIP:TOO:       Age: 29
          [1669097995.033275][33680:33682] CHIP:TOO:       Rloc16: 41984
          [1669097995.033328][33680:33682] CHIP:TOO:       LinkFrameCounter: 223
          [1669097995.033381][33680:33682] CHIP:TOO:       MleFrameCounter: 38
          [1669097995.033430][33680:33682] CHIP:TOO:       Lqi: 3
          [1669097995.033521][33680:33682] CHIP:TOO:       AverageRssi: -53
          [1669097995.033579][33680:33682] CHIP:TOO:       LastRssi: -54
          [1669097995.033632][33680:33682] CHIP:TOO:       FrameErrorRate: 51
          [1669097995.033685][33680:33682] CHIP:TOO:       MessageErrorRate: 2
          [1669097995.033737][33680:33682] CHIP:TOO:       RxOnWhenIdle: TRUE
          [1669097995.033789][33680:33682] CHIP:TOO:       FullThreadDevice: TRUE
          [1669097995.033842][33680:33682] CHIP:TOO:       FullNetworkData: TRUE
          [1669097995.033893][33680:33682] CHIP:TOO:       IsChild: FALSE
          [1669097995.033943][33680:33682] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0007
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "Read RouteTableList attribute from DUT and Verify that the
          RouteTableList List size is Zero or greater and verify each node types"
      verification: |
          ./chip-tool threadnetworkdiagnostics read route-table-list 54 0

          Verify "RouteTableList value is  Zero or greater  " on the TH(Chip-tool) Log:
          if the attribute has an entries verify the each node mentioned in the test plan.

          [1649824896.844773][3329:3334] CHIP:DMG:        SuppressResponse = true,
          [1649824896.844809][3329:3334] CHIP:DMG:        InteractionModelRevision = 1
          [1649824896.844834][3329:3334] CHIP:DMG: }
          [1649824896.845182][3329:3334] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0008 DataVersion: 2758196590
          [1649824896.845283][3329:3334] CHIP:TOO:   RouteTableList: 1 entries
          [1649824896.845422][3329:3334] CHIP:TOO:     [1]: {
          [1649824896.845467][3329:3334] CHIP:TOO:       ExtAddress: 0
          [1649824896.845498][3329:3334] CHIP:TOO:       Rloc16: 39936
          [1649824896.845527][3329:3334] CHIP:TOO:       RouterId: 39
          [1649824896.845554][3329:3334] CHIP:TOO:       NextHop: 39
          [1649824896.845581][3329:3334] CHIP:TOO:       PathCost: 1
          [1649824896.845607][3329:3334] CHIP:TOO:       LQIIn: 0
          [1649824896.845634][3329:3334] CHIP:TOO:       LQIOut: 0
          [1649824896.845656][3329:3334] CHIP:TOO:       Age: 60
          [1649824896.845681][3329:3334] CHIP:TOO:       Allocated: TRUE
          [1649824896.845707][3329:3334] CHIP:TOO:       LinkEstablished: FALSE
          [1649824896.845736][3329:3334] CHIP:TOO:      }
          [1649824896.845829][3329:3334] CHIP:EM: Sending Standalone Ack for MessageCounter:14412289 on exchange 3041i
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A0008
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads PartitionId attribute value from DUT"
      PICS: DGTHREAD.S.A0009
      command: "readAttribute"
      attribute: "PartitionId"
      response:
          constraints:
              type: int32u

    - label: "TH reads Weighting attribute value from DUT"
      PICS: DGTHREAD.S.A000a
      command: "readAttribute"
      attribute: "Weighting"
      response:
          constraints:
              type: int8u
              minValue: 0
              maxValue: 255

    - label: "TH reads DataVersion attribute value from DUT"
      PICS: DGTHREAD.S.A000b
      command: "readAttribute"
      attribute: "DataVersion"
      response:
          constraints:
              type: int8u
              minValue: 0
              maxValue: 255

    - label: "TH reads StableDataVersion attribute value from DUT"
      PICS: DGTHREAD.S.A000c
      command: "readAttribute"
      attribute: "StableDataVersion"
      response:
          constraints:
              type: int8u
              minValue: 0
              maxValue: 255

    - label: "TH reads LeaderRouterId attribute value from DUT"
      PICS: DGTHREAD.S.A000d
      command: "readAttribute"
      attribute: "LeaderRouterId"
      response:
          constraints:
              type: int8u
              minValue: 0
              maxValue: 255

    - label: "TH reads DetachedRoleCount attribute value from DUT"
      PICS: DGTHREAD.S.A000e
      command: "readAttribute"
      attribute: "DetachedRoleCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads ChildRoleCount attribute value from DUT"
      PICS: DGTHREAD.S.A001f
      command: "readAttribute"
      attribute: "ChildRoleCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads RouterRoleCount attribute value from DUT"
      PICS: DGTHREAD.S.A0010
      command: "readAttribute"
      attribute: "RouterRoleCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads LeaderRoleCount attribute value from DUT"
      PICS: DGTHREAD.S.A0011
      command: "readAttribute"
      attribute: "LeaderRoleCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads AttachAttemptCount attribute value from DUT"
      PICS: DGTHREAD.S.A0012
      command: "readAttribute"
      attribute: "AttachAttemptCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads PartitionIdChangeCount attribute value from DUT"
      PICS: DGTHREAD.S.A0013
      command: "readAttribute"
      attribute: "PartitionIdChangeCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label:
          "TH reads BetterPartitionAttachAttemptCount attribute value from DUT"
      PICS: DGTHREAD.S.A0014
      command: "readAttribute"
      attribute: "BetterPartitionAttachAttemptCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads ParentChangeCount attribute value from DUT"
      PICS: DGTHREAD.S.A0015
      command: "readAttribute"
      attribute: "ParentChangeCount"
      response:
          constraints:
              type: int16u
              minValue: 0
              maxValue: 65535

    - label: "TH reads ActiveTimestamp attribute value from DUT"
      PICS: DGTHREAD.S.A0038
      command: "readAttribute"
      attribute: "ActiveTimestamp"
      response:
          constraints:
              type: int64u

    - label: "TH reads PendingTimestamp attribute value from DUT"
      PICS: DGTHREAD.S.A0039
      command: "readAttribute"
      attribute: "PendingTimestamp"
      response:
          constraints:
              type: int64u

    - label: "TH reads Delay attribute value from DUT"
      PICS: DGTHREAD.S.A003a
      command: "readAttribute"
      attribute: "Delay"
      response:
          constraints:
              type: int32u
              minValue: 0x0
              maxValue: 0xFFFFFFFF

    #issue #14097
    - label:
          "Read SecurityPolicy struct attribute from DUT and Verify the each
          field"
      verification: |
          ./chip-tool threadnetworkdiagnostics read security-policy 54 0

          Verify "SecurityPolicy attribute has the following value" on the TH(Chip-tool) Log:
          RotationTime is of the type uint16
          Flags is of the type uint8

          [1649825860.866762][3472:3477] CHIP:DMG:        SuppressResponse = true,
          [1649825860.866826][3472:3477] CHIP:DMG:        InteractionModelRevision = 1
          [1649825860.866883][3472:3477] CHIP:DMG: }
          [1649825860.867425][3472:3477] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_003B DataVersion: 2758196590
          [1649825860.867583][3472:3477] CHIP:TOO:   SecurityPolicy: 1 entries
          [1649825860.867743][3472:3477] CHIP:TOO:     [1]: {
          [1649825860.867804][3472:3477] CHIP:TOO:       RotationTime: 672
          [1649825860.867862][3472:3477] CHIP:TOO:       Flags: 8479
          [1649825860.867921][3472:3477] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A003b
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads ChannelPage0Mask attribute value from DUT"
      PICS: DGTHREAD.S.A003c
      command: "readAttribute"
      attribute: "ChannelPage0Mask"
      response:
          constraints:
              type: octet_string

    #issue #14097
    - label:
          "Read OperationalDatasetComponents struct attribute from DUT and
          Verify the each field"
      verification: |
          ./chip-tool threadnetworkdiagnostics read operational-dataset-components 54 0

          Verify "OperationalDatasetComponents has the all the field mentioned in the test plan" on the TH(Chip-tool) Log:

          [1649825944.956668][3489:3494] CHIP:DMG:        SuppressResponse = true,
          [1649825944.956730][3489:3494] CHIP:DMG:        InteractionModelRevision = 1
          [1649825944.956877][3489:3494] CHIP:DMG: }
          [1649825944.957504][3489:3494] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_003D DataVersion: 2758196590
          [1649825944.957787][3489:3494] CHIP:TOO:   OperationalDatasetComponents: 1 entries
          [1649825944.957942][3489:3494] CHIP:TOO:     [1]: {
          [1649825944.958002][3489:3494] CHIP:TOO:       ActiveTimestampPresent: TRUE
          [1649825944.958058][3489:3494] CHIP:TOO:       PendingTimestampPresent: FALSE
          [1649825944.958113][3489:3494] CHIP:TOO:       MasterKeyPresent: TRUE
          [1649825944.958169][3489:3494] CHIP:TOO:       NetworkNamePresent: TRUE
          [1649825944.958222][3489:3494] CHIP:TOO:       ExtendedPanIdPresent: TRUE
          [1649825944.958277][3489:3494] CHIP:TOO:       MeshLocalPrefixPresent: TRUE
          [1649825944.958330][3489:3494] CHIP:TOO:       DelayPresent: FALSE
          [1649825944.958480][3489:3494] CHIP:TOO:       PanIdPresent: TRUE
          [1649825944.958537][3489:3494] CHIP:TOO:       ChannelPresent: TRUE
          [1649825944.958590][3489:3494] CHIP:TOO:       PskcPresent: TRUE
          [1649825944.958643][3489:3494] CHIP:TOO:       SecurityPolicyPresent: TRUE
          [1649825944.958696][3489:3494] CHIP:TOO:       ChannelMaskPresent: TRUE
          [1649825944.958753][3489:3494] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGTHREAD.S.A003d
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    #issue #18145
    - label: "TH reads ActiveNetworkFaults attribute value from DUT"
      PICS: DGTHREAD.S.A003e
      command: "readAttribute"
      attribute: "ActiveNetworkFaultsList"
      response:
          constraints:
              type: list
