コード例 #1
0
        public void LinkOneWayToTarget_SetSourceProperty_TargetPropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.SourceText = "Test";

            Assert.Equal("Test", targetTestData.TargetText);
        }
コード例 #2
0
        public void LinkOneWayToTarget_InitialSourcePropertySetBeforeLinking_TargetPropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData {
                SourceText = "Test"
            };
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            Assert.Equal("Test", targetTestData.TargetText);
        }
コード例 #3
0
        public void LinkOneWayFromTarget_SetTargetProperty_SourcePropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.SourceName = "Test";

            Assert.Equal("Test", targetTestData.FromSourceName);
        }
コード例 #4
0
        public void LinkOneWayFromTarget_InitialSourcePropertySetBeforeLinking_TargetPropertyIsNotUpdated()
        {
            var sourceTestData = new SourceTestData {
                SourceName = "Test"
            };
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            Assert.Null(targetTestData.TargetName);
        }
コード例 #5
0
        public void LinkOneWayToTarget_InitialTargetPropertySetBeforeLinking_SourcePropertyIsNotUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData {
                TargetText = "Test"
            };

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            Assert.Null(sourceTestData.SourceText);
        }
コード例 #6
0
        public void LinkOneWayFromTarget_InitialTargetPropertySetBeforeLinking_SourcePropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData {
                TargetName = "Hello"
            };

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            Assert.Equal("Hello", sourceTestData.SourceName);
        }
コード例 #7
0
        public void LinkTwoWay_SetPropertyWithConverterOnNotConvertibleValue_LinkedPropertyIsNotUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.SecondIntValue = 1;
            targetTestData.DoubleValue    = 1234;

            Assert.Equal(1, sourceTestData.SecondIntValue);
        }
コード例 #8
0
        public void LinkTwoWay_SetPropertyWithConverterToNotConvertibleValue_LinkedPropertyIsNotUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.IntValue    = 1234;
            targetTestData.StringValue = "Hello";

            Assert.Equal(1234, sourceTestData.IntValue);
        }
コード例 #9
0
        public void Dispose_SetSourcePropertyAfterDispose_TargetPropertyIsNotUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var link = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            link.Dispose();

            sourceTestData.SourceText = "Test";

            Assert.Null(targetTestData.TargetText);
        }
コード例 #10
0
        public void NullableTargetConverter_SetNullableProperty_PropertyIsSet()
        {
            var sourceTestData = new NewSourceTestData();
            var targetTestData = new NewTargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.IsVisible = true;

            Assert.True(targetTestData.IsVisible);

            sourceTestData.IsVisible = false;

            Assert.False(targetTestData.IsVisible);
        }
コード例 #11
0
        public void LinkTwoWay_SetPropertyWithConverter_LinkedPropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new TargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.IntValue = 5678;

            Assert.Equal("5678", targetTestData.StringValue);

            targetTestData.StringValue = "1234";

            Assert.Equal(1234, sourceTestData.IntValue);
        }
コード例 #12
0
        public void NullableSourceConverter_SetProperty_NullablePropertyIsSet()
        {
            var sourceTestData = new NewSourceTestData();
            var targetTestData = new NewTargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            targetTestData.IsChecked = true;

            Assert.True(sourceTestData.IsChecked);

            targetTestData.IsChecked = false;

            Assert.False(sourceTestData.IsChecked);
        }
コード例 #13
0
        public void LinkOneWayToTarget_InitialPropertiesSetBeforeLinking_TargetPropertyIsUpdated()
        {
            var sourceTestData = new NewSourceTestData {
                InitialText = "Test"
            };
            var targetTestData = new NewTargetTestData {
                InitialText = "1234"
            };

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            Assert.Equal("1234", sourceTestData.InitialText);

            sourceTestData.InitialText = "abc";
            Assert.Equal("abc", targetTestData.InitialText);
        }
コード例 #14
0
        public void LinkTwoWay_SetPropertyOnInheritedClass_LinkedPropertyIsUpdated()
        {
            var sourceTestData = new SourceTestData();
            var targetTestData = new NewTargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.TwoWayProperty = "Test";

            Assert.Equal("Test", targetTestData.TwoWayProperty);
            Assert.Equal("Test", sourceTestData.TwoWayProperty);

            targetTestData.TwoWayProperty = "1234";

            Assert.Equal("1234", sourceTestData.TwoWayProperty);
            Assert.Equal("1234", targetTestData.TwoWayProperty);
        }
コード例 #15
0
        public void NullableSourceConverter_SetNullablePropertyWithDefault_PropertyIsSet()
        {
            var sourceTestData = new NewSourceTestData();
            var targetTestData = new NewTargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.BoolWithDefault = true;

            Assert.True(targetTestData.BoolWithDefault);

            sourceTestData.BoolWithDefault = false;

            Assert.False(targetTestData.BoolWithDefault);

            sourceTestData.BoolWithDefault = null;

            Assert.True(targetTestData.BoolWithDefault);
        }
コード例 #16
0
        public void LinkTwoWay_SetPropertyOnBothInheritedClasses_LinkedPropertyIsUpdated()
        {
            var sourceTestData = new NewSourceTestData();
            var targetTestData = new NewTargetTestData();

            var _ = new ObjectLinkBuilder(sourceTestData, targetTestData).Build();

            sourceTestData.TwoWayProperty = "Test";
            sourceTestData.SourceName     = "HelloWorld";

            Assert.Equal("Test", targetTestData.TwoWayProperty);
            Assert.Equal("Test", sourceTestData.TwoWayProperty);
            Assert.Equal("HelloWorld", targetTestData.FromSourceNameTwoWay);
            Assert.Equal("HelloWorld", sourceTestData.SourceName);

            targetTestData.TwoWayProperty       = "1234";
            targetTestData.FromSourceNameTwoWay = "abcd";

            Assert.Equal("1234", sourceTestData.TwoWayProperty);
            Assert.Equal("1234", targetTestData.TwoWayProperty);
            Assert.Equal("abcd", targetTestData.FromSourceNameTwoWay);
            Assert.Equal("abcd", sourceTestData.SourceName);
        }
コード例 #17
0
 public ViewModelBase(TModel model)
 {
     Model     = model;
     ModelLink = new ObjectLinkBuilder(model, this).Build();
 }
コード例 #18
0
 protected RibbonCommandControlViewModel(ActionViewModel action)
 {
     Action     = action;
     ActionLink = new ObjectLinkBuilder(action, this).Build();
 }