Exemple #1
0
        public static void UpdateOmissionFolderNameFlagTest()
        {
            var instance            = new DBItemSettingDescDatabase();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemple #2
0
        public static void CanSetItemTypeTest(DBItemType type, bool isError, bool answer)
        {
            var instance            = new DBItemSettingDescDatabase();
            var changedPropertyList = new List <string>();

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

            bool result = false;

            var errorOccured = false;

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

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

            if (errorOccured)
            {
                return;
            }

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

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

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

            var errorOccured = false;

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemple #4
0
        public static void ClearSpecialCaseTest()
        {
            var instance            = new DBItemSettingDescDatabase();
            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.ClearSpecialCase();
            }
            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);
        }
Exemple #5
0
        public static void DatabaseReferKindSetterTest(bool isSetNull, bool isError)
        {
            var setValue = isSetNull ? null : DBReferType.User;

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

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

            var errorOccured = false;

            try
            {
                instance.DatabaseReferKind = setValue;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 1);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(instance.DatabaseReferKind)));
            }
        }
Exemple #6
0
        public static void DatabaseUseAdditionalItemsFlagSetterTest()
        {
            var instance            = new DBItemSettingDescDatabase();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

            try
            {
                instance.DatabaseUseAdditionalItemsFlag = false;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 1);
            Assert.IsTrue(changedPropertyList[0].Equals(nameof(instance.DatabaseUseAdditionalItemsFlag)));
        }
Exemple #7
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);
        }
Exemple #8
0
        public static void SettingTypeTest()
        {
            var instance            = new DBItemSettingDescDatabase();
            var changedPropertyList = new List <string>();

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemple #9
0
        public static void GetAllSpecialCaseNumberTest(DBReferType referType,
                                                       TypeId typeId, bool useAdditionalItems)
        {
            var instance = new DBItemSettingDescDatabase
            {
                DatabaseReferKind = referType,
                DatabaseDbTypeId  = typeId,
                DatabaseUseAdditionalItemsFlag = useAdditionalItems
            };
            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); };

            List <DatabaseValueCaseNumber> result = null;

            var errorOccured = false;

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

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

            // 取得した要素がそれぞれ意図した値であること
            Assert.AreEqual(result.Count, 3);
            Assert.AreEqual((int)result[0], referType.Code);
            Assert.AreEqual((int)result[1], (int)typeId);
            var flagValue = useAdditionalItems ? 1 : 0;

            Assert.AreEqual((int)result[2], flagValue);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 0);
            Assert.AreEqual(changedArgCaseCollection.Count, 0);
        }
Exemple #10
0
        public static void SerializeTest()
        {
            var target = new DBItemSettingDescDatabase
            {
                DatabaseDbTypeId = 32,
            };
            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);
        }
Exemple #11
0
        public static void GetAllSpecialCaseDescriptionTest(bool useAdditionalItems,
                                                            int resultLength)
        {
            var instance = new DBItemSettingDescDatabase
            {
                DatabaseUseAdditionalItemsFlag = useAdditionalItems
            };
            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); };

            List <DatabaseValueCaseDescription> result = null;

            var errorOccured = false;

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

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

            // 取得した要素数が意図した値であること
            Assert.AreEqual(result.Count, resultLength);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 0);
            Assert.AreEqual(changedArgCaseCollection.Count, 0);
        }
Exemple #12
0
        public static void ConstructorTest()
        {
            DBItemSettingDescDatabase instance = null;

            var errorOccured = false;

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

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

            // 選択肢が0であること
            Assert.AreEqual(instance.GetAllSpecialCase().Count, 0);
        }
Exemple #13
0
        public static void UpdateDatabaseSpecialCaseTest(bool useAdditionalItemFlag,
                                                         int caseNumber, string description, bool isError)
        {
            var instance = new DBItemSettingDescDatabase
            {
                DatabaseUseAdditionalItemsFlag = useAdditionalItemFlag
            };
            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.UpdateDatabaseSpecialCase(caseNumber, description);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること(追加項目仕様フラグによらないこと)
            Assert.AreEqual(errorOccured, isError);

            if (!errorOccured)
            {
                foreach (var specialCase in instance.GetAllSpecialCase())
                {
                    if (specialCase.CaseNumber == caseNumber)
                    {
                        // 指定した引数の文字列が正しく更新されていること
                        Assert.AreEqual((string)specialCase.Description, description);
                    }
                    else
                    {
                        // 指定していない引数の文字列が変化していないこと
                        Assert.AreEqual((string)specialCase.Description, "");
                    }
                }
            }

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 0);
            if (!errorOccured)
            {
                Assert.AreEqual(changedArgCaseList.Count, 1);
                Assert.IsTrue(changedArgCaseList[0].Equals(ListConstant.IndexerName));
                Assert.AreEqual(changedArgCaseCollection.Count, 1);
                Assert.IsTrue(changedArgCaseCollection[0].Action == NotifyCollectionChangedAction.Replace);
                Assert.IsTrue(changedArgCaseCollection[0].OldStartingIndex == caseNumber * -1 - 1);
                Assert.IsTrue(changedArgCaseCollection[0].NewStartingIndex == caseNumber * -1 - 1);
            }
            else
            {
                Assert.AreEqual(changedArgCaseList.Count, 0);
                Assert.AreEqual(changedArgCaseCollection.Count, 0);
            }
        }
Exemple #14
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);
        }
Exemple #15
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);
        }