public void Constructor_NullTest() { // Arrange/Act QuillContainer actual = new QuillContainer(null); FieldInfo fieldInfo = actual.GetType().GetField("_components", BindingFlags.NonPublic | BindingFlags.Instance); // Assert // コンストラクタにnullが渡された場合もデフォルトのDictionaryが設定されている Assert.IsNotNull(fieldInfo.GetValue(actual)); }
public void Constructor_DictionaryTest() { // Arrange/Act IDictionary <Type, object> expected = new Dictionary <Type, object>(); QuillContainer actual = new QuillContainer(expected); FieldInfo fieldInfo = actual.GetType().GetField("_components", BindingFlags.NonPublic | BindingFlags.Instance); var component = actual.GetComponent <TestEntity>(); // Assert Assert.AreEqual(expected, fieldInfo.GetValue(actual)); Assert.IsNotNull(component); }
/// <summary> /// 既定の設定で初期化 /// </summary> public static void InitializeDefault() { Config = null; Container = new QuillContainer(); TypeMap = new TypeMapImpl(); ComponentCreator = new ComponentCreators(); Injector = new QuillInjector(); InjectionFilter = new InjectionFilterBase(); Message = QuillMessage.CreateForJPN(); OutputLog = OutputLogToConsole; // SQL Server用パラメータマーク ReplaceToParamMark = (paramName) => "@" + paramName; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="condition">フィールド抽出条件</param> /// <param name="container">Quillコンテナ</param> /// <param name="isThreadsafe">スレッドセーフフラグ(true:スレッドセーフ, false:非スレッドセーフ)</param> public QuillInjectionContext( BindingFlags condition = (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance), QuillContainer container = null, bool isThreadsafe = false) { _condition = condition; _container = (container == null ? SingletonInstances.GetInstance<QuillContainer>() : container); if (isThreadsafe) { _injectedTypes = new ConcurrentInjectedTypes(); } else { _injectedTypes = new InjectedTypes(); } }
public void GetComponent_CacheFalse_InjectionFalse_Test() { // Arrange QuillContainer target = new QuillContainer(); TestInjector testInjector = new TestInjector(); testInjector.IsInjected = false; QuillManager.Injector = testInjector; // Act var component = target.GetComponent <TestEntity>(isCache: false, withInjection: false); component.Hoge = default(int) + 1; // defaultとは違う値 component = target.GetComponent <TestEntity>(isCache: false, withInjection: false); // Assert Assert.IsNotNull(component); Assert.AreEqual(default(int), component.Hoge, "キャッシュしていないのでdefault"); Assert.IsFalse(testInjector.IsInjected, "Injectionは行われていない"); }