예제 #1
0
        public static void DataSettingTypeGetterTest(DBDataSettingType type)
        {
            var typeSetting         = new DBTypeSetting();
            var dataSetting         = new DBDataSetting(type, DBKind.User, 0);
            var instance            = new DatabaseTypeDesc(typeSetting, dataSetting);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            DBDataSettingType result = null;
            var errorOccured         = false;

            try
            {
                result = instance.DataSettingType;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 取得した結果が意図した値であること
            Assert.AreEqual(result, type);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
예제 #2
0
 /// <summary>
 /// DatabaseItemDescList.InsertItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, DatabaseDataDesc> MakeHandler(DatabaseTypeDesc outer)
 {
     return((i, set) =>
     {
         outer.WritableItemValuesList.Insert(i, set.ItemValueList);
         outer.WritableDataNameList.Insert(i, set.DataName);
     });
 }
예제 #3
0
 /// <summary>
 /// DatabaseItemDescList.SetItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, DatabaseItemDesc> MakeHandler(DatabaseTypeDesc outer)
 {
     return((i, set) =>
     {
         outer.WritableItemSettingList[i] = set.ToDBItemSetting();
         outer.WritableItemValuesList.SetField(i, set.ItemType.DBItemDefaultValue);
     });
 }
예제 #4
0
 /// <summary>
 /// DatabaseItemDescList.ClearItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>ClearItemイベント</returns>
 private static Action MakeHandler(DatabaseTypeDesc outer)
 {
     return(() =>
     {
         outer.ItemDescList.Clear();
         outer.WritableItemSettingList.Clear();
     });
 }
예제 #5
0
 /// <summary>
 /// DatabaseItemDescList.RemoveItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>RemoveItemイベント</returns>
 private static Action <int> MakeHandler(DatabaseTypeDesc outer)
 {
     return(i =>
     {
         outer.WritableItemSettingList.RemoveAt(i);
         outer.WritableItemValuesList.RemoveFieldAt(i);
     });
 }
예제 #6
0
 /// <summary>
 /// DatabaseItemDescList.ClearItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>ClearItemイベント</returns>
 private static Action MakeHandler(DatabaseTypeDesc outer)
 {
     return(() =>
     {
         outer.DataDescList.Clear();
         outer.WritableDataNameList.Clear();
     });
 }
예제 #7
0
 /// <summary>
 /// DatabaseItemDescList.RemoveItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>RemoveItemイベント</returns>
 private static Action <int> MakeHandler(DatabaseTypeDesc outer)
 {
     return(i =>
     {
         outer.DataDescList.RemoveAt(i);
         outer.WritableDataNameList.RemoveAt(i);
     });
 }
예제 #8
0
 /// <summary>
 /// DatabaseItemDataList.SetItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, Database.DataName> MakeHandler(DatabaseTypeDesc outer)
 {
     return((i, name) =>
     {
         var valuesList = outer.WritableItemValuesList.CreateValueListInstance();
         outer.DataDescList[i] = new DatabaseDataDesc(name, (DBItemValueList)valuesList);
         outer.WritableItemValuesList[i] = valuesList;
     });
 }
예제 #9
0
 /// <summary>
 /// DatabaseItemDataList.SetItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, IFixedLengthDBItemValueList> MakeHandler(DatabaseTypeDesc outer)
 {
     return((i, values) =>
     {
         var name = (Database.DataName) "";
         outer.DataDescList[i] = new DatabaseDataDesc(name, (DBItemValueList)values);
         outer.WritableDataNameList[i] = name;
     });
 }
예제 #10
0
        /// <summary>
        /// DatabaseItemDataList.SetItemのイベントを生成する。
        /// </summary>
        /// <param name="outer">連係外部クラスインスタンス</param>
        /// <returns>InsertItemイベント</returns>
        private static Action <int, DatabaseDataDesc> MakeHandler(DatabaseTypeDesc outer)
        {
            return((i, set) =>
            {
                // Outerを解除したItemValueListを渡す、かつ元のItemValueListのOuterは解除しない
                outer.WritableItemValuesList[i] = new DBItemValueList(set.ItemValueList);

                outer.WritableDataNameList[i] = set.DataName;
            });
        }
예제 #11
0
 /// <summary>
 /// DatabaseItemDescList.SetItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, DBItemSetting> MakeHandler(
     DatabaseTypeDesc outer)
 {
     return((i, setting) =>
     {
         var set = new DatabaseItemDesc
         {
             ItemName = setting.ItemName,
             SpecialSettingDesc = setting.SpecialSettingDesc,
             ItemType = setting.ItemType
         };
         outer.ItemDescList[i] = set;
         outer.WritableItemValuesList.SetField(i, set.ItemType.DBItemDefaultValue);
     });
 }
예제 #12
0
 /// <summary>
 /// DatabaseItemDescList.InsertItemのイベントを生成する。
 /// </summary>
 /// <param name="outer">連係外部クラスインスタンス</param>
 /// <returns>InsertItemイベント</returns>
 private static Action <int, DBItemValue> MakeHandler(
     DatabaseTypeDesc outer)
 {
     return((i, value) =>
     {
         var set = new DatabaseItemDesc
         {
             ItemName = "",
             SpecialSettingDesc = new DBItemSpecialSettingDesc(),
             ItemType = value.Type
         };
         outer.ItemDescList.Insert(i, set);
         outer.WritableItemSettingList.Insert(i, set.ToDBItemSetting());
     });
 }
예제 #13
0
        public static void CreateForDBTypeSetATest()
        {
            DatabaseTypeDesc instance = null;

            var errorOccured = false;

            try
            {
                instance = DatabaseTypeDesc.Factory.CreateForDBTypeSet();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 初期データ数が一致すること
            Assert.AreEqual(instance.WritableItemValuesList.Count, 1);
            Assert.AreEqual(instance.WritableItemValuesList.Count, instance.DataDescList.Count);
            Assert.AreEqual(instance.WritableItemValuesList.Count, instance.DataNameList.Count);
            // 初期項目数が一致すること
            Assert.AreEqual(instance.WritableItemSettingList.Count, 0);
            Assert.AreEqual(instance.WritableItemSettingList.Count, instance.ItemDescList.Count);
            Assert.AreEqual(instance.WritableItemSettingList.Count, instance.WritableItemValuesList[0].Count);

            instance.WritableItemValuesList.AddNewValues();

            // データ追加後、データ数が一致すること
            Assert.AreEqual(instance.WritableItemValuesList.Count, 2);
            Assert.AreEqual(instance.WritableItemValuesList.Count, instance.DataDescList.Count);
            Assert.AreEqual(instance.WritableItemValuesList.Count, instance.DataNameList.Count);

            var itemSetting = new DBItemSetting
            {
                ItemName = "ItemName",
                ItemType = DBItemType.String,
            };

            instance.WritableItemSettingList.Add(itemSetting);

            // 項目追加後、項目数が一致すること
            Assert.AreEqual(instance.WritableItemSettingList.Count, 1);
            Assert.AreEqual(instance.WritableItemSettingList.Count, instance.DBItemSettingList.Count);
        }
예제 #14
0
        public static void SerializeTest()
        {
            var target = new DatabaseTypeDesc
            {
                TypeName = "TypeName",
            };
            var changedPropertyList = new List <string>();

            target.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var clone = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
예제 #15
0
        public static void ConstructorTest()
        {
            var errorOccured = false;

            try
            {
                var _ = new DatabaseTypeDesc();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);
        }
예제 #16
0
        public static void ItemDescListGetterTest()
        {
            const int dataLength  = 2;
            const int itemLength  = 3;
            var       typeSetting = CreateTypeSetting(dataLength, itemLength);
            var       dataSetting = CreateDataSetting(dataLength, itemLength);

            DatabaseItemDescList result = null;

            var instance            = new DatabaseTypeDesc(typeSetting, dataSetting);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var errorOccured = false;

            try
            {
                result = instance.ItemDescList;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 要素数が項目数と一致すること
            Assert.AreEqual(result.Count, itemLength);

            // 各要素が意図した値と一致すること
            for (var i = 0; i < itemLength; i++)
            {
                Assert.AreEqual(result[i].ItemName, MakeItemName(i));
                Assert.AreEqual(result[i].ItemType, MakeItemType());
            }

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
예제 #17
0
        public static void MemoTest(DatabaseMemo memo, bool isError)
        {
            var instance            = new DatabaseTypeDesc();
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var errorOccured = false;

            try
            {
                instance.Memo = memo;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (!errorOccured)
            {
                var setValue = instance.Memo;

                // セットした値と取得した値が一致すること
                Assert.IsTrue(setValue.Equals(memo));
            }

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 1);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(DatabaseTypeDesc.Memo)));
            }
        }
예제 #18
0
        public static void CreateForDBTypeSetBTest(bool isNullItemSettingList,
                                                   bool isError)
        {
            var itemSettingList = isNullItemSettingList
                ? null
                : new DBItemSettingList
            {
                new DBItemSetting()
            };
            DatabaseTypeDesc instance = null;

            var errorOccured = false;

            try
            {
                instance = DatabaseTypeDesc.Factory.CreateForDBTypeSet(itemSettingList);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (errorOccured)
            {
                return;
            }
            Assert.NotNull(itemSettingList);

            // 初期データ数が意図した値であること
            Assert.AreEqual(instance.DataDescList.Count, 1);
            // 初期項目数が一致すること
            Assert.AreEqual(instance.ItemDescList.Count, 1);
            Assert.AreEqual(instance.ItemDescList.Count, itemSettingList.Count);
        }
예제 #19
0
        public static void TypeIdGetterTest(DBDataSettingType type, bool isError)
        {
            var answer = (TypeId)4;

            var typeSetting         = new DBTypeSetting();
            var dataSetting         = new DBDataSetting(type, DBKind.User, answer);
            var instance            = new DatabaseTypeDesc(typeSetting, dataSetting);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            TypeId result       = 0;
            var    errorOccured = false;

            try
            {
                result = instance.TypeId;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (errorOccured)
            {
                return;
            }

            // 取得した結果が意図した値であること
            Assert.AreEqual(result, answer);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
예제 #20
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Constructor
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        public SetItemHandler(DatabaseTypeDesc outer)
            : base(MakeHandler(outer), HandlerTag, false, canChangeEnabled: false)
        {
        }