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)); } }
public virtual TService GetService <TService>(object key) { return(_resolvers.GetService <TService>(key)); }