@Override
      public Object call() {
        final Region custRegion = getCache().getRegion(CUSTOMER);
        TXManagerImpl mgr = getCache().getTXMgr();
        mgr.begin();
        FunctionService.onRegion(custRegion).execute(new FunctionAdapter() {
          @Override
          public String getId() {
            return "LocalDS";
          }

          @Override
          public void execute(FunctionContext context) {
            assertThat(getCache().getTxManager().getTXState()).isNotNull();
            custRegion.destroy(expectedCustId);
            context.getResultSender().lastResult(Boolean.TRUE);
          }
        }).getResult();
        TXStateProxy tx = mgr.pauseTransaction();
        assertThat(custRegion.get(expectedCustId)).isEqualTo(expectedCustomer);
        mgr.unpauseTransaction(tx);
        mgr.commit();
        assertThat(custRegion.get(expectedCustId)).isNull();
        return null;
      }
When we have narrowed down on a target node for a transaction, test that we throw an exception
if that node does not host primary for subsequent entries
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RemoteTransactionDUnitTest.java