Esempio n. 1
0
        public static void DatabaseDbTypeIdGetterTest()
        {
            var instance            = new DBItemSettingDescManual();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

            // エラーが発生すること
            Assert.IsTrue(errorOccured);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Esempio n. 2
0
        public static void ConstructorTestB(int initItemLength)
        {
            DBItemSettingDescManual instance = null;

            var initList = MakeInitList(initItemLength);

            var errorOccured = false;

            try
            {
                instance = new DBItemSettingDescManual(initList);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 選択肢が意図した数であること
            var answerResultLength = initItemLength != -1
                ? initItemLength
                : 0;

            Assert.AreEqual(instance.GetAllSpecialCase().Count, answerResultLength);
        }
Esempio n. 3
0
        public static void RemoveSpecialCaseAtTest()
        {
            var instance            = new DBItemSettingDescManual();
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };
            var changedArgCaseList = new List <string>();

            instance.ArgCaseList.PropertyChanged += (sender, args) => { changedArgCaseList.Add(args.PropertyName); };
            var changedArgCaseCollection = new List <NotifyCollectionChangedEventArgs>();

            instance.ArgCaseList.CollectionChanged += (sender, args) => { changedArgCaseCollection.Add(args); };

            var errorOccured = false;

            try
            {
                instance.RemoveSpecialCaseAt(0);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生すること
            Assert.IsTrue(errorOccured);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 0);
            Assert.AreEqual(changedArgCaseCollection.Count, 0);
        }
Esempio n. 4
0
        public static void Equals(string settingDescCode, bool answer)
        {
            var instance            = new DBItemSettingDescNormal();
            var changedPropertyList = new List <string>();

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

            IDBItemSettingDesc desc = null;

            switch (settingDescCode)
            {
            case nameof(DBItemSettingDescLoadFile):
                desc = new DBItemSettingDescLoadFile();
                break;

            case nameof(DBItemSettingDescDatabase):
                desc = new DBItemSettingDescDatabase();
                break;

            case nameof(DBItemSettingDescManual):
                desc = new DBItemSettingDescManual();
                break;

            case null:
                break;

            default:
                desc = new DBItemSettingDescNormal();
                break;
            }

            bool result = false;

            var errorOccured = false;

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

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

            // 結果が意図した値と一致すること
            Assert.AreEqual(result, answer);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Esempio n. 5
0
        public static void SettingTypeTest()
        {
            var instance            = new DBItemSettingDescManual();
            var changedPropertyList = new List <string>();

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

            // プロパティが意図した値と一致すること
            Assert.AreEqual(instance.SettingType, DBItemSpecialSettingType.Manual);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Esempio n. 6
0
        public static void GetAllSpecialCaseTest(int initItemLength)
        {
            var initList = MakeInitList(initItemLength);

            var instance            = new DBItemSettingDescManual(initList);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };
            var changedArgCaseList = new List <string>();

            instance.ArgCaseList.PropertyChanged += (sender, args) => { changedArgCaseList.Add(args.PropertyName); };
            var changedArgCaseCollection = new List <NotifyCollectionChangedEventArgs>();

            instance.ArgCaseList.CollectionChanged += (sender, args) => { changedArgCaseCollection.Add(args); };

            IReadOnlyList <DatabaseValueCase> allCase = null;

            var errorOccured = false;

            try
            {
                allCase = instance.GetAllSpecialCase();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 取得した要素数が意図した値と一致すること
            var answerResultLength = initItemLength != -1
                ? initItemLength
                : 0;

            Assert.AreEqual(allCase.Count, answerResultLength);

            // 取得した要素がそれぞれ意図した値であること
            for (var i = 0; i < answerResultLength; i++)
            {
                var answerCaseValue = new DatabaseValueCase(i, i.ToString());
                Assert.AreEqual(allCase[i], answerCaseValue);
            }

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 0);
            Assert.AreEqual(changedArgCaseCollection.Count, 0);
        }
Esempio n. 7
0
        public static void SerializeTest()
        {
            var target = new DBItemSettingDescManual();

            target.AddSpecialCase(new DatabaseValueCase(2, "sentence"));
            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);
        }
Esempio n. 8
0
        public static void InsertRangeSpecialCaseTest()
        {
            var instance     = new DBItemSettingDescManual();
            var specialCases = new[]
            {
                new DatabaseValueCase(0, ""),
                new DatabaseValueCase(1, "a"),
                new DatabaseValueCase(2, "あいうえお"),
            };
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };
            var changedArgCaseList = new List <string>();

            instance.ArgCaseList.PropertyChanged += (sender, args) => { changedArgCaseList.Add(args.PropertyName); };
            var changedArgCaseCollection = new List <NotifyCollectionChangedEventArgs>();

            instance.ArgCaseList.CollectionChanged += (sender, args) => { changedArgCaseCollection.Add(args); };

            var errorOccured = false;

            try
            {
                instance.InsertRangeSpecialCase(0, specialCases);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 2);
            Assert.IsTrue(changedArgCaseList[0].Equals(nameof(instance.ArgCaseList.Count)));
            Assert.IsTrue(changedArgCaseList[1].Equals(ListConstant.IndexerName));
            Assert.AreEqual(changedArgCaseCollection.Count, 1);
            Assert.IsTrue(changedArgCaseCollection[0].Action == NotifyCollectionChangedAction.Add);
        }
