Exemplo n.º 1
0
        public void ProcessSlaTimeouts_should_remove_requests_only_if_the_longest_sla_timed_out()
        {
            var lowerSlaInMs  = 20;
            var higherSlaInMs = 50;
            var slaMultiplier = 2;
            var lowerTimeout  = lowerSlaInMs * slaMultiplier + WaitDeltaMs;
            var higherTimeout = higherSlaInMs * slaMultiplier + WaitDeltaMs;

            SlaDefinitionBuilder
            .For <Request>(req => req.Id)
            .AddSla <Response>(TimeSpan.FromMilliseconds(lowerSlaInMs), rsp => rsp.Id)
            .AddSla <Response2>(TimeSpan.FromMilliseconds(higherSlaInMs), rsp => rsp.Id)
            .Configure(_slaProvider);

            _slaProcessor = new TestableSlaProcessor(_slaProvider);

            _slaProcessor.ProcessOutgoingMessage(new Request {
                Id = Guid.NewGuid()
            });

            Thread.Sleep(lowerTimeout);
            _slaProcessor.ProcessSlaTimeouts();
            Assert.That(_slaProcessor.Timeouts.Count, Is.EqualTo(0), "None of messages should time out yet");

            Thread.Sleep(higherTimeout - lowerSlaInMs);
            _slaProcessor.ProcessSlaTimeouts();
            Assert.That(_slaProcessor.Timeouts.Count, Is.EqualTo(1), "Message should time out now");
        }
Exemplo n.º 2
0
        public void SetUp()
        {
            _provider = new SlaProvider();

            SlaDefinitionBuilder.For <Request>(r => r.Id)
            .AddSla <Response>(_sla, r => r.Id)
            .Configure(_provider);

            _appender = InjectInMemoryAppender();
        }
Exemplo n.º 3
0
        private void ConfigureSla()
        {
            SlaDefinitionBuilder.For <Request>(r => r.Id)
            .AddSla <Response>(TimeSpan.FromSeconds(1), r => r.Id)
            .AddSla <ErrorResponse>(TimeSpan.FromSeconds(1), r => r.Id)
            .Configure(_slaProvider);

            SlaDefinitionBuilder.For <Request2>(r => r.Id)
            .AddSla <Response2>(TimeSpan.FromSeconds(1), r => r.Id)
            .AddSla <ErrorResponse2>(TimeSpan.FromSeconds(1), r => r.Id)
            .Configure(_slaProvider);
        }
Exemplo n.º 4
0
        public void It_should_create_definitions()
        {
            var provider = new SlaProvider();

            SlaDefinitionBuilder.For <IRequest>(x => x.RequestId)
            .AddSla <IResponse>(TimeSpan.FromSeconds(1), x => x.ResponseId)
            .AddSla <IErrorResponse>(TimeSpan.FromSeconds(2), x => x.ResponseId)
            .Configure(provider);

            Assert.That(provider.GetRequestDefinitions(new Mock <IRequest>().Object).Count(), Is.EqualTo(1), "request mapping");

            Assert.That(provider.GetSlaDefinitionsFor(new Mock <IResponse>().Object).Single().Sla, Is.EqualTo(TimeSpan.FromSeconds(1)));
            Assert.That(provider.GetSlaDefinitionsFor(new Mock <IErrorResponse>().Object).Single().Sla, Is.EqualTo(TimeSpan.FromSeconds(2)));
        }