示例#1
0
        public async Task TestWireUpFromConfiguration()
        {
            var wireUp = new ConcurrentWireUp();

            var config = wireUp.CreateConfigurationFromDefaultValue("10");

            var limitedThroughputConfiguration = config as ConcurrentConfiguration;

            Assert.NotNull(limitedThroughputConfiguration);

            Assert.Equal(10, limitedThroughputConfiguration.MaxNumberOfConcurrentMessages);

            var handler = new ConcurrentMessageHandler();

            var func = Create.SimpleFunc <int>(b => b.SoftFireAndForget().WireUp(handler, new[] { config }));

            Assert.Equal(0, handler.NumberOfInvokations);

            for (var i = 0; i < 20; i++)
            {
                await func(1);
            }

            await Task.Delay(1500);

            Assert.Equal(10, handler.NumberOfInvokations);
        }
示例#2
0
        public async Task ConcurrentDecoratorWireUpHandlerTests()
        {
            var handler = new ConcurrentMessageHandler();

            var func = Create.SimpleFunc <int>(b => b.SoftFireAndForget().WireUp(handler));

            for (var i = 0; i < 20; i++)
            {
                await func(1);
            }

            await Task.Delay(1500);

            Assert.Equal(10, handler.NumberOfInvokations);
        }