Exemplo n.º 1
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);
        }