@Test
  public void testUpdatesWithTwoBridgeServersInOneVM() throws Exception {
    Integer port3 = serverVM0
        .invoke(() -> HARQueueNewImplDistributedTest.createOneMoreBridgeServer(Boolean.FALSE));

    createClientCache(getServerHostName(), PORT1, PORT2,
        "1", Boolean.TRUE);
    final String client1Host = getServerHostName();
    clientVM1.invoke(() -> HARQueueNewImplDistributedTest.createClientCache(client1Host, port3,
        PORT2, "1", Boolean.TRUE));

    registerInterestListAll();
    clientVM1.invoke(HARQueueNewImplDistributedTest::registerInterestListAll);

    clientVM1.invoke((SerializableRunnableIF) HARQueueNewImplDistributedTest::createEntries);
    serverVM0.invoke(HARQueueNewImplDistributedTest::putEntries);

    serverVM0.invoke(() -> HARQueueNewImplDistributedTest.waitTillMessagesAreDispatched(PORT1));
    serverVM0.invoke(() -> HARQueueNewImplDistributedTest.waitTillMessagesAreDispatched(port3));

    // expect updates
    verifyUpdatesReceived();
    // expect invalidates
    clientVM1.invoke(HARQueueNewImplDistributedTest::verifyUpdatesReceived);
  }
This test verifies that two clients, connected to two cache servers with different
notifyBySubscription values, on a single VM, receive updates/invalidates depending upon their
notifyBySubscription value.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDistributedTest.java