public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new StructureMapRegistration(), new StructureMapResolving()); ITestD obj1 = null; ITestD obj2 = null; var c = new Container(); c = (Container)testCase.Register(c, RegistrationKind.PerThread); var thread = new Thread(() => { obj1 = c.GetInstance <ITestD>(); obj2 = c.GetInstance <ITestD>(); }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new DryIocRegistration(), new DryIocResolving()); var c = new Container(scopeContext: new ThreadScopeContext()); c = (Container)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread = new Thread(() => { using (var s = c.OpenScope()) { obj1 = c.Resolve <ITestD>(); obj2 = c.Resolve <ITestD>(); } }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new NiquIoCFullRegistration(), new NiquIoCFullResolving()); var c = new Container(); c = (Container)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread = new Thread(() => { obj1 = c.Resolve <ITestD>(ResolveKind.FullEmitFunction); obj2 = c.Resolve <ITestD>(ResolveKind.FullEmitFunction); }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new GraceRegistration(), new GraceResolving()); var c = new DependencyInjectionContainer(); c = (DependencyInjectionContainer)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread = new Thread(() => { using (var scope = c.BeginLifetimeScope()) { obj1 = scope.Locate <ITestD>(); obj2 = scope.Locate <ITestD>(); } }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_DifferentThreads_Success() { ITestCase testCase = new PerThreadTestCaseD(new AutofacRegistration(), new AutofacResolving()); var cb = new ContainerBuilder(); var c = (IContainer)testCase.Register(cb, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread1 = new Thread(() => { using (var threadLifetime = c.BeginLifetimeScope()) { obj1 = threadLifetime.Resolve <ITestD>(); } }); var thread2 = new Thread(() => { using (var threadLifetime = c.BeginLifetimeScope()) { obj2 = threadLifetime.Resolve <ITestD>(); } }); thread1.Start(); thread1.Join(); thread2.Start(); thread2.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, false, false); }
public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new NinjectRegistration(), new NinjectResolving()); var c = new StandardKernel(); c = (StandardKernel)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread = new Thread(() => { obj1 = c.Get <ITestD>(); obj2 = c.Get <ITestD>(); }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_SameThread_Success() { ITestCase testCase = new PerThreadTestCaseD(new SimpleInjectorRegistration(), new SimpleInjectorResolving()); var c = new Container(); c = (Container)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread = new Thread(() => { using (c.BeginLifetimeScope()) { obj1 = c.GetInstance <ITestD>(); obj2 = c.GetInstance <ITestD>(); } }); thread.Start(); thread.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, true, true); }
public void RegisterPerThread_DifferentThreads_Success() { ITestCase testCase = new PerThreadTestCaseD(new NiquIoCPartialRegistration(), new NiquIoCPartialResolving()); var c = new Container(); c = (Container)testCase.Register(c, RegistrationKind.PerThread); ITestD obj1 = null; ITestD obj2 = null; var thread1 = new Thread(() => { obj1 = c.Resolve <ITestD>(ResolveKind.PartialEmitFunction); }); var thread2 = new Thread(() => { obj2 = c.Resolve <ITestD>(ResolveKind.PartialEmitFunction); }); thread1.Start(); thread1.Join(); thread2.Start(); thread2.Join(); CheckHelper.Check(obj1, true, true); CheckHelper.Check(obj2, true, true); CheckHelper.Check(obj1, obj2, false, false); }