Ejemplo n.º 1
0
        public void collection_changed_is_propagated_with_null_property_name()
        {
            var obj = new TestClass()
            {
                X = 15
            };

            var childEventStream = new Subject <BoundCollectionChangedEventArgs>();
            var mockValueBinding = new Mock <IValueBinding>();
            var mockBinding      = new Mock <IBinding>();

            mockValueBinding
            .Setup(m => m.CollectionChangedEventStream)
            .Returns(childEventStream);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var events = new List <BoundCollectionChangedEventArgs>();

            testObject.CollectionChangedEventStream.Subscribe(ev => events.Add(ev));

            var fakeCollectionChangedEventArgs = new NotifyCollectionChangedEventArgs();

            childEventStream.OnNext(new BoundCollectionChangedEventArgs(null, fakeCollectionChangedEventArgs, null, null));

            Assert.Equal(1, events.Count);
            Assert.Equal("X", events[0].PropertyName);
            Assert.Equal(fakeCollectionChangedEventArgs, events[0].SourceEventArgs);
        }
Ejemplo n.º 2
0
        public void property_changed_is_propagated()
        {
            var obj = new TestClass()
            {
                X = 15
            };

            var childEventStream = new Subject <BoundPropertyChangedEventArgs>();
            var mockValueBinding = new Mock <IValueBinding>();
            var mockBinding      = new Mock <IBinding>();

            mockValueBinding
            .Setup(m => m.PropertyChangedEventStream)
            .Returns(childEventStream);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var events = new List <BoundPropertyChangedEventArgs>();

            testObject.PropertyChangedEventStream.Subscribe(ev => events.Add(ev));

            childEventStream.OnNext(new BoundPropertyChangedEventArgs("Nested", mockBinding.Object));

            Assert.Equal(1, events.Count);
            Assert.Equal("X.Nested", events[0].PropertyName);
            Assert.Equal(mockBinding.Object, events[0].Binding);
        }
        public void collection_changed_is_propagated_with_null_property_name()
        {
            var obj = new TestClass()
            {
                X = 15
            };

            var childEventStream = new Subject<BoundCollectionChangedEventArgs>();
            var mockValueBinding = new Mock<IValueBinding>();
            var mockBinding = new Mock<IBinding>();

            mockValueBinding
                .Setup(m => m.CollectionChangedEventStream)
                .Returns(childEventStream);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var events = new List<BoundCollectionChangedEventArgs>();

            testObject.CollectionChangedEventStream.Subscribe(ev => events.Add(ev));

            var fakeCollectionChangedEventArgs = new NotifyCollectionChangedEventArgs();
            childEventStream.OnNext(new BoundCollectionChangedEventArgs(null, fakeCollectionChangedEventArgs, null, null));

            Assert.Equal(1, events.Count);
            Assert.Equal("X", events[0].PropertyName);
            Assert.Equal(fakeCollectionChangedEventArgs, events[0].SourceEventArgs);
        }
        public void binding_type()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(typeof(int), testObject.BindingType);
        }
Ejemplo n.º 5
0
        public void binding_type()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(typeof(int), testObject.BindingType);
        }
Ejemplo n.º 6
0
        public void find_nested_binding_with_empty_string()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Throws <ArgumentException>(() =>
                                              testObject.FindNestedBinding(string.Empty)
                                              );
        }
Ejemplo n.º 7
0
        public void get_value()
        {
            var obj = new TestClass()
            {
                X = 13
            };
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(13, testObject.GetValue());
        }
Ejemplo n.º 8
0
        public void disconnect_calls_disconnect_on_value_binding()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            mockValueBinding.Verify(m => m.Connect(obj.X), Times.Never());

            testObject.Disconnect();

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());
        }
Ejemplo n.º 9
0
        public void find_nested_binding()
        {
            var obj = new TestClass();
            var mockNestedBinding = new Mock <IBinding>();
            var mockValueBinding  = new Mock <IValueBinding>();

            mockValueBinding
            .Setup(m => m.FindNestedBinding("Other"))
            .Returns(mockNestedBinding.Object);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(mockNestedBinding.Object, testObject.FindNestedBinding("Other"));

            mockValueBinding.Verify(m => m.FindNestedBinding("Other"));
        }
