Пример #1
0
        public void GetPropertyName_Exception_LambdaExpressionIsNotMemberAccess()
        {
            var e = Assert.Throws <ArgumentException>(() => TestableNotifyPropertyChanged.GetPropertyName(o => 42));

            Assert.Equal("The argument must be a member access lambda expression.\r\nParameter name: propertyExpression", e.Message);
            Assert.Equal("propertyExpression", e.ParamName);
        }
Пример #2
0
        public void GetPropertyName_Exception_LambdaExpressionIsNull()
        {
            var e = Assert.Throws <ArgumentNullException>(() => TestableNotifyPropertyChanged.GetPropertyName(null));

            Assert.Equal("Value cannot be null.\r\nParameter name: propertyExpression", e.Message);
            Assert.Equal("propertyExpression", e.ParamName);
        }
Пример #3
0
        public void SetProperty_SetsProperty_Object()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();
            object value = new object();

            obj.SetProperty_MyObjectProperty(value, "MyObjectProperty");

            Assert.Equal(value, obj.MyObjectProperty);
        }
Пример #4
0
        public void SetProperty_Exception_LambdaExpression_IsNotMemberAccess()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            var e = Assert.Throws <ArgumentException>(() => obj.SetProperty_MySetProperty(10, () => 42));

            Assert.Equal("The argument must be a member access lambda expression.\r\nParameter name: propertyExpression", e.Message);
            Assert.Equal("propertyExpression", e.ParamName);
        }
Пример #5
0
        public void OnPropertyChanged_Exception_LambdaExpression_ExpressionIsNull()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            var e = Assert.Throws <ArgumentNullException>(() => obj.FirePropertyChangedWithLambda <int>(null));

            Assert.Equal("Value cannot be null.\r\nParameter name: propertyExpression", e.Message);
            Assert.Equal("propertyExpression", e.ParamName);
        }
Пример #6
0
        public void SetProperty_Exception_LambdaExpression_ExpressionIsNull()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            Expression <Func <int> > propertyExpression = null;
            var e = Assert.Throws <ArgumentNullException>(() => obj.SetProperty_MySetProperty(10, propertyExpression));

            Assert.Equal("Value cannot be null.\r\nParameter name: propertyExpression", e.Message);
            Assert.Equal("propertyExpression", e.ParamName);
        }
Пример #7
0
        public void SetProperty_SetsProperty_Struct()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged()
            {
                MySetProperty = 5
            };

            obj.SetProperty_MySetProperty(10, "MySetProperty");

            Assert.Equal(10, obj.MySetProperty);
        }
Пример #8
0
        public void SetProperty_ReturnsTrue_IfValueHasNotChanged()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged()
            {
                MySetProperty = 10
            };

            bool changed = obj.SetProperty_MySetProperty(10, "MySetProperty");

            Assert.Equal(false, changed);
        }
Пример #9
0
        public void OnPropertyChanged_FiresPropertyChangedEvent_LambdaExpression()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MyProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.FirePropertyChangedWithLambda(() => obj.MyProperty);

            Assert.Equal(1, propertyChangedCount);
        }
Пример #10
0
        public void OnPropertyChanged_FiresPropertyChangedEvent_PropertyChangedEventArgs()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MyProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.FirePropertyChangedWithEventArgs(new PropertyChangedEventArgs("MyProperty"));

            Assert.Equal(1, propertyChangedCount);
        }
Пример #11
0
        public void SetProperty_FiresPropertyChangedEvent_String()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MySetProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.SetProperty_MySetProperty(42, "MySetProperty");

            Assert.Equal(1, propertyChangedCount);
        }
Пример #12
0
        public void SetProperty_DoesNotFireEventIfNotChanged_Struct()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged()
            {
                MySetProperty = 10
            };

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MySetProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.MySetProperty = 10;

            Assert.Equal(0, propertyChangedCount);
        }
Пример #13
0
        public void SetProperty_FiresPropertyChangedEvent_Void_Object_ToNull()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged()
            {
                MyObjectProperty = new object()
            };

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MyObjectProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.MyObjectProperty = null;

            Assert.Equal(1, propertyChangedCount);
        }
Пример #14
0
        public void SetProperty_DoesNotFireEventIfNotChanged_ObjectNull()
        {
            object value = new object();
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged()
            {
                MyObjectProperty = null
            };

            int propertyChangedCount = 0;

            obj.PropertyChanged += (sender, e) =>
            {
                Assert.Equal(obj, sender);
                Assert.Equal("MyObjectProperty", e.PropertyName);
                propertyChangedCount++;
            };

            obj.MyObjectProperty = null;

            Assert.Equal(0, propertyChangedCount);
        }
Пример #15
0
        public void OnPropertyChanged_IgnoresIfNoEventHandlerAttached()
        {
            TestableNotifyPropertyChanged obj = new TestableNotifyPropertyChanged();

            obj.FirePropertyChangedWithEventArgs(new PropertyChangedEventArgs("MyProperty"));
        }
Пример #16
0
        public void GetPropertyName_ReturnsNameOfProperty()
        {
            string propertyName = TestableNotifyPropertyChanged.GetPropertyName(o => o.MyProperty);

            Assert.Equal("MyProperty", propertyName);
        }