Exemple #1
0
        public static void GetAllSpecialCaseTest(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 <DatabaseValueCase> allCase = null;

            var errorOccured = false;

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

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

            // 取得した要素数が意図した値と一致すること
            Assert.AreEqual(allCase.Count, resultLength);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
            Assert.AreEqual(changedArgCaseList.Count, 0);
            Assert.AreEqual(changedArgCaseCollection.Count, 0);
        }
Exemple #2
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 #3
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);
            }
        }