Пример #1
0
        public static void AccessorTest(int index, int caseValue, string str)
        {
            var initObj = new ChoiceCaseList {
                CaseValue = caseValue
            };
            var instance = new ChoiceCaseList {
                CaseValue = caseValue
            };
            var changedPropertyList = new List <string>();

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

            instance.Set(index, str);

            // 設定した文字列が取得できること
            var getStr = instance.Get(index);

            Assert.IsTrue(getStr.Equals(str));

            // 設定していない箇所が変化していないこと
            for (var i = 0; i < caseValue; i++)
            {
                if (i != index)
                {
                    Assert.IsTrue(instance.Get(i).Equals(initObj.Get(i)));
                }
            }
        }
Пример #2
0
        public static void SetTest(int index, int caseValue, bool isError)
        {
            var errorOccured = false;
            var instance     = new ChoiceCaseList {
                CaseValue = caseValue
            };
            var changedPropertyList = new List <string>();

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

            try
            {
                instance.Set(index, "");
            }
            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(ListConstant.IndexerName));
            }
        }