public void ShouldSetValueToSourceAdapterWhenSettingValue()
        {
            var converter     = new NullValueConverter();
            var sourceAdapter = new ValueAdapter();
            var adapter       = new ConvertingAdapter(sourceAdapter, converter);

            adapter.SetValue(5);

            Assert.AreEqual(5, sourceAdapter.Value);
        }
        public void ShouldGetConvertedValueWhenGettingValue()
        {
            var converter = new ValueConverter {
                ReturnedSource = 5
            };
            var sourceAdapter = new ValueAdapter();
            var adapter       = new ConvertingAdapter(sourceAdapter, converter);

            var actualValue = adapter.GetValue();

            Assert.AreEqual(5, actualValue);
        }
        public void ShouldGetValueFromSourceAdapterWhenGettingValue()
        {
            var converter     = new NullValueConverter();
            var sourceAdapter = new ValueAdapter {
                Value = 5
            };
            var adapter = new ConvertingAdapter(sourceAdapter, converter);

            object actualValue = adapter.GetValue();

            Assert.AreEqual(5, actualValue);
        }
        public void ShouldForwardSourceValueChangedCallbackCalls()
        {
            var  converter     = new ValueConverter();
            var  sourceAdapter = new ValueAdapter();
            var  adapter       = new ConvertingAdapter(sourceAdapter, converter);
            bool wasCalled     = false;

            adapter.ValueChangedCallback = _ => { wasCalled = true; };
            sourceAdapter.ValueChangedCallback(null);

            Assert.IsTrue(wasCalled);
        }
        public void ShouldSetConvertedValueWhenSettingValue()
        {
            var converter = new ValueConverter {
                ReturnedTarget = 5
            };
            var sourceAdapter = new ValueAdapter();
            var adapter       = new ConvertingAdapter(sourceAdapter, converter);

            adapter.SetValue(null);

            Assert.AreEqual(5, sourceAdapter.Value);
        }
        public void ShouldForwardConvertedValueFromSourceValueChangedCallback()
        {
            var converter = new ValueConverter {
                ReturnedSource = 5
            };
            var    sourceAdapter = new ValueAdapter();
            var    adapter       = new ConvertingAdapter(sourceAdapter, converter);
            object actualValue   = null;

            adapter.ValueChangedCallback = value => { actualValue = value; };
            sourceAdapter.ValueChangedCallback(1);

            Assert.AreEqual(5, actualValue);
        }