コード例 #1
0
        public void DynamicListValue_RaiseEventTest()
        {
            int countAddEvent    = 0;
            int countChangeEvent = 0;
            int countOrderEvent  = 0;
            int countRemoveEvent = 0;
            int countClearEvent  = 0;
            int otherEventType   = 0;

            string        mainValue = "Main Test Subject";
            List <string> values    = new List <string> {
                "val1", "val2", "val3"
            };

            DynamicListValue obj = new DynamicListValue();

            obj.OnDynamicListValueChanged += (sender, e) =>
            {
                switch (e.EventType)
                {
                case DynamicDictionaryChangedType.AddedValue:
                    countAddEvent++;
                    break;

                case DynamicDictionaryChangedType.ChangedValue:
                    countChangeEvent++;
                    break;

                case DynamicDictionaryChangedType.OrderValue:
                    countOrderEvent++;
                    break;

                case DynamicDictionaryChangedType.RemovedValue:
                    countRemoveEvent++;
                    break;

                case DynamicDictionaryChangedType.Clear:
                    countClearEvent++;
                    break;

                default:
                    otherEventType++;
                    break;
                }
            };

            obj.Value = mainValue;
            Assert.AreEqual(1, countAddEvent);

            obj.AddRange(values);
            Assert.AreEqual(4, countAddEvent);

            obj.Add(mainValue);
            Assert.AreEqual(5, countAddEvent);

            obj.SetMainValue(1);
            Assert.AreEqual(1, countOrderEvent);

            obj.SetMainValue(obj[2]);
            Assert.AreEqual(2, countOrderEvent);

            obj[0] = mainValue;
            obj[1] = mainValue;
            obj[2] = mainValue;
            Assert.AreEqual(2, countChangeEvent);

            obj.RemoveAt(0);
            Assert.AreEqual(1, countRemoveEvent);

            obj.RemoveRange(values);
            Assert.AreEqual(2, countRemoveEvent);

            obj.Clear();
            Assert.AreEqual(1, countClearEvent);

            Assert.AreEqual(0, otherEventType);
        }