private IHandlerAsync <T> MaybeWrapWithExactlyOnce <T>(IHandlerAsync <T> handler) where T : Message { var handlerType = handler.GetType(); var exactlyOnceMetadata = new ExactlyOnceReader(handlerType); if (!exactlyOnceMetadata.Enabled) { return(handler); } if (_messageLock == null) { throw new Exception("IMessageLock is null. You need to specify an implementation for IMessageLock."); } var handlerName = handlerType.FullName.ToLowerInvariant(); var timeout = TimeSpan.FromSeconds(exactlyOnceMetadata.GetTimeOut()); var logger = _loggerFactory.CreateLogger <ExactlyOnceHandler <T> >(); return(new ExactlyOnceHandler <T>(handler, _messageLock, timeout, handlerName, logger)); }
public void ObjectTypeDoesNotHaveExactlyOnce() { var reader = new ExactlyOnceReader(typeof(object)); reader.Enabled.ShouldBeFalse(); }
public void OnceTestHandlerAsyncType_HasExactlyOnce() { var reader = new ExactlyOnceReader(typeof(OnceTestHandlerAsync)); reader.Enabled.ShouldBeTrue(); }
public void UnadornedHandlerType_DoesNotHaveExactlyOnce() { var reader = new ExactlyOnceReader(typeof(UnadornedHandlerAsync)); reader.Enabled.ShouldBeFalse(); }
public void OnceTestHandlerAsyncType_HasExactlyOnce() { var reader = new ExactlyOnceReader(typeof (OnceTestHandlerAsync)); Assert.That(reader.Enabled, Is.True); }
public void UnadornedHandlerType_DoesNotHaveExactlyOnce() { var reader = new ExactlyOnceReader(typeof(UnadornedHandlerAsync)); Assert.That(reader.Enabled, Is.False); }
public void ObjectTypeDoesNotHaveExactlyOnce() { var reader = new ExactlyOnceReader(typeof (object)); Assert.That(reader.Enabled, Is.False); }
public void ObjectTypeDoesNotHaveExactlyOnce() { var reader = new ExactlyOnceReader(typeof(object)); Assert.That(reader.Enabled, Is.False); }
public void OnceTestHandlerAsyncType_HasExactlyOnce() { var reader = new ExactlyOnceReader(typeof(OnceTestHandlerAsync)); Assert.That(reader.Enabled, Is.True); }