@Override public void onAttachOrDetach(AttachEvent event) { // Handle widget reattachment/reparenting if (event.isAttached()) { acquireLockOnDemand(element); } } });
@Test public void acquireLockOnDemand() { lockManager.acquireLockOnDemand(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void acquireLockOnDemand() { lockManager.acquireLockOnDemand(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void handleWindowReparenting() { lockManager.acquireLockOnDemand(); verify(lockDemandDetector, times(1)).getLockDemandEventTypes(); final ArgumentCaptor<AttachEvent.Handler> handlerCaptor = ArgumentCaptor.forClass(AttachEvent.Handler.class); verify(widget, times(1)).addAttachHandler(handlerCaptor.capture()); handlerCaptor.getValue().onAttachOrDetach(new AttachEvent(true) { }); verify(lockDemandDetector, times(2)).getLockDemandEventTypes(); }
@Test public void acquireLockDoesNotHitServerIfLocked() { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void acquireLockDoesNotHitServerIfLocked() { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void notifyLockError() throws Exception { lockManager.acquireLockOnDemand(); simulateLockError(); simulateLockDemand(); verify(lockNotification, times(1)).fire(any(NotificationEvent.class)); }
@Test public void notifyLockFailure() throws Exception { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); verify(lockNotification, times(1)).fire(any(NotificationEvent.class)); }
@Test public void requestAcquireLockOnDemandNoMoreThanOnce() { lockManager.acquireLockOnDemand(); simulateLockNoResponse(); simulateLockDemand(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void notifyLockFailure() throws Exception { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); verify(lockNotification, times(1)).fire(any(NotificationEvent.class)); }
@Test public void notifyLockError() throws Exception { lockManager.acquireLockOnDemand(); simulateLockError(); simulateLockDemand(); verify(lockNotification, times(1)).fire(any(NotificationEvent.class)); }
@Test public void requestAcquireLockOnDemandNoMoreThanOnce() { lockManager.acquireLockOnDemand(); simulateLockNoResponse(); simulateLockDemand(); simulateLockDemand(); verify(lockService, times(1)).acquireLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseLockOnSave() { lockManager.acquireLockOnDemand(); simulateLockSuccess(); simulateLockDemand(); lockManager.onSaveInProgress(new SaveInProgressEvent(path)); verify(lockService, times(1)).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseLockOnSave() { lockManager.acquireLockOnDemand(); simulateLockSuccess(); simulateLockDemand(); lockManager.onSaveInProgress(new SaveInProgressEvent(path)); verify(lockService, times(1)).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseOwnedLockOnly() { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); lockManager.onResourceUpdated(new ResourceUpdatedEvent(path, "", new SessionInfoImpl(user))); verify(lockService, never()).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseLockOnUpdate() { lockManager.acquireLockOnDemand(); simulateLockSuccess(); simulateLockDemand(); lockManager.onResourceUpdated(new ResourceUpdatedEvent(path, "", new SessionInfoImpl(user))); verify(lockService, times(1)).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseOwnedLockOnly() { lockManager.acquireLockOnDemand(); simulateLockFailure(); simulateLockDemand(); lockManager.onResourceUpdated(new ResourceUpdatedEvent(path, "", new SessionInfoImpl(user))); verify(lockService, never()).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void releaseLockOnUpdate() { lockManager.acquireLockOnDemand(); simulateLockSuccess(); simulateLockDemand(); lockManager.onResourceUpdated(new ResourceUpdatedEvent(path, "", new SessionInfoImpl(user))); verify(lockService, times(1)).releaseLock(any(Path.class), any(ParameterizedCommand.class)); }
@Test public void reloadOnLockFailure() throws Exception { lockManager.acquireLockOnDemand(); assertEquals(0, reloads); simulateLockFailure(); simulateLockDemand(); assertEquals(1, reloads); }
@Test public void reloadOnLockFailure() throws Exception { lockManager.acquireLockOnDemand(); assertEquals(0, reloads); simulateLockFailure(); simulateLockDemand(); assertEquals(1, reloads); }