### Question:
SignalizationBasedEventSynchronizer implements EventSynchronizer { @Override public void signalizeEvent(SynchronizationEvent synchronizationEvent) { try { lock.lock(); if (eventConditionMap.containsKey(synchronizationEvent)) { eventConditionMap.get(synchronizationEvent).signal(); eventConditionMap.remove(synchronizationEvent); } } catch (Exception e) { logger.error("Exception while trying to signalize event " + synchronizationEvent.getName(), e); } finally { lock.unlock(); } } SignalizationBasedEventSynchronizer(int timeoutInSeconds);  SignalizationBasedEventSynchronizer(int timeoutInSeconds, Lock lock); @Override void awaitUntil(SynchronizationEvent synchronizationEvent); @Override void signalizeEvent(SynchronizationEvent synchronizationEvent);  }### Answer:
@Test public void ifSignalizationEventIsNotFoundThenItIsNotLocked() { SynchronizationEvent synchronizationEvent = mock(SynchronizationEvent.class); when(synchronizationEvent.isSatisfied()).thenReturn(false); Lock lock = mock(Lock.class); SignalizationBasedEventSynchronizer signalizationBasedEventSynchronizer = new SignalizationBasedEventSynchronizer(timeout, lock); signalizationBasedEventSynchronizer.signalizeEvent(synchronizationEvent); verify(lock).unlock(); }