# 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.3. [TC-G-2.3] Commands - GetGroupMembership, AddGroupIfIdentifying
    [DUT-Server]

PICS:
    - G.S

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

tests:
    - label:
          "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 gp2 1 1

          Verify the status is success and groupid on the TH Log:

          [1653552285.195099][2464:2469] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653552285.197783][2464:2469] CHIP:TOO:   AddGroupResponse: {
          [1653552285.197849][2464:2469] CHIP:TOO:     status: 0
          [1653552285.197877][2464:2469] CHIP:TOO:     groupId: 2
          [1653552285.197933][2464:2469] 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 Log:

          [1653552351.250570][2474:2479] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1424397362
          [1653552351.253012][2474:2479] CHIP:TOO:   GroupTable: 1 entries
          [1653552351.255507][2474:2479] CHIP:TOO:     [1]: {
          [1653552351.255546][2474:2479] CHIP:TOO:       GroupId: 2
          [1653552351.255579][2474:2479] CHIP:TOO:       Endpoints: 1 entries
          [1653552351.255628][2474:2479] CHIP:TOO:         [1]: 0
          [1653552351.255664][2474:2479] CHIP:TOO:       GroupName: gp2
          [1653552351.255695][2474:2479] CHIP:TOO:       FabricIndex: 1
          [1653552351.255725][2474:2479] CHIP:TOO:      }
      disabled: true

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

          Verify the status is success and groupid on the TH Log:

          [1653552417.870291][2482:2487] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
          [1653552417.870407][2482:2487] CHIP:TOO:   AddGroupResponse: {
          [1653552417.870462][2482:2487] CHIP:TOO:     status: 0
          [1653552417.870500][2482:2487] CHIP:TOO:     groupId: 3
          [1653552417.870539][2482:2487] CHIP:TOO:    }
      disabled: true

    - label:
          "If maxgroups > 1, 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 Log:

          [1653552448.373558][2491:2496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1424397362
          [1653552448.373710][2491:2496] CHIP:TOO:   GroupTable: 2 entries
          [1653552448.373856][2491:2496] CHIP:TOO:     [1]: {
          [1653552448.373905][2491:2496] CHIP:TOO:       GroupId: 2
          [1653552448.373951][2491:2496] CHIP:TOO:       Endpoints: 1 entries
          [1653552448.374022][2491:2496] CHIP:TOO:         [1]: 0
          [1653552448.374141][2491:2496] CHIP:TOO:       GroupName: gp2
          [1653552448.374186][2491:2496] CHIP:TOO:       FabricIndex: 1
          [1653552448.374228][2491:2496] CHIP:TOO:      }
          [1653552448.374287][2491:2496] CHIP:TOO:     [2]: {
          [1653552448.374331][2491:2496] CHIP:TOO:       GroupId: 3
          [1653552448.374374][2491:2496] CHIP:TOO:       Endpoints: 1 entries
          [1653552448.374421][2491:2496] CHIP:TOO:         [1]: 0
          [1653552448.374467][2491:2496] CHIP:TOO:       GroupName: gp3
          [1653552448.374508][2491:2496] CHIP:TOO:       FabricIndex: 1
          [1653552448.374547][2491:2496] CHIP:TOO:      }
      disabled: true

    - label:
          "TH sends GetGroupMembership command to DUT on PIXIT.G.ENDPOINT with
          the following fields : GroupList as NULL"
      PICS: G.S.C02.Rsp && G.S.C02.Tx
      verification: |
          ./chip-tool groups get-group-membership [] 1 1

          Verify the grouplist on the TH Log:

          [1653552493.052711][2501:2506] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0002
          [1653552493.052792][2501:2506] CHIP:TOO:   GetGroupMembershipResponse: {
          [1653552493.052819][2501:2506] CHIP:TOO:     capacity: null
          [1653552493.052870][2501:2506] CHIP:TOO:     groupList: 2 entries
          [1653552493.052922][2501:2506] CHIP:TOO:       [1]: 2
          [1653552493.052950][2501:2506] CHIP:TOO:       [2]: 3
          [1653552493.052978][2501:2506] CHIP:TOO:    }
      disabled: true

    - label:
          "TH sends GetGroupMembership command to DUT on PIXIT.G.ENDPOINT with
          the following fields : GroupList as [0x0002]"
      PICS: G.S.C02.Rsp && G.S.C02.Tx
      verification: |
          ./chip-tool groups get-group-membership [0002] 1 1

          Verify the grouplist on the TH Log:


          [1653294426.515523][3638:3643] CHIP:TOO:   GetGroupMembershipResponse: {
          [1653294426.515571][3638:3643] CHIP:TOO:     capacity: null
          [1653294426.515649][3638:3643] CHIP:TOO:     groupList: 1 entries
          [1653294426.515737][3638:3643] CHIP:TOO:       [1]: 2
          [1653294426.515916][3638:3643] CHIP:TOO:    }
      disabled: true

    - label:
          "if maxgroups > 1, TH sends GetGroupMembership command to DUT on
          PIXIT.G.ENDPOINT as unicast with the following fields : GroupList as
          [0x0002, 0x0003]"
      PICS: G.S.C02.Rsp && G.S.C02.Tx
      verification: |
          ./chip-tool groups get-group-membership [0002,0003] 1 1


          Verify grouplist entries on the TH Log:

          [1653294490.030740][3646:3651] CHIP:TOO:   GetGroupMembershipResponse: {
          [1653294490.030775][3646:3651] CHIP:TOO:     capacity: null
          [1653294490.030838][3646:3651] CHIP:TOO:     groupList: 2 entries
          [1653294490.030907][3646:3651] CHIP:TOO:       [1]: 2
          [1653294490.030943][3646:3651] CHIP:TOO:       [2]: 3
          [1653294490.030979][3646:3651] 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 Log:

          [1651224377.831704][2989:2994] CHIP:DMG:                                StatusIB =
          [1651224377.831757][2989:2994] CHIP:DMG:                                {
          [1651224377.831812][2989:2994] CHIP:DMG:                                      status = 0x00 (SUCCESS),
          [1651224377.831866][2989:2994] CHIP:DMG:                                },
          [1651224377.832439][2989:2994] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0004 Command=0x0000_0004 Status=0x0
      disabled: true

    - label:
          "TH sends Identify command to DUT with the IdentifyTime as (0x0078)
          120 seconds"
      PICS: I.S.C00.Rsp
      verification: |
          ./chip-tool identify identify 0x0078 1 1

          Verify the status is success on the TH Log:

          [1658306666.592846][3044:3049] CHIP:DMG:                                StatusIB =
          [1658306666.592889][3044:3049] CHIP:DMG:                                {
          [1658306666.592962][3044:3049] CHIP:DMG:                                        status = 0x00 (SUCCESS),
          [1658306666.593007][3044:3049] CHIP:DMG:                                },
      disabled: true

    - label: "TH reads immediately IdentifyTime attribute from DUT"
      PICS: I.S.A0000
      verification: |
          ./chip-tool identify read identify-time 1 1

          Verify the identifytime on the TH Log:

          [1658306684.629338][3050:3055] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913205
          [1658306684.629394][3050:3055] CHIP:TOO:   identify time: 102
      disabled: true

    - label:
          "If maxgroups>0, TH sends AddGroupIfIdentifying command to DUT as
          unicast method with the following fields: GroupID as 0x0006 GroupName
          as Gp6"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0006 gp6 1 1

          Verify the status is success on the TH Log:

          [1653552667.307794][2571:2576] CHIP:DMG:                                StatusIB =
          [1653552667.307831][2571:2576] CHIP:DMG:                                {
          [1653552667.307881][2571:2576] CHIP:DMG:                                   status = 0x00 (SUCCESS),
          [1653552667.307922][2571:2576] CHIP:DMG:                                },
      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 grouplist entries on the TH Log:

          [1658306579.092336][3028:3033] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 656741762
          [1658306579.094919][3028:3033] CHIP:TOO:   GroupTable: 1 entries
          [1658306579.095045][3028:3033] CHIP:TOO:     [1]: {
          [1658306579.095075][3028:3033] CHIP:TOO:       GroupId: 6
          [1658306579.095103][3028:3033] CHIP:TOO:       Endpoints: 1 entries
          [1658306579.095133][3028:3033] CHIP:TOO:         [1]: 1
          [1658306579.095161][3028:3033] CHIP:TOO:       GroupName: gp6
          [1658306579.095187][3028:3033] CHIP:TOO:       FabricIndex: 1
          [1658306579.095210][3028:3033] CHIP:TOO:      }
      disabled: true

    - label:
          "If maxgroups>1, TH sends AddGroupIfIdentifying command to DUT as
          unicast method with the following fields: GroupID as 0x0007 GroupName
          as Gp7"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0007 gp7 1 1

          Verify the status is success on the TH Log:

          [1658306847.237724][3125:3130] CHIP:DMG:                                StatusIB =
          [1658306847.237765][3125:3130] CHIP:DMG:                                {
          [1658306847.237818][3125:3130] CHIP:DMG:                                   status = 0x00 (SUCCESS),
          [1658306847.237869][3125:3130] CHIP:DMG:                                },
      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 grouplist entries on the TH Log:

          [1658306870.013290][3132:3137] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 656741774
          [1658306870.013392][3132:3137] CHIP:TOO:   GroupTable: 2 entries
          [1658306870.013485][3132:3137] CHIP:TOO:     [1]: {
          [1658306870.013517][3132:3137] CHIP:TOO:       GroupId: 6
          [1658306870.013550][3132:3137] CHIP:TOO:       Endpoints: 1 entries
          [1658306870.013586][3132:3137] CHIP:TOO:         [1]: 1
          [1658306870.013619][3132:3137] CHIP:TOO:       GroupName: gp6
          [1658306870.013650][3132:3137] CHIP:TOO:       FabricIndex: 1
          [1658306870.013678][3132:3137] CHIP:TOO:      }
          [1658306870.013718][3132:3137] CHIP:TOO:     [2]: {
          [1658306870.013747][3132:3137] CHIP:TOO:       GroupId: 7
          [1658306870.013777][3132:3137] CHIP:TOO:       Endpoints: 1 entries
          [1658306870.013810][3132:3137] CHIP:TOO:         [1]: 1
          [1658306870.013841][3132:3137] CHIP:TOO:       GroupName: gp7
          [1658306870.013871][3132:3137] CHIP:TOO:       FabricIndex: 1
          [1658306870.013899][3132:3137] CHIP:TOO:      }
      disabled: true

    - label:
          "If maxgroups > 2, TH sends AddGroupIfIdentifying command to DUT with
          (maxgroups - 2) groups, incrementing the GroupId each time."
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0008 gp8 1 1

          Verify the status is success on the TH Log:

          [1653552667.307794][2571:2576] CHIP:DMG:                                StatusIB =
          [1653552667.307831][2571:2576] CHIP:DMG:                                {
          [1653552667.307881][2571:2576] CHIP:DMG:                                   status = 0x00 (SUCCESS),
          [1653552667.307922][2571:2576] CHIP:DMG:                                },
      disabled: true

    - label:
          "If maxgroups>0, TH sends AddGroupIfIdentifying command to DUT
          (maxgroups+2) times as unicast method with different GroupID"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0009 gp9 1 1

          Verify the status is success on the TH Log:

          [1658317372.589336][4296:4301] CHIP:DMG:                                StatusIB =
          [1658317372.589363][4296:4301] CHIP:DMG:                                {
          [1658317372.589399][4296:4301] CHIP:DMG:                                        status = 0x89 (RESOURCE_EXHAUSTED),
          [1658317372.589432][4296:4301] CHIP:DMG:                                },
      disabled: true

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

          Verify the grouptable entries on the TH Log:

          [1658309507.902666][3452:3457] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 656741784
          [1658309507.902779][3452:3457] CHIP:TOO:   GroupTable: 3 entries
          [1658309507.902873][3452:3457] CHIP:TOO:     [1]: {
          [1658309507.902906][3452:3457] CHIP:TOO:       GroupId: 6
          [1658309507.902940][3452:3457] CHIP:TOO:       Endpoints: 1 entries
          [1658309507.902975][3452:3457] CHIP:TOO:         [1]: 1
          [1658309507.903010][3452:3457] CHIP:TOO:       GroupName: gp6
          [1658309507.903040][3452:3457] CHIP:TOO:       FabricIndex: 1
          [1658309507.903069][3452:3457] CHIP:TOO:      }
          [1658309507.903108][3452:3457] CHIP:TOO:     [2]: {
          [1658309507.903137][3452:3457] CHIP:TOO:       GroupId: 7
          [1658309507.903168][3452:3457] CHIP:TOO:       Endpoints: 1 entries
          [1658309507.903201][3452:3457] CHIP:TOO:         [1]: 1
          [1658309507.903231][3452:3457] CHIP:TOO:       GroupName: gp7
          [1658309507.903260][3452:3457] CHIP:TOO:       FabricIndex: 1
          [1658309507.903287][3452:3457] CHIP:TOO:      }
          [1658309507.903326][3452:3457] CHIP:TOO:     [3]: {
          [1658309507.903355][3452:3457] CHIP:TOO:       GroupId: 8
          [1658309507.903385][3452:3457] CHIP:TOO:       Endpoints: 1 entries
          [1658309507.903418][3452:3457] CHIP:TOO:         [1]: 1
          [1658309507.903448][3452:3457] CHIP:TOO:       GroupName: gp8
          [1658309507.903477][3452:3457] CHIP:TOO:       FabricIndex: 1
          [1658309507.903505][3452:3457] 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 Log:

          [1651224377.831704][2989:2994] CHIP:DMG:                                StatusIB =
          [1651224377.831757][2989:2994] CHIP:DMG:                                {
          [1651224377.831812][2989:2994] CHIP:DMG:                                      status = 0x00 (SUCCESS),
          [1651224377.831866][2989:2994] CHIP:DMG:                                },
          [1651224377.832439][2989:2994] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0004 Command=0x0000_0004 Status=0x0
      disabled: true

    - label:
          "TH sends AddGroupIfIdentifying command to DUT as unicast method with
          the following fields: GroupID as 0x0000 GroupName as Gp45"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0000 gp45 1 1


          Verify the status is constraint error on the TH Log:

          [1658307266.719438][3251:3256] CHIP:DMG:                                StatusIB =
          [1658307266.719482][3251:3256] CHIP:DMG:                                {
          [1658307266.719527][3251:3256] CHIP:DMG:                                        status = 0x87 (CONSTRAINT_ERROR),
          [1658307266.719573][3251:3256] CHIP:DMG:                                },
      disabled: true

    - label:
          "TH sends AddGroupIfIdentifying command to DUT as unicast method with
          the following fields: GroupId as 0x0046 GroupName as Gp46"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0045 gp46 1 1

          Verify the status is unsupported access on the TH Log:

          [1658307298.568727][3257:3262] CHIP:DMG:                                StatusIB =
          [1658307298.568761][3257:3262] CHIP:DMG:                                {
          [1658307298.568807][3257:3262] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1658307298.568840][3257:3262] CHIP:DMG:                                },
      disabled: true

    - label:
          "TH sends Identify command to DUT with the IdentifyTime as 0x0000
          (stop identifying)"
      PICS: I.S.C00.Rsp
      verification: |
          ./chip-tool identify identify 0x0000 1 1

          Verify the status is success on the TH Log:

          [1658307387.097433][3268:3273] CHIP:DMG:                                StatusIB =
          [1658307387.097464][3268:3273] CHIP:DMG:                                {
          [1658307387.097502][3268:3273] CHIP:DMG:                                        status = 0x00 (SUCCESS),
          [1658307387.097533][3268:3273] CHIP:DMG:                                },
      disabled: true

    - label: "TH reads immediately IdentifyTime attribute from DUT"
      PICS: I.S.A0000
      verification: |
          ./chip-tool identify read identify-time 1 1

          Verify the identify time on the TH Log:

          [1658307393.820520][3274:3279] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3871913767
          [1658307393.820575][3274:3279] CHIP:TOO:   identify time: 0
      disabled: true

    - label:
          "TH sends AddGroupIfIdentifying command to DUT as unicast method with
          the following fields: GroupId as 0x0004 GroupName as Gp4"
      PICS: G.S.C05.Rsp
      verification: |
          ./chip-tool groups  add-group-if-identifying 0x0004 gp4 1 1

          Verify the status is success on the TH Log:

          [1651224746.146005][3038:3043] CHIP:DMG:                                StatusIB =
          [1651224746.146038][3038:3043] CHIP:DMG:                                {
          [1651224746.146073][3038:3043] CHIP:DMG:                                      status = 0x00 (SUCCESS),
          [1651224746.146106][3038:3043] CHIP:DMG:                                },
      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 Log:

          [1658317914.656772][4650:4655] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3844079664
          [1658317914.656843][4650:4655] CHIP:TOO:   GroupTable: 0 entries
      disabled: true