Ejemplo n.º 10
0
        public void set_value()
        {
            var obj = new TestClass()
            {
                X = 0
            };
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(0, obj.X);

            testObject.SetValue(32);

            Assert.Equal(32, obj.X);
        }
Ejemplo n.º 11
0
        public void reconnect_calls_disconnect_on_binding_and_connect_with_new_object()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var otherObj = new TestClass()
            {
                X = 10
            };

            testObject.Connect(otherObj);

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());

            mockValueBinding.Verify(m => m.Connect(otherObj.X), Times.Once());
        }
Ejemplo n.º 12
0
        public void connect_does_not_call_disconnect_when_not_connected()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock <IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            testObject.Disconnect();

            var otherObj = new TestClass()
            {
                X = 10
            };

            testObject.Connect(otherObj);

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());

            mockValueBinding.Verify(m => m.Connect(otherObj.X), Times.Once());
        }
        public void set_value()
        {
            var obj = new TestClass()
            {
                X = 0
            };
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(0, obj.X);

            testObject.SetValue(32);

            Assert.Equal(32, obj.X);
        }
        public void reconnect_calls_disconnect_on_binding_and_connect_with_new_object()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var otherObj = new TestClass()
            {
                X = 10
            };

            testObject.Connect(otherObj);

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());

            mockValueBinding.Verify(m => m.Connect(otherObj.X), Times.Once());
        }
        public void property_changing_is_propagated()
        {
            var obj = new TestClass()
            {
                X = 15
            };

            var childEventStream = new Subject<BoundPropertyChangingEventArgs>();
            var mockValueBinding = new Mock<IValueBinding>();
            var mockBinding = new Mock<IBinding>();

            mockValueBinding
                .Setup(m => m.PropertyChangingEventStream)
                .Returns(childEventStream);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            var events = new List<BoundPropertyChangingEventArgs>();

            testObject.PropertyChangingEventStream.Subscribe(ev => events.Add(ev));

            childEventStream.OnNext(new BoundPropertyChangingEventArgs("Nested", mockBinding.Object));

            Assert.Equal(1, events.Count);
            Assert.Equal("X.Nested", events[0].PropertyName);
            Assert.Equal(mockBinding.Object, events[0].Binding);
        }
        public void get_value()
        {
            var obj = new TestClass()
            {
                X = 13
            };
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(13, testObject.GetValue());
        }
        public void find_nested_binding_with_empty_string()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Throws<ArgumentException>(() =>
                testObject.FindNestedBinding(string.Empty)
            );
        }
        public void find_nested_binding()
        {
            var obj = new TestClass();
            var mockNestedBinding = new Mock<IBinding>();
            var mockValueBinding = new Mock<IValueBinding>();

            mockValueBinding
                .Setup(m => m.FindNestedBinding("Other"))
                .Returns(mockNestedBinding.Object);

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            Assert.Equal(mockNestedBinding.Object, testObject.FindNestedBinding("Other"));

            mockValueBinding.Verify(m => m.FindNestedBinding("Other"));
        }
        public void connect_does_not_call_disconnect_when_not_connected()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            testObject.Disconnect();

            var otherObj = new TestClass()
            {
                X = 10
            };

            testObject.Connect(otherObj);

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());

            mockValueBinding.Verify(m => m.Connect(otherObj.X), Times.Once());
        }
        public void disconnect_calls_disconnect_on_value_binding()
        {
            var obj = new TestClass();
            var mockValueBinding = new Mock<IValueBinding>();

            var testObject = new ObjectPropertyBinding("X", typeof(int), obj, mockValueBinding.Object);

            mockValueBinding.Verify(m => m.Connect(obj.X), Times.Never());

            testObject.Disconnect();

            mockValueBinding.Verify(m => m.Disconnect(), Times.Once());
        }