public void testListGatewaySenderGatewayReceiver_group() {

    Integer lnPort = (Integer) vm1.invoke(() -> WANCommandTestBase.createFirstLocatorWithDSId(1));

    Properties props = getDistributedSystemProperties();
    props.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
    props.setProperty(DistributionConfig.DISTRIBUTED_SYSTEM_ID_NAME, "1");
    props.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + lnPort + "]");
    createDefaultSetup(props);

    Integer nyPort =
        (Integer) vm2.invoke(() -> WANCommandTestBase.createFirstRemoteLocator(2, lnPort));

    vm6.invoke(() -> WANCommandTestBase.createAndStartReceiver(nyPort));

    vm3.invoke(
        () -> WANCommandTestBase.createCacheWithGroups(lnPort, "Serial_Sender, Paralle_Sender"));
    vm3.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Serial", 2, false, 100, 400, false, false, null, false));
    vm3.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Parallel", 2, true, 100, 400, false, false, null, false));

    vm4.invoke(
        () -> WANCommandTestBase.createCacheWithGroups(lnPort, "Serial_Sender, Paralle_Sender"));
    vm4.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Parallel", 2, true, 100, 400, false, false, null, false));
    vm4.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Serial", 2, false, 100, 400, false, false, null, false));

    vm5.invoke(
        () ->
            WANCommandTestBase.createAndStartReceiverWithGroup(
                lnPort, "Paralle_Sender,Receiver_Group"));
    vm5.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Parallel", 2, true, 100, 400, false, false, null, false));

    vm7.invoke(() -> WANCommandTestBase.createCache(nyPort));
    vm7.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Serial", 1, false, 100, 400, false, false, null, false));
    vm7.invoke(
        () ->
            WANCommandTestBase.createSender(
                "ln_Parallel", 1, true, 100, 400, false, false, null, false));

    Wait.pause(10000);
    String command =
        CliStrings.LIST_GATEWAY + " --" + CliStrings.LIST_GATEWAY__GROUP + "=Serial_Sender";
    CommandResult cmdResult = executeCommand(command);
    if (cmdResult != null) {
      String strCmdResult = commandResultToString(cmdResult);
      Log.getLogWriter().info("testListGatewaySenderGatewayReceiver_group : " + strCmdResult);
      assertEquals(Result.Status.OK, cmdResult.getStatus());

      TabularResultData tableSenderResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_SENDER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_SENDER);
      List<String> senders =
          tableSenderResultData.retrieveAllValues(CliStrings.RESULT_GATEWAY_SENDER_ID);
      assertEquals(4, senders.size());
      List<String> hosts = tableSenderResultData.retrieveAllValues(CliStrings.RESULT_HOST_MEMBER);
      assertEquals(4, hosts.size());

    } else {
      fail("testListGatewaySenderGatewayReceiver_group failed as did not get CommandResult");
    }

    command = CliStrings.LIST_GATEWAY + " --" + CliStrings.LIST_GATEWAY__GROUP + "=Paralle_Sender";
    cmdResult = executeCommand(command);
    if (cmdResult != null) {
      TabularResultData tableSenderResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_SENDER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_SENDER);
      List<String> senders =
          tableSenderResultData.retrieveAllValues(CliStrings.RESULT_GATEWAY_SENDER_ID);
      assertEquals(5, senders.size());

      TabularResultData tableReceiverResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_RECEIVER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_RECEIVER);
      List<String> ports = tableReceiverResultData.retrieveAllValues(CliStrings.RESULT_PORT);
      assertEquals(1, ports.size());

      String strCmdResult = commandResultToString(cmdResult);
      Log.getLogWriter().info("testListGatewaySenderGatewayReceiver_group : " + strCmdResult);
      assertEquals(Result.Status.OK, cmdResult.getStatus());
    } else {
      fail("testListGatewaySenderGatewayReceiver_group failed as did not get CommandResult");
    }

    command = CliStrings.LIST_GATEWAY + " --" + CliStrings.LIST_GATEWAY__GROUP + "=Receiver_Group";
    cmdResult = executeCommand(command);
    if (cmdResult != null) {
      String strCmdResult = commandResultToString(cmdResult);
      Log.getLogWriter().info("testListGatewaySenderGatewayReceiver_group : " + strCmdResult);
      assertEquals(Result.Status.OK, cmdResult.getStatus());

      TabularResultData tableSenderResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_SENDER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_SENDER);
      List<String> senders =
          tableSenderResultData.retrieveAllValues(CliStrings.RESULT_GATEWAY_SENDER_ID);
      assertEquals(1, senders.size());

      TabularResultData tableReceiverResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_RECEIVER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_RECEIVER);
      List<String> ports = tableReceiverResultData.retrieveAllValues(CliStrings.RESULT_PORT);
      assertEquals(1, ports.size());

    } else {
      fail("testListGatewaySenderGatewayReceiver_group failed as did not get CommandResult");
    }

    command =
        CliStrings.LIST_GATEWAY
            + " --"
            + CliStrings.LIST_GATEWAY__GROUP
            + "=Serial_Sender,Paralle_Sender";
    cmdResult = executeCommand(command);
    if (cmdResult != null) {
      String strCmdResult = commandResultToString(cmdResult);
      Log.getLogWriter().info("testListGatewaySenderGatewayReceiver_group : " + strCmdResult);
      assertEquals(Result.Status.OK, cmdResult.getStatus());

      TabularResultData tableSenderResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_SENDER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_SENDER);
      List<String> senders =
          tableSenderResultData.retrieveAllValues(CliStrings.RESULT_GATEWAY_SENDER_ID);
      assertEquals(5, senders.size());

      TabularResultData tableReceiverResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_RECEIVER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_RECEIVER);
      List<String> ports = tableReceiverResultData.retrieveAllValues(CliStrings.RESULT_PORT);
      assertEquals(1, ports.size());
    } else {
      fail("testListGatewaySenderGatewayReceiver_group failed as did not get CommandResult");
    }

    command =
        CliStrings.LIST_GATEWAY
            + " --"
            + CliStrings.LIST_GATEWAY__GROUP
            + "=Serial_Sender,Paralle_Sender,Receiver_Group";
    cmdResult = executeCommand(command);
    if (cmdResult != null) {
      String strCmdResult = commandResultToString(cmdResult);
      Log.getLogWriter().info("testListGatewaySenderGatewayReceiver_group : " + strCmdResult);
      assertEquals(Result.Status.OK, cmdResult.getStatus());

      TabularResultData tableSenderResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_SENDER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_SENDER);
      List<String> senders =
          tableSenderResultData.retrieveAllValues(CliStrings.RESULT_GATEWAY_SENDER_ID);
      assertEquals(5, senders.size());

      TabularResultData tableReceiverResultData =
          ((CompositeResultData) cmdResult.getResultData())
              .retrieveSection(CliStrings.SECTION_GATEWAY_RECEIVER)
              .retrieveTable(CliStrings.TABLE_GATEWAY_RECEIVER);
      List<String> ports = tableReceiverResultData.retrieveAllValues(CliStrings.RESULT_PORT);
      assertEquals(1, ports.size());

    } else {
      fail("testListGatewaySenderGatewayReceiver_group failed as did not get CommandResult");
    }
  }