# 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:
    125.2.2. [TC-G-2.2] Commands - AddGroup, ViewGroup, RemoveGroup,
    RemoveAllGroups [DUT-Server]

PICS:
    - G.S

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

tests:
    - label: "Preconditions"
      verification: |
          ./chip-tool groupkeymanagement read max-groups-per-fabric 1 0

          Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool)  Log:

          [1658322885.576847][4918:4923] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 3844079670
          [1658322885.576907][4918:4923] CHIP:TOO:   MaxGroupsPerFabric: 3
      disabled: true

    - label: "Preconditions"
      verification: |
          Execute the following command in TH to generate the pre-condition to execute this test case:

          ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 1,
          "groupKeySecurityPolicy": 0, "epochKey0":
          "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":
          "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":
          "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 1 0

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1658316948.574526][4039:4044] CHIP:DMG:                                StatusIB =
          [1658316948.574561][4039:4044] CHIP:DMG:                                {
          [1658316948.574597][4039:4044] CHIP:DMG:                                   status = 0x00 (SUCCESS),
          [1658316948.574632][4039:4044] CHIP:DMG:                                },

          Before adding the Groups (0x0001,0x0002) execute this command

          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1} ]" 1 0

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1663071507.364542][23693:23698] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1663071507.364603][23693:23698] CHIP:DMG: WriteResponseMessage =
          [1663071507.364635][23693:23698] CHIP:DMG: {
          [1663071507.364661][23693:23698] CHIP:DMG:         AttributeStatusIBs =
          [1663071507.364699][23693:23698] CHIP:DMG:         [
          [1663071507.364728][23693:23698] CHIP:DMG:                 AttributeStatusIB =
          [1663071507.364768][23693:23698] CHIP:DMG:                 {
          [1663071507.364799][23693:23698] CHIP:DMG:                         AttributePathIB =
          [1663071507.364838][23693:23698] CHIP:DMG:                         {
          [1663071507.364876][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
          [1663071507.364921][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
          [1663071507.364961][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1663071507.365002][23693:23698] CHIP:DMG:                         }
          [1663071507.365044][23693:23698] CHIP:DMG:
          [1663071507.365079][23693:23698] CHIP:DMG:                         StatusIB =
          [1663071507.365121][23693:23698] CHIP:DMG:                         {
          [1663071507.365164][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1663071507.365201][23693:23698] CHIP:DMG:                         },
          [1663071507.365243][23693:23698] CHIP:DMG:
          [1663071507.365275][23693:23698] CHIP:DMG:                 },
          [1663071507.365320][23693:23698] CHIP:DMG:
          [1663071507.365351][23693:23698] CHIP:DMG:                 AttributeStatusIB =
          [1663071507.365385][23693:23698] CHIP:DMG:                 {
          [1663071507.365417][23693:23698] CHIP:DMG:                         AttributePathIB =
          [1663071507.365453][23693:23698] CHIP:DMG:                         {
          [1663071507.365489][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
          [1663071507.365532][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
          [1663071507.365574][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1663071507.365612][23693:23698] CHIP:DMG:                                 ListIndex = Null,
          [1663071507.365652][23693:23698] CHIP:DMG:                         }
          [1663071507.365696][23693:23698] CHIP:DMG:
          [1663071507.365735][23693:23698] CHIP:DMG:                         StatusIB =
          [1663071507.365773][23693:23698] CHIP:DMG:                         {
          [1663071507.365810][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1663071507.365846][23693:23698] CHIP:DMG:                         },
          [1663071507.365883][23693:23698] CHIP:DMG:
          [1663071507.365915][23693:23698] CHIP:DMG:                 },
          [1663071507.365958][23693:23698] CHIP:DMG:
          [1663071507.365987][23693:23698] CHIP:DMG:                 AttributeStatusIB =
          [1663071507.366017][23693:23698] CHIP:DMG:                 {
          [1663071507.366047][23693:23698] CHIP:DMG:                         AttributePathIB =
          [1663071507.366082][23693:23698] CHIP:DMG:                         {
          [1663071507.366121][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
          [1663071507.366164][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
          [1663071507.366204][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1663071507.366243][23693:23698] CHIP:DMG:                                 ListIndex = Null,
          [1663071507.366280][23693:23698] CHIP:DMG:                         }
          [1663071507.366319][23693:23698] CHIP:DMG:
          [1663071507.366355][23693:23698] CHIP:DMG:                         StatusIB =
          [1663071507.366390][23693:23698] CHIP:DMG:                         {
          [1663071507.366428][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1663071507.366466][23693:23698] CHIP:DMG:                         },


          Before adding the Groups (0x0003) execute this command

          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0


          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1663071565.926340][23704:23709] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1663071565.926399][23704:23709] CHIP:DMG: WriteResponseMessage =
          [1663071565.926427][23704:23709] CHIP:DMG: {
          [1663071565.926464][23704:23709] CHIP:DMG:         AttributeStatusIBs =
          [1663071565.926498][23704:23709] CHIP:DMG:         [
          [1663071565.926535][23704:23709] CHIP:DMG:                 AttributeStatusIB =
          [1663071565.926568][23704:23709] CHIP:DMG:                 {
          [1663071565.926609][23704:23709] CHIP:DMG:                         AttributePathIB =
          [1663071565.926689][23704:23709] CHIP:DMG:                         {
          [1663071565.926730][23704:23709] CHIP:DMG:                                 Endpoint = 0x0,
          [1663071565.926775][23704:23709] CHIP:DMG:                                 Cluster = 0x3f,
          [1663071565.926814][23704:23709] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1663071565.926909][23704:23709] CHIP:DMG:                         }
          [1663071565.926961][23704:23709] CHIP:DMG:
          [1663071565.926993][23704:23709] CHIP:DMG:                         StatusIB =
          [1663071565.927037][23704:23709] CHIP:DMG:                         {
          [1663071565.927074][23704:23709] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1663071565.927116][23704:23709] CHIP:DMG:                         },
          [1663071565.927153][23704:23709] CHIP:DMG:
          [1663071565.927191][23704:23709] CHIP:DMG:                 },
          [1663071565.927230][23704:23709] CHIP:DMG:
          [1663071565.927265][23704:23709] CHIP:DMG:                 AttributeStatusIB =
          [1663071565.927295][23704:23709] CHIP:DMG:                 {
          [1663071565.927332][23704:23709] CHIP:DMG:                         AttributePathIB =
          [1663071565.927365][23704:23709] CHIP:DMG:                         {
          [1663071565.927406][23704:23709] CHIP:DMG:                                 Endpoint = 0x0,
          [1663071565.927442][23704:23709] CHIP:DMG:                                 Cluster = 0x3f,
          [1663071565.927487][23704:23709] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1663071565.927524][23704:23709] CHIP:DMG:                                 ListIndex = Null,
          [1663071565.927570][23704:23709] CHIP:DMG:                         }
          [1663071565.927607][23704:23709] CHIP:DMG:
          [1663071565.927651][23704:23709] CHIP:DMG:                         StatusIB =
          [1663071565.927686][23704:23709] CHIP:DMG:                         {
          [1663071565.927728][23704:23709] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1663071565.927760][23704:23709] CHIP:DMG:                         },



          After executing all commands related to the above three groups, execute the below command before adding the Group 0x0004 to check the Resource_Exhausted Condition


          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 4, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1658323590.007082][4982:4987] CHIP:DMG:                        StatusIB =
          [1658323590.007117][4982:4987] CHIP:DMG:                        {
          [1658323590.007156][4982:4987] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1658323590.007196][4982:4987] CHIP:DMG:                        },
          [1658323590.006453][4982:4987] CHIP:DMG:                        StatusIB =
          [1658323590.006489][4982:4987] CHIP:DMG:                        {
          [1658323590.006527][4982:4987] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1658323590.006562][4982:4987] CHIP:DMG:                        },
      disabled: true

    - label:
          "If maxgroups>0, TH sends AddGroup command to DUT as unicast with the
          following fields : GroupID as 0x0001 GroupName as Gp1"
      PICS: G.S.C00.Rsp && G.S.C00.Tx
      verification: |
          ./chip-tool groups add-group 0x0001 grp1 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1651218084.427102][2526:2531] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1651218084.427203][2526:2531] CHIP:TOO:   AddGroupResponse: {
          [1651218084.427241][2526:2531] CHIP:TOO:     status: 0
          [1651218084.427264][2526:2531] CHIP:TOO:     groupId: 1
          [1651218084.427314][2526:2531] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 0, TH reads GroupTable attribute from the
          GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1651218198.062850][2538:2543] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 2261933069
          [1651218198.062980][2538:2543] CHIP:TOO:   GroupTable: 1 entries
          [1651218198.067019][2538:2543] CHIP:TOO:     [1]: {
          [1651218198.067076][2538:2543] CHIP:TOO:       GroupId: 1
          [1651218198.067123][2538:2543] CHIP:TOO:       Endpoints: 1 entries
          [1651218198.067192][2538:2543] CHIP:TOO:         [1]: 0
          [1651218198.067241][2538:2543] CHIP:TOO:       GroupName: grp1
          [1651218198.067284][2538:2543] CHIP:TOO:       FabricIndex: 1
          [1651218198.067327][2538:2543] CHIP:TOO:      }
      disabled: true

    - label:
          "If maxgroups>1, TH sends AddGroup command to DUT as unicast with the
          following fields : GroupID as 0x0002 GroupName as Gp2"
      PICS: G.S.C00.Rsp && G.S.C00.Tx
      verification: |
          ./chip-tool groups add-group 0x0002 grp2 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1653484028.897698][11275:11280] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653484028.897804][11275:11280] CHIP:TOO:   AddGroupResponse: {
          [1653484028.897851][11275:11280] CHIP:TOO:     status: 0
          [1653484028.897884][11275:11280] CHIP:TOO:     groupId: 2
          [1653484028.897917][11275:11280] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 1 TH reads GroupTable attribute from the
          GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1653484065.934504][11281:11286] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1368205390
          [1653484065.934631][11281:11286] CHIP:TOO:   GroupTable: 2 entries
          [1653484065.937522][11281:11286] CHIP:TOO:     [1]: {
          [1653484065.937573][11281:11286] CHIP:TOO:       GroupId: 1
          [1653484065.937615][11281:11286] CHIP:TOO:       Endpoints: 1 entries
          [1653484065.937678][11281:11286] CHIP:TOO:         [1]: 0
          [1653484065.937723][11281:11286] CHIP:TOO:       GroupName: grp1
          [1653484065.937763][11281:11286] CHIP:TOO:       FabricIndex: 1
          [1653484065.937802][11281:11286] CHIP:TOO:      }
          [1653484065.937854][11281:11286] CHIP:TOO:     [2]: {
          [1653484065.937893][11281:11286] CHIP:TOO:       GroupId: 2
          [1653484065.937933][11281:11286] CHIP:TOO:       Endpoints: 1 entries
          [1653484065.937974][11281:11286] CHIP:TOO:         [1]: 0
          [1653484065.938014][11281:11286] CHIP:TOO:       GroupName: grp2
          [1653484065.938051][11281:11286] CHIP:TOO:       FabricIndex: 1
          [1653484065.938089][11281:11286] CHIP:TOO:      }
      disabled: true

    - label:
          "If maxgroups>2, TH sends AddGroup command to DUT (n-2) more times,
          starting with GroupID 0x0003 and incrementing by 1 each time."
      PICS: G.S.C00.Rsp && G.S.C00.Tx
      verification: |
          ./chip-tool groups add-group 0x0003 grp3 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1653484116.857523][11289:11294] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653484116.857675][11289:11294] CHIP:TOO:   AddGroupResponse: {
          [1653484116.857739][11289:11294] CHIP:TOO:     status: 0
          [1653484116.857787][11289:11294] CHIP:TOO:     groupId: 3
          [1653484116.857834][11289:11294] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups>2, TH reads GroupTable attribute from the
          GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1653484156.968253][11299:11304] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1368205390
          [1653484156.968414][11299:11304] CHIP:TOO:   GroupTable: 3 entries
          [1653484156.968565][11299:11304] CHIP:TOO:     [1]: {
          [1653484156.968612][11299:11304] CHIP:TOO:       GroupId: 1
          [1653484156.968657][11299:11304] CHIP:TOO:       Endpoints: 1 entries
          [1653484156.968725][11299:11304] CHIP:TOO:         [1]: 0
          [1653484156.968773][11299:11304] CHIP:TOO:       GroupName: grp1
          [1653484156.968814][11299:11304] CHIP:TOO:       FabricIndex: 1
          [1653484156.968855][11299:11304] CHIP:TOO:      }
          [1653484156.968912][11299:11304] CHIP:TOO:     [2]: {
          [1653484156.968955][11299:11304] CHIP:TOO:       GroupId: 2
          [1653484156.968997][11299:11304] CHIP:TOO:       Endpoints: 1 entries
          [1653484156.969042][11299:11304] CHIP:TOO:         [1]: 0
          [1653484156.969087][11299:11304] CHIP:TOO:       GroupName: grp2
          [1653484156.969127][11299:11304] CHIP:TOO:       FabricIndex: 1
          [1653484156.969165][11299:11304] CHIP:TOO:      }
          [1653484156.969221][11299:11304] CHIP:TOO:     [3]: {
          [1653484156.969262][11299:11304] CHIP:TOO:       GroupId: 3
          [1653484156.969304][11299:11304] CHIP:TOO:       Endpoints: 1 entries
          [1653484156.969349][11299:11304] CHIP:TOO:         [1]: 0
          [1653484156.969393][11299:11304] CHIP:TOO:       GroupName: grp3
          [1653484156.969432][11299:11304] CHIP:TOO:       FabricIndex: 1
          [1653484156.969471][11299:11304] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends AddGroup command to DUT as unicast with the GroupID set to
          (maxgroups+1)"
      PICS: G.S.C00.Rsp
      verification: |
          ./chip-tool groups add-group 0x0004 grp4 1 1

          Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool)  Log:

          [1653484187.170553][11306:11311] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653484187.170637][11306:11311] CHIP:TOO:   AddGroupResponse: {
          [1653484187.170677][11306:11311] CHIP:TOO:     status: 137
          [1653484187.170702][11306:11311] CHIP:TOO:     groupId: 4
          [1653484187.170727][11306:11311] CHIP:TOO:    }
      disabled: true

    - label:
          "TH reads GroupTable attribute from the GroupKeyManagement cluster
          from DUT on PIXIT.G.ENDPOINT"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1653484324.735216][11318:11323] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1368205390
          [1653484324.735368][11318:11323] CHIP:TOO:   GroupTable: 3 entries
          [1653484324.735515][11318:11323] CHIP:TOO:     [1]: {
          [1653484324.735561][11318:11323] CHIP:TOO:       GroupId: 1
          [1653484324.735605][11318:11323] CHIP:TOO:       Endpoints: 1 entries
          [1653484324.735672][11318:11323] CHIP:TOO:         [1]: 0
          [1653484324.735721][11318:11323] CHIP:TOO:       GroupName: grp1
          [1653484324.735761][11318:11323] CHIP:TOO:       FabricIndex: 1
          [1653484324.735823][11318:11323] CHIP:TOO:      }
          [1653484324.735881][11318:11323] CHIP:TOO:     [2]: {
          [1653484324.735924][11318:11323] CHIP:TOO:       GroupId: 2
          [1653484324.735966][11318:11323] CHIP:TOO:       Endpoints: 1 entries
          [1653484324.736012][11318:11323] CHIP:TOO:         [1]: 0
          [1653484324.736055][11318:11323] CHIP:TOO:       GroupName: grp2
          [1653484324.736096][11318:11323] CHIP:TOO:       FabricIndex: 1
          [1653484324.736134][11318:11323] CHIP:TOO:      }
          [1653484324.736188][11318:11323] CHIP:TOO:     [3]: {
          [1653484324.736232][11318:11323] CHIP:TOO:       GroupId: 3
          [1653484324.736274][11318:11323] CHIP:TOO:       Endpoints: 1 entries
          [1653484324.736319][11318:11323] CHIP:TOO:         [1]: 0
          [1653484324.736363][11318:11323] CHIP:TOO:       GroupName: grp3
          [1653484324.736403][11318:11323] CHIP:TOO:       FabricIndex: 1
          [1653484324.736441][11318:11323] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends AddGroup command to DUT as unicast with the following fields
          : GroupID as 0x0000 GroupName as Gp6"
      PICS: G.S.C00.Rsp && G.S.C00.Tx
      verification: |
          ./chip-tool groups add-group 0x0000 grp6 1 1

          Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool)  Log:

          [1653484439.884144][11341:11346] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653484439.884258][11341:11346] CHIP:TOO:   AddGroupResponse: {
          [1653484439.884310][11341:11346] CHIP:TOO:     status: 135
          [1653484439.884346][11341:11346] CHIP:TOO:     groupId: 0
          [1653484439.884383][11341:11346] CHIP:TOO:    }
      disabled: true

    - label:
          "TH sends AddGroup command to DUT as unicast with the following fields
          : GroupID as 0x0005 GroupName as Gp5"
      PICS: G.S.C00.Rsp && G.S.C00.Tx
      verification: |
          ./chip-tool groups add-group 0x0005 grp5 1 1

          Verify the "status is UNSUPPORTED_ACCESS" on the TH(Chip-tool)  Log:

          [1658302176.951047][2747:2752] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000
          [1658302176.951103][2747:2752] CHIP:TOO:   AddGroupResponse: {
          [1658302176.951140][2747:2752] CHIP:TOO:     status: 126
          [1658302176.951166][2747:2752] CHIP:TOO:     groupId: 5
          [1658302176.951189][2747:2752] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 0, TH sends ViewGroup command to DUT as unicast with
          the following fields: GroupID as 0x0001"
      PICS: G.S.C01.Rsp && G.S.C01.Tx
      verification: |
          ./chip-tool groups view-group 0x0001 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          1653484504.667714][11349:11354] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001
          [1653484504.667841][11349:11354] CHIP:TOO: ViewGroupResponse: {
          [1653484504.667927][11349:11354] CHIP:TOO: status: 0
          [1653484504.667974][11349:11354] CHIP:TOO: groupId: 1
          [1653484504.668018][11349:11354] CHIP:TOO: groupName: grp1
          [1653484504.668064][11349:11354] CHIP:TOO: }
      disabled: true

    - label:
          "TH sends ViewGroup command to DUT as unicast with the following
          fields: GroupID as 0x0000"
      PICS: G.S.C01.Rsp && G.S.C01.Tx
      verification: |
          ./chip-tool groups view-group 0x0000 1 1

          Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool)  Log:

          [1653484611.595344][11412:11417] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001
          [1653484611.595454][11412:11417] CHIP:TOO:   ViewGroupResponse: {
          [1653484611.595501][11412:11417] CHIP:TOO:     status: 135
          [1653484611.595534][11412:11417] CHIP:TOO:     groupId: 0
          [1653484611.595565][11412:11417] CHIP:TOO:     groupName:
          [1653484611.595599][11412:11417] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 0, TH sends RemoveGroup command to DUT as unicast with
          the following field : GroupID as 0x0001"
      PICS: G.S.C03.Rsp && G.S.C03.Tx
      verification: |
          ./chip-tool groups remove-group 0x0001 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1653484876.432744][11451:11456] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003
          [1653484876.432915][11451:11456] CHIP:TOO:   RemoveGroupResponse: {
          [1653484876.432989][11451:11456] CHIP:TOO:     status: 0
          [1653484876.433044][11451:11456] CHIP:TOO:     groupId: 1
          [1653484876.433098][11451:11456] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 0, TH sends ViewGroup command to DUT as unicast with
          the following field : GroupID as 0x0001"
      PICS: G.S.C01.Rsp && G.S.C01.Tx
      verification: |
          ./chip-tool groups view-group 0x0001 1 1

          Verify the "status is NOT_FOUND" on the TH(Chip-tool)  Log:

          [1653484952.142387][11458:11463] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001
          [1653484952.142476][11458:11463] CHIP:TOO:   ViewGroupResponse: {
          [1653484952.142516][11458:11463] CHIP:TOO:     status: 139
          [1653484952.142541][11458:11463] CHIP:TOO:     groupId: 1
          [1653484952.142566][11458:11463] CHIP:TOO:     groupName:
          [1653484952.142592][11458:11463] CHIP:TOO:    }
      disabled: true

    - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1655125356.123370][27657:27662] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1860794324
          [1655125356.123494][27657:27662] CHIP:TOO:   GroupTable: 2 entries
          [1655125356.123616][27657:27662] CHIP:TOO:     [1]: {
          [1655125356.123726][27657:27662] CHIP:TOO:       GroupId: 2
          [1655125356.123779][27657:27662] CHIP:TOO:       Endpoints: 1 entries
          [1655125356.123830][27657:27662] CHIP:TOO:         [1]: 0
          [1655125356.123878][27657:27662] CHIP:TOO:       GroupName: grp2
          [1655125356.123923][27657:27662] CHIP:TOO:       FabricIndex: 1
          [1655125356.123964][27657:27662] CHIP:TOO:      }
          [1655125356.124023][27657:27662] CHIP:TOO:     [2]: {
          [1655125356.124066][27657:27662] CHIP:TOO:       GroupId: 3
          [1655125356.124110][27657:27662] CHIP:TOO:       Endpoints: 1 entries
          [1655125356.124158][27657:27662] CHIP:TOO:         [1]: 0
          [1655125356.124202][27657:27662] CHIP:TOO:       GroupName: grp3
          [1655125356.124245][27657:27662] CHIP:TOO:       FabricIndex: 1
          [1655125356.124285][27657:27662] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends RemoveGroup command to DUT as unicast with the following
          field : GroupID as 0x0000"
      PICS: G.S.C03.Rsp && G.S.C03.Tx
      verification: |
          ./chip-tool groups remove-group 0x0000 1 1

          Verify the "status as CONSTRAINT_ERROR" on the TH(Chip-tool)  Log:

          [1653485045.328766][11473:11478] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003
          [1653485045.328896][11473:11478] CHIP:TOO:   RemoveGroupResponse: {
          [1653485045.328954][11473:11478] CHIP:TOO:     status: 135
          [1653485045.328994][11473:11478] CHIP:TOO:     groupId: 0
          [1653485045.329036][11473:11478] CHIP:TOO:    }
      disabled: true

    - label:
          "TH sends RemoveGroup command to DUT as unicast with the following
          field : GroupID as 0x0001"
      PICS: G.S.C03.Rsp && G.S.C03.Tx
      verification: |
          ./chip-tool groups remove-group 0x0001 1 1

          Verify the "status is NOT_FOUND"  on the TH(Chip-tool)  Log:

          [1653485126.672869][11483:11488] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003
          [1653485126.672969][11483:11488] CHIP:TOO:   RemoveGroupResponse: {
          [1653485126.673015][11483:11488] CHIP:TOO:     status: 139
          [1653485126.673045][11483:11488] CHIP:TOO:     groupId: 52
          [1653485126.673075][11483:11488] CHIP:TOO:    }
      disabled: true

    - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1655125356.123370][27657:27662] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1860794324
          [1655125356.123494][27657:27662] CHIP:TOO:   GroupTable: 2 entries
          [1655125356.123616][27657:27662] CHIP:TOO:     [1]: {
          [1655125356.123726][27657:27662] CHIP:TOO:       GroupId: 2
          [1655125356.123779][27657:27662] CHIP:TOO:       Endpoints: 1 entries
          [1655125356.123830][27657:27662] CHIP:TOO:         [1]: 0
          [1655125356.123878][27657:27662] CHIP:TOO:       GroupName: grp2
          [1655125356.123923][27657:27662] CHIP:TOO:       FabricIndex: 1
          [1655125356.123964][27657:27662] CHIP:TOO:      }
          [1655125356.124023][27657:27662] CHIP:TOO:     [2]: {
          [1655125356.124066][27657:27662] CHIP:TOO:       GroupId: 3
          [1655125356.124110][27657:27662] CHIP:TOO:       Endpoints: 1 entries
          [1655125356.124158][27657:27662] CHIP:TOO:         [1]: 0
          [1655125356.124202][27657:27662] CHIP:TOO:       GroupName: grp3
          [1655125356.124245][27657:27662] CHIP:TOO:       FabricIndex: 1
          [1655125356.124285][27657:27662] CHIP:TOO:      }
      disabled: true

    - label: "TH sends RemoveAllGroups command to DUT as unicast method"
      PICS: G.S.C04.Rsp
      verification: |
          ./chip-tool groups remove-all-groups 1 1

          Verify the "status is success" on the TH(Chip-tool)  Log:

          [1653485455.344097][11508:11513] CHIP:DMG:                              StatusIB =
          [1653485455.344141][11508:11513] CHIP:DMG:                              {
          [1653485455.344190][11508:11513] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1653485455.344236][11508:11513] CHIP:DMG:                              },
      disabled: true

    - label:
          "TH sends ViewGroup command to DUT as unicast with the following
          fields: GroupID as 0x0001"
      PICS: G.S.C01.Rsp && G.S.C01.Tx
      verification: |
          ./chip-tool groups view-group 0x0001 1 1

          Verify the "status is NOT_FOUND" on the TH(Chip-tool)  Log:

          [1653559917.259920][3227:3232] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001
          [1653559917.259993][3227:3232] CHIP:TOO:   ViewGroupResponse: {
          [1653559917.260040][3227:3232] CHIP:TOO:     status: 139
          [1653559917.260075][3227:3232] CHIP:TOO:     groupId: 1
          [1653559917.260107][3227:3232] CHIP:TOO:     groupName:
          [1653559917.260138][3227:3232] CHIP:TOO:    }
      disabled: true

    - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster"
      PICS: GRPKEY.S.A0001
      verification: |
          ./chip-tool groupkeymanagement read group-table 1 0

          Verify the "grouptable entries" on the TH(Chip-tool)  Log:

          [1656332191.739327][27032:27037] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3761602970
          [1656332191.739391][27032:27037] CHIP:TOO:   GroupTable: 0 entries
      disabled: true
