public void TestBeginToEndInjection() { // Arrange var actor = new QuillInjectionContext(); // Act / Assert AssertBeginToEndAndResetInjection(actor); }
public void TestBeginToEndInjection_ThreadSafe() { // Arrange var actor = new QuillInjectionContext(isThreadsafe: true); // Act / Assert AssertBeginToEndAndResetInjection(actor); }
public void TestInjectField() { // Arrange var entity = new TestEntity(); entity.Hoge = null; var fieldInfo = typeof(TestEntity).GetField("Hoge"); var actor = new FieldInjectorImpl(); var context = new QuillInjectionContext(); // Act Assert.IsNull(entity.Hoge); actor.InjectField(entity, fieldInfo, context); // Assert Assert.IsNotNull(entity.Hoge); Assert.AreEqual(typeof(FieldEntity), entity.Hoge.GetType()); }
private void AssertBeginToEndAndResetInjection(QuillInjectionContext context) { var testType1 = typeof(string); var testType2 = typeof(int); Assert.AreEqual(0, context.InjectionDepth); Assert.IsFalse(context.IsInInjection()); Assert.IsFalse(context.IsAlreadyInjected(testType1)); Assert.IsFalse(context.IsAlreadyInjected(testType2)); context.BeginInjection(testType1); Assert.AreEqual(1, context.InjectionDepth); Assert.IsTrue(context.IsInInjection()); Assert.IsTrue(context.IsAlreadyInjected(testType1)); Assert.IsFalse(context.IsAlreadyInjected(testType2)); context.BeginInjection(testType2); Assert.AreEqual(2, context.InjectionDepth); Assert.IsTrue(context.IsInInjection()); Assert.IsTrue(context.IsAlreadyInjected(testType1)); Assert.IsTrue(context.IsAlreadyInjected(testType2)); context.EndInjection(); Assert.AreEqual(1, context.InjectionDepth); Assert.IsTrue(context.IsInInjection()); Assert.IsTrue(context.IsAlreadyInjected(testType1)); Assert.IsTrue(context.IsAlreadyInjected(testType2)); context.BeginInjection(testType2); Assert.AreEqual(2, context.InjectionDepth); Assert.IsTrue(context.IsInInjection()); Assert.IsTrue(context.IsAlreadyInjected(testType1)); Assert.IsTrue(context.IsAlreadyInjected(testType2)); context.ResetInjection(); Assert.AreEqual(0, context.InjectionDepth); Assert.IsFalse(context.IsInInjection()); Assert.IsFalse(context.IsAlreadyInjected(testType1)); Assert.IsFalse(context.IsAlreadyInjected(testType2)); }