private void checkValues(Region<Object, Object> region) {
    assertEquals(TestSerializable.class, region.get("A").getClass());
    assertEquals(TestSerializable.class, region.get("B").getClass());
    // TODO Transactions don't work
    // assertIndexDetailsEquals(TestSerializable.class, region.get("C").getClass());
    // assertIndexDetailsEquals(TestSerializable.class, region.get("D").getClass());
  }
This test creates the following topology

vm0 a peer accessor for both a PR and a replicate region vm1 a peer data store for a replicate
region and a PR vm2 a client of vm0 vm3 a client vm1

The test then performs all region operations in operationVM, while deserialization is prevented
in disallowDeserializationVM.

If an operation causes a deserialization in the disallow VM, this test will fail.
geode-core/src/distributedTest/java/org/apache/geode/pdx/PdxDeserializationDUnitTest.java