@Override
      public Object call() {
        Region<CustId, Customer> cust = getCache().getRegion(CUSTOMER);
        Region<CustId, Customer> ref = getCache().getRegion(D_REFERENCE);
        TXManagerImpl mgr = getCache().getTxManager();
        mgr.begin();
        Customer customer = new Customer("customer1", "address1");
        Customer fakeCust = new Customer("foo", "bar");
        assertThat(cust.replace(custId, fakeCust, updatedCust)).isFalse();
        assertThat(cust.replace(custId, customer, updatedCust)).isTrue();
        assertThat(ref.replace(custId, fakeCust, updatedCust)).isFalse();
        assertThat(ref.replace(custId, customer, updatedCust)).isTrue();
        TXStateProxy tx = mgr.pauseTransaction();
        assertThat(cust.get(custId)).isEqualTo(customer);
        assertThat(ref.get(custId)).isEqualTo(customer);
        mgr.unpauseTransaction(tx);
        return mgr.suspend();
      }
Make sure that getEntry returns null properly and values when it should
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java