@BeforeClass
  public static void beforeClass() throws Exception {
    // Start locator
    docker.execForService("locator", "gfsh", "-e",
        startLocatorCommand());
    // Start server1
    docker.execForService("server1", "gfsh", "-e",
        "start server --name=server1 --locators=locator[20334]");
    docker.execForService("server2", "gfsh", "-e",
        "start server --name=server2 --locators=locator[20334]");

    docker.execForService("locator", "gfsh",
        "-e", "connect --locator=locator[20334]",
        "-e", "create region --name=region-wan --type=PARTITION");

    // Create gateway receiver
    String createGatewayReceiverCommand = createGatewayReceiverCommand();
    docker.execForService("locator", "gfsh", "-e",
        "connect --locator=locator[20334]", "-e", createGatewayReceiverCommand);
  }
These tests use two Geode sites:

- One site (the remote one) consisting of a 2-server, 1-locator Geode cluster. The servers host a
partition region (region-wan) and have gateway senders to receive events from the other site with
the same value for hostname-for-senders and listening on the same port (2324). The servers and
locator run each inside a Docker container and are not route-able from the host (where this JUnit
test is running). Another Docker container is running the HAProxy image and it's set up as a TCP
load balancer. The other site connects to the locator and to the gateway receivers via the TCP
load balancer that forwards traffic directed to the 20334 port to the locator and traffic
directed to the 2324 port to the receivers in a round robin fashion.

- Another site consisting of a 1-server, 1-locator Geode cluster. The server hosts a partition
region (region-wan) and has a gateway receiver to send events to the remote site.
geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java