public void GetService_can_be_accessed_from_multiple_threads_concurrently()
            {
                for (var i = 0; i < 30; i++)
                {
                    var bag      = new ConcurrentBag <IPilkington>();
                    var karl1    = new Mock <IPilkington>().Object;
                    var resolver = new CompositeResolver <IDbDependencyResolver, IDbDependencyResolver>(
                        new SingletonDependencyResolver <IPilkington>(karl1),
                        new SingletonDependencyResolver <IPilkington>(new Mock <IPilkington>().Object));

                    ExecuteInParallel(() => bag.Add(resolver.GetService <IPilkington>()));

                    Assert.Equal(20, bag.Count);
                    Assert.True(bag.All(c => karl1 == c));
                }
            }
Exemple #2
0
 public virtual TService GetService <TService>(object key)
 {
     return(_resolvers.GetService <TService>(key));
 }