@Test
  public void testServerUpFirstClientLater() throws Exception {
    PORT1 = initServerCache(server1);

    server1.invoke(() -> registerDataSerializer(DSObject1.class));
    server1.invoke(() -> registerDataSerializer(DSObject2.class));

    server1.invoke(() -> DataSerializerPropagationDUnitTest.verifyDataSerializers(2));

    final String hostName = NetworkUtils.getServerHostName();
    client1.invoke(() -> DataSerializerPropagationDUnitTest.createClientCache(hostName, PORT1));

    client1.invoke(() -> DataSerializerPropagationDUnitTest.verifyDataSerializers(2));

    // Put some entries from the client
    client1.invoke(() -> {
      Region region = cache.getRegion(REGION_NAME);
      for (int i = 1; i <= 10; i++) {
        region.put(i, i);
      }
    });

    client1.invoke(() -> {
      Region region = cache.getRegion(REGION_NAME);
      assertEquals(1, region.get(1));
    });

    server1.invoke(() -> {
      Region region = cache.getRegion(REGION_NAME);
      for (int i = 1; i <= 10; i++) {
        assertEquals(i, region.get(i));
      }
    });
  }
Register two DataSerializers on the server and verify that they get propagated to client.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java