public void ShouldNotSetTimerWhenUsingRedisPersistor()
        {
            // Arrange
            Guid messageId = Guid.NewGuid();

            var deduplicationSettings = DeduplicationFilterSettings.Instance;

            deduplicationSettings.DisableMsgExpiry = false;

            IMessageDeduplicationPersistor persistor = new MessageDeduplicationPersistorRedis();

            var outgoingFilter = new OutgoingFilter(persistor);
            var envelope       = new Envelope();

            envelope.Headers = new Dictionary <string, object>();
            envelope.Headers = new Dictionary <string, object> {
                { "MessageId", Encoding.ASCII.GetBytes(messageId.ToString()) }
            };


            // Act
            var result = outgoingFilter.Process(envelope);


            // Assert
            Assert.Null(outgoingFilter.Timer);
        }
        public void ShouldSwallowPersistanceException()
        {
            // Arrange
            Guid messageId = Guid.NewGuid();

            var deduplicationSettings = DeduplicationFilterSettings.Instance;

            deduplicationSettings.DisableMsgExpiry = true;

            _persistor.Setup(i => i.Insert(messageId, It.IsAny <DateTime>())).Throws(new Exception());

            var outgoingFilter = new OutgoingFilter(_persistor.Object);
            var envelope       = new Envelope();

            envelope.Headers = new Dictionary <string, object>();
            envelope.Headers = new Dictionary <string, object> {
                { "MessageId", Encoding.ASCII.GetBytes(messageId.ToString()) }
            };


            // Act
            var result = outgoingFilter.Process(envelope);


            // Assert
            Assert.True(result);
        }