public void Inject_TargetNull_Test() { // Arrange QuillInjector target = new QuillInjector(); // Act/Assert TestUtils.ExecuteExcectedException <QuillException>(() => target.Inject(null)); }
public void Inject_AlreadyInjected_Test() { // Arrange QuillInjector target = new QuillInjector(); var filter = (InjectionFilterBase)QM.InjectionFilter; filter.InjectionTargetTypes.Add(typeof(InjectionTargetSub)); var actual = new InjectionTargetMain(); // Act target.Inject(actual); var expected = actual.Actual; target.Inject(actual); // 二回実行 // Assert Assert.IsNotNull(actual.Actual, "二回実行してもインジェクション結果は失われない想定"); Assert.AreEqual(expected, actual.Actual, "二回実行してもインスタンスは変わらない想定"); }
public void InjectTest() { // Arrange QuillInjector target = new QuillInjector(); var filter = (InjectionFilterBase)QM.InjectionFilter; filter.InjectionTargetTypes.Add(typeof(InjectionTargetSub)); var actual = new InjectionTargetMain(); // Act target.Inject(actual); // Assert Assert.IsNotNull(actual.Actual); Assert.IsNull(InjectionTargetMain.StaticActual, "デフォルトではstaticフィールドはインジェクション対象外"); }
public void Inject_NotTarget_Test() { QM.OutputLog(GetType(), EnumMsgCategory.INFO, "Test start."); // Arrange QuillInjector target = new QuillInjector(); var filter = (InjectionFilterBase)QM.InjectionFilter; filter.IsTargetTypeDefault = false; var actual = new InjectionTargetMain(); // Act target.Inject(actual); // Assert Assert.IsNull(actual.Actual, "インジェクション対象外の想定"); }
public void Inject_Recursive_Test() { // Arrange QuillInjector target = new QuillInjector(); var filter = (InjectionFilterBase)QM.InjectionFilter; filter.InjectionTargetTypes.Add(typeof(InjectionRecursive)); filter.InjectionTargetTypes.Add(typeof(InjectionTargetMain)); filter.InjectionTargetTypes.Add(typeof(InjectionTargetSub)); var actual = new InjectionRecursive(); // Act target.Inject(actual); // Assert Assert.IsNotNull(actual.Actual); Assert.IsNotNull(actual.Actual.Actual); Assert.IsNotNull(actual.SameSourceType, "フィールドにインジェクション対象と同じ型のものがあても無限ループにならず、かつインスタンスは設定されている想定"); Assert.AreEqual(actual.SameSourceType, actual); }