Catel.Test.Extensions.DynamicObjects.DynamicObservableObjectFacts.TheGetValueAndSetValueProperties.RaisesAdvancedPropertyChangedEvents_WhenSetViaDynamicProperty C# (CSharp) Method

RaisesAdvancedPropertyChangedEvents_WhenSetViaDynamicProperty() private method

            public void RaisesAdvancedPropertyChangedEvents_WhenSetViaDynamicProperty()
            {
                var counter = 0;
                var propertyName = default(string);
                var oldValue = default(object);
                var newValue = default(object);
                var observableObject = new CustomObject();
                dynamic dynamicObservableObject = observableObject;

                // Setting value via dynamic property.
                dynamicObservableObject.Property1 = "oldtest";
                observableObject.PropertyChanged += (sender, e) =>
                {
                    AdvancedPropertyChangedEventArgs args = e as AdvancedPropertyChangedEventArgs;
                    if (args != null)
                    {
                        counter++;
                        propertyName = args.PropertyName;
                        oldValue = args.OldValue;
                        newValue = args.NewValue;
                    }
                };
                dynamicObservableObject.Property1 = "newtest";

                Assert.AreEqual(1, counter);
                Assert.AreEqual(propertyName, "Property1");
                Assert.AreEqual(oldValue, "oldtest");
                Assert.AreEqual(newValue, "newtest");
            }