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); }
public static void Check(ITestD testD1, ITestD testD2, bool singleton, bool singletonLast) { Assert.AreEqual(testD1.Equals(testD2), singleton); Assert.AreEqual(testD1.TestD49.Equals(testD2.TestD49), singleton); Assert.AreEqual(testD1.TestD48.Equals(testD2.TestD48), singleton); Assert.AreEqual(testD1.TestD47.Equals(testD2.TestD47), singleton); Assert.AreEqual(testD1.TestD46.Equals(testD2.TestD46), singleton); Assert.AreEqual(testD1.TestD45.Equals(testD2.TestD45), singleton); Assert.AreEqual(testD1.TestD44.Equals(testD2.TestD44), singleton); Assert.AreEqual(testD1.TestD43.Equals(testD2.TestD43), singleton); Assert.AreEqual(testD1.TestD42.Equals(testD2.TestD42), singleton); Assert.AreEqual(testD1.TestD41.Equals(testD2.TestD41), singleton); Assert.AreEqual(testD1.TestD40.Equals(testD2.TestD40), singleton); Assert.AreEqual(testD1.TestD49.TestD39.Equals(testD2.TestD49.TestD39), singleton); Assert.AreEqual(testD1.TestD49.TestD38.Equals(testD2.TestD49.TestD38), singleton); Assert.AreEqual(testD1.TestD49.TestD37.Equals(testD2.TestD49.TestD37), singleton); Assert.AreEqual(testD1.TestD49.TestD36.Equals(testD2.TestD49.TestD36), singleton); Assert.AreEqual(testD1.TestD49.TestD35.Equals(testD2.TestD49.TestD35), singleton); Assert.AreEqual(testD1.TestD49.TestD34.Equals(testD2.TestD49.TestD34), singleton); Assert.AreEqual(testD1.TestD49.TestD33.Equals(testD2.TestD49.TestD33), singleton); Assert.AreEqual(testD1.TestD49.TestD32.Equals(testD2.TestD49.TestD32), singleton); Assert.AreEqual(testD1.TestD49.TestD31.Equals(testD2.TestD49.TestD31), singleton); Assert.AreEqual(testD1.TestD49.TestD30.Equals(testD2.TestD49.TestD30), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.Equals(testD2.TestD49.TestD39.TestD29), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD28.Equals(testD2.TestD49.TestD39.TestD28), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD27.Equals(testD2.TestD49.TestD39.TestD27), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD26.Equals(testD2.TestD49.TestD39.TestD26), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD25.Equals(testD2.TestD49.TestD39.TestD25), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD24.Equals(testD2.TestD49.TestD39.TestD24), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD23.Equals(testD2.TestD49.TestD39.TestD23), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD22.Equals(testD2.TestD49.TestD39.TestD22), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD21.Equals(testD2.TestD49.TestD39.TestD21), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD20.Equals(testD2.TestD49.TestD39.TestD20), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD19.Equals(testD2.TestD49.TestD39.TestD29.TestD19), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD18.Equals(testD2.TestD49.TestD39.TestD29.TestD18), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD17.Equals(testD2.TestD49.TestD39.TestD29.TestD17), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD16.Equals(testD2.TestD49.TestD39.TestD29.TestD16), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD15.Equals(testD2.TestD49.TestD39.TestD29.TestD15), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD14.Equals(testD2.TestD49.TestD39.TestD29.TestD14), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD13.Equals(testD2.TestD49.TestD39.TestD29.TestD13), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD12.Equals(testD2.TestD49.TestD39.TestD29.TestD12), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD11.Equals(testD2.TestD49.TestD39.TestD29.TestD11), singleton); Assert.AreEqual(testD1.TestD49.TestD39.TestD29.TestD10.Equals(testD2.TestD49.TestD39.TestD29.TestD10), singleton); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD09.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD09), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD08.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD08), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD07.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD07), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD06.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD06), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD05.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD05), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD04.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD04), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD03.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD03), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD02.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD02), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD01.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD01), singletonLast); Assert.AreEqual( testD1.TestD49.TestD39.TestD29.TestD19.TestD00.Equals(testD2.TestD49.TestD39.TestD29.TestD19.TestD00), singletonLast); }
public static void Check(ITestD testD, bool singleton, bool singletonLast) { Assert.IsNotNull(testD); Assert.IsNotNull(testD.TestD49); Assert.IsNotNull(testD.TestD48); Assert.IsNotNull(testD.TestD47); Assert.IsNotNull(testD.TestD46); Assert.IsNotNull(testD.TestD45); Assert.IsNotNull(testD.TestD44); Assert.IsNotNull(testD.TestD43); Assert.IsNotNull(testD.TestD42); Assert.IsNotNull(testD.TestD41); Assert.IsNotNull(testD.TestD40); Assert.IsNotNull(testD.TestD49.TestD39); Assert.IsNotNull(testD.TestD49.TestD38); Assert.IsNotNull(testD.TestD49.TestD37); Assert.IsNotNull(testD.TestD49.TestD36); Assert.IsNotNull(testD.TestD49.TestD35); Assert.IsNotNull(testD.TestD49.TestD34); Assert.IsNotNull(testD.TestD49.TestD33); Assert.IsNotNull(testD.TestD49.TestD32); Assert.IsNotNull(testD.TestD49.TestD31); Assert.IsNotNull(testD.TestD49.TestD30); if (singleton) { Assert.AreEqual(testD.TestD49.TestD39, testD.TestD48.TestD39); Assert.AreEqual(testD.TestD49.TestD38, testD.TestD48.TestD38); Assert.AreEqual(testD.TestD49.TestD37, testD.TestD48.TestD37); Assert.AreEqual(testD.TestD49.TestD36, testD.TestD48.TestD36); Assert.AreEqual(testD.TestD49.TestD35, testD.TestD48.TestD35); Assert.AreEqual(testD.TestD49.TestD34, testD.TestD48.TestD34); Assert.AreEqual(testD.TestD49.TestD33, testD.TestD48.TestD33); Assert.AreEqual(testD.TestD49.TestD32, testD.TestD48.TestD32); Assert.AreEqual(testD.TestD49.TestD31, testD.TestD48.TestD31); Assert.AreEqual(testD.TestD49.TestD30, testD.TestD48.TestD30); } else { Assert.AreNotEqual(testD.TestD49.TestD39, testD.TestD48.TestD39); Assert.AreNotEqual(testD.TestD49.TestD38, testD.TestD48.TestD38); Assert.AreNotEqual(testD.TestD49.TestD37, testD.TestD48.TestD37); Assert.AreNotEqual(testD.TestD49.TestD36, testD.TestD48.TestD36); Assert.AreNotEqual(testD.TestD49.TestD35, testD.TestD48.TestD35); Assert.AreNotEqual(testD.TestD49.TestD34, testD.TestD48.TestD34); Assert.AreNotEqual(testD.TestD49.TestD33, testD.TestD48.TestD33); Assert.AreNotEqual(testD.TestD49.TestD32, testD.TestD48.TestD32); Assert.AreNotEqual(testD.TestD49.TestD31, testD.TestD48.TestD31); Assert.AreNotEqual(testD.TestD49.TestD30, testD.TestD48.TestD30); } if (singletonLast) { Assert.AreEqual(testD.TestD49.TestD39.TestD29.TestD19.TestD09, testD.TestD48.TestD39.TestD29.TestD19.TestD09); } else { Assert.AreNotEqual(testD.TestD49.TestD39.TestD29.TestD19.TestD09, testD.TestD48.TestD39.TestD29.TestD19.TestD09); } Assert.IsNotNull(testD.TestD49.TestD39.TestD29); Assert.IsNotNull(testD.TestD49.TestD39.TestD28); Assert.IsNotNull(testD.TestD49.TestD39.TestD27); Assert.IsNotNull(testD.TestD49.TestD39.TestD26); Assert.IsNotNull(testD.TestD49.TestD39.TestD25); Assert.IsNotNull(testD.TestD49.TestD39.TestD24); Assert.IsNotNull(testD.TestD49.TestD39.TestD23); Assert.IsNotNull(testD.TestD49.TestD39.TestD22); Assert.IsNotNull(testD.TestD49.TestD39.TestD21); Assert.IsNotNull(testD.TestD49.TestD39.TestD20); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD18); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD17); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD16); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD15); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD14); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD13); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD12); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD11); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD10); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD09); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD08); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD07); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD06); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD05); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD04); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD03); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD02); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD01); Assert.IsNotNull(testD.TestD49.TestD39.TestD29.TestD19.TestD00); }