Ejemplo n.º 1
0
        public void GivenLazyResolverWhenResolveAndParameterNullShouldThrow()
        {
            var           resolver = new ExpressionLazyLoadResolver <string>((_) => Task.FromResult(string.Empty));
            Func <object> action   = () => resolver.Resolve(null);

            action.Should().Throw <ArgumentNullException>();
        }
Ejemplo n.º 2
0
        public async Task GivenLazyLoadWhenResolveInParallelTasksShouldReturnSameInstance()
        {
            var resolver = new ExpressionLazyLoadResolver <Stub>((_) => Task.FromResult(new Stub()));
            var tasks    = new List <Task <Stub> >();

            for (var i = 0; i < 10000; i++)
            {
                tasks.Add(resolver.ResolveAsync(1));
            }

            await Task.WhenAll(tasks);

            tasks.Select(x => x.GetAwaiter().GetResult()).Distinct().Should().HaveCount(1);
        }