private void txHandleWANEvent(final LocalRegion owner, EntryEventImpl callbackEvent, TXEntryState txEntryState) { owner.handleWANEvent(callbackEvent); if (txEntryState != null) { txEntryState.setTailKey(callbackEvent.getTailKey()); } }
@Test public void txApplyDestroyCallReleaseEvent_givenNoRegionEntryNotInTokenModeNoConcurrencyChecksAndBucket_whenHandleWANEventThrows() { givenBucketRegion(); givenNoRegionEntry(); givenNotInTokenMode(); givenNoConcurrencyChecks(); doThrow(RuntimeException.class).when(owner).handleWANEvent(any()); assertThatThrownBy(this::doTxApplyDestroy).isInstanceOf(RuntimeException.class); verify(regionMap, times(1)).releaseEvent(any()); }
@Test public void txApplyDestroyCallsHandleWanEvent_givenExistingRegionEntryWithPartitionedRegion() { givenBucketRegion(); givenExistingRegionEntry(); doTxApplyDestroy(); verify(owner, times(1)).handleWANEvent(any()); verify(txEntryState, times(1)).setTailKey(tailKey); }
@Test public void txApplyDestroyCallsHandleWanEvent_givenOldRegionEntryWithPartitionedRegion() { givenBucketRegion(); givenConcurrencyChecks(); givenOldRegionEntry(); doTxApplyDestroy(); verify(owner, times(1)).handleWANEvent(any()); verify(txEntryState, times(1)).setTailKey(tailKey); }
@Test public void txApplyDestroyCallsHandleWanEvent_givenFactoryRegionEntryWithPartitionedRegion() { givenBucketRegion(); givenConcurrencyChecks(); givenFactoryRegionEntry(); doTxApplyDestroy(); verify(owner, times(1)).handleWANEvent(any()); verify(txEntryState, times(1)).setTailKey(tailKey); }
@Test public void addsCallbackEvent_givenNoRegionEntryNotInTokenModeNoConcurrencyChecks_andBucket() { givenBucketRegion(); givenNoRegionEntry(); givenNotInTokenMode(); givenNoConcurrencyChecks(); when(partitionedRegion.generateEventID()).thenReturn(true); when(keyInfo.getCallbackArg()).thenReturn(aCallbackArgument); doTxApplyDestroy(); verify(owner, times(1)).handleWANEvent(any()); verify(txEntryState, times(1)).setTailKey(tailKey); assertThat(pendingCallbacks).hasSize(1); EntryEventImpl callbackEvent = pendingCallbacks.get(0); // noinspection Duplicates assertSoftly(softly -> { softly.assertThat(callbackEvent.getRegion()).isSameAs(partitionedRegion); softly.assertThat(callbackEvent.getOperation()).isSameAs(operation); softly.assertThat(callbackEvent.getKey()).isSameAs(key); softly.assertThat(callbackEvent.getNewValue()).isNull(); softly.assertThat(callbackEvent.getTransactionId()).isSameAs(txId); softly.assertThat(callbackEvent.getEventId()).isSameAs(eventId); softly.assertThat(callbackEvent.getCallbackArgument()).isSameAs(aCallbackArgument); softly.assertThat(callbackEvent.getLocalFilterInfo()).isSameAs(filterRoutingInfo); softly.assertThat(callbackEvent.getContext()).isSameAs(bridgeContext); softly.assertThat(callbackEvent.isOriginRemote()).isEqualTo(isOriginRemote); softly.assertThat(callbackEvent.getVersionTag()).isEqualTo(versionTag); softly.assertThat(callbackEvent.getTailKey()).isEqualTo(tailKey); }); }