Esempio n. 9
0
        public static void ConstructorTestA()
        {
            DBItemSettingDescManual instance = null;

            var errorOccured = false;

            try
            {
                instance = new DBItemSettingDescManual();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 選択肢が0であること
            Assert.AreEqual(instance.GetAllSpecialCase().Count, 0);
        }
Esempio n. 10
0
        public static void Equals(string settingDescCode, bool answer)
        {
            var instance = new DBItemSettingDescDatabase
            {
                DatabaseReferKind = DBReferType.Changeable,
                DatabaseDbTypeId  = 3,
                DatabaseUseAdditionalItemsFlag = false,
            };
            var changedPropertyList = new List <string>();

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

            IDBItemSettingDesc desc = null;

            switch (settingDescCode)
            {
            case nameof(DBItemSettingDescNormal):
                desc = new DBItemSettingDescNormal();
                break;

            case nameof(DBItemSettingDescLoadFile):
                desc = new DBItemSettingDescLoadFile();
                break;

            case nameof(DBItemSettingDescManual):
                desc = new DBItemSettingDescManual();
                break;

            case null:
                break;

            default:
                var settings = settingDescCode.Split('_');
                var dbDesc   = new DBItemSettingDescDatabase();
                switch (settings[1])
                {
                case nameof(DBReferType.Changeable):
                    dbDesc.DatabaseReferKind = DBReferType.Changeable;
                    break;

                case nameof(DBReferType.User):
                    dbDesc.DatabaseReferKind = DBReferType.User;
                    break;

                case nameof(DBReferType.System):
                    dbDesc.DatabaseReferKind = DBReferType.System;
                    break;

                default:
                    Assert.Fail();
                    break;
                }

                dbDesc.DatabaseDbTypeId = int.Parse(settings[2]);
                dbDesc.DatabaseUseAdditionalItemsFlag = bool.Parse(settings[3]);
                desc = dbDesc;
                break;
            }

            bool result = false;

            var errorOccured = false;

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

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

            // 結果が意図した値と一致すること
            Assert.AreEqual(result, answer);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Esempio n. 11
0
        public static void Equals(string settingDescCode, bool answer)
        {
            var instance = new DBItemSettingDescManual();

            instance.AddSpecialCase(new DatabaseValueCase(2, "sentence"));
            instance.AddSpecialCase(new DatabaseValueCase(4, "wolf"));
            var changedPropertyList = new List <string>();

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

            IDBItemSettingDesc desc = null;

            switch (settingDescCode)
            {
            case nameof(DBItemSettingDescNormal):
                desc = new DBItemSettingDescNormal();
                break;

            case nameof(DBItemSettingDescLoadFile):
                desc = new DBItemSettingDescLoadFile();
                break;

            case nameof(DBItemSettingDescDatabase):
                desc = new DBItemSettingDescDatabase();
                break;

            case null:
                break;

            default:
                var settings     = settingDescCode.Split('_');
                var maDesc       = new DBItemSettingDescManual();
                var argDescsCode = settings[1].Split(',');
                foreach (var argDescs in argDescsCode)
                {
                    var argDescSettings = argDescs.Split('-');
                    maDesc.AddSpecialCase(new DatabaseValueCase(int.Parse(argDescSettings[0]), argDescSettings[1]));
                }

                desc = maDesc;
                break;
            }

            bool result = false;

            var errorOccured = false;

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

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

            // 結果が意図した値と一致すること
            Assert.AreEqual(result, answer);

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