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);
        }
Exemple #3
0
        /// <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は行われていない");
        }