public void DifferentThreads_DifferentObjects_RegisterClassWithDependencyPropertyAndDependencyMethod_Success() { var c = new Container(); c.RegisterType<EmptyClass>().AsPerThread(); var sampleClass1 = new SampleClassWithClassDependencyPropertyAndDependencyMethodWithSameType(); var sampleClass2 = new SampleClassWithClassDependencyPropertyAndDependencyMethodWithSameType(); var thread1 = new Thread(() => { c.BuildUp(sampleClass1, ResolveKind.PartialEmitFunction); }); thread1.Start(); thread1.Join(); var thread2 = new Thread(() => { c.BuildUp(sampleClass2, ResolveKind.PartialEmitFunction); }); thread2.Start(); thread2.Join(); Assert.IsNotNull(sampleClass1.EmptyClassFromDependencyProperty); Assert.IsNotNull(sampleClass1.EmptyClassFromDependencyMethod); Assert.AreEqual(sampleClass1.EmptyClassFromDependencyProperty, sampleClass1.EmptyClassFromDependencyMethod); Assert.IsNotNull(sampleClass2.EmptyClassFromDependencyProperty); Assert.IsNotNull(sampleClass2.EmptyClassFromDependencyMethod); Assert.AreEqual(sampleClass2.EmptyClassFromDependencyProperty, sampleClass2.EmptyClassFromDependencyMethod); Assert.AreNotEqual(sampleClass1, sampleClass2); Assert.AreNotEqual(sampleClass1.EmptyClassFromDependencyProperty, sampleClass2.EmptyClassFromDependencyMethod); Assert.AreNotEqual(sampleClass1.EmptyClassFromDependencyMethod, sampleClass2.EmptyClassFromDependencyMethod); }
public void RegisterClassWithDependencyPropertyAndDependencyMethodWithSameType_Success() { var c = new Container(); c.RegisterType<EmptyClass>(); var sampleClass = new SampleClassWithClassDependencyPropertyAndDependencyMethodWithSameType(); c.BuildUp(sampleClass, ResolveKind.PartialEmitFunction); Assert.IsNotNull(sampleClass.EmptyClassFromDependencyProperty); Assert.IsNotNull(sampleClass.EmptyClassFromDependencyMethod); Assert.AreNotEqual(sampleClass.EmptyClassFromDependencyProperty, sampleClass.EmptyClassFromDependencyMethod); }