Ejemplo n.º 1
0
        private MvxSourceStepFactory SetupSourceStepFactory()
        {
            ClearAll();
            MvxBindingSingletonCache.Initialize();

            var autoValueConverters = new MvxAutoValueConverters();

            Ioc.RegisterSingleton <IMvxAutoValueConverters>(autoValueConverters);

            var sourcePropertyParser = new MvxSourcePropertyPathParser();

            Ioc.RegisterSingleton <IMvxSourcePropertyPathParser>(sourcePropertyParser);

            var realSourceBindingFactory = new MvxSourceBindingFactory();

            Ioc.RegisterSingleton <IMvxSourceBindingFactory>(realSourceBindingFactory);

            var sourceStepFactory = new MvxSourceStepFactory();

            sourceStepFactory.AddOrOverwrite(typeof(MvxPathSourceStepDescription), new MvxPathSourceStepFactory());
            sourceStepFactory.AddOrOverwrite(typeof(MvxLiteralSourceStepDescription), new MvxLiteralSourceStepFactory());
            sourceStepFactory.AddOrOverwrite(typeof(MvxCombinerSourceStepDescription), new MvxCombinerSourceStepFactory());
            Ioc.RegisterSingleton <IMvxSourceStepFactory>(sourceStepFactory);

            var propertySource = new MvxPropertySourceBindingFactoryExtension();

            realSourceBindingFactory.Extensions.Add(propertySource);

            return(sourceStepFactory);
        }
Ejemplo n.º 2
0
        private MvxFullBinding TestSetupCommon(IMvxValueConverter valueConverter, object converterParameter, object fallbackValue,
                                               Type targetType, out MockSourceBinding mockSource, out MockTargetBinding mockTarget)
        {
            ClearAll();
            MvxBindingSingletonCache.Initialize();

            var mockSourceBindingFactory = new Mock <IMvxSourceBindingFactory>();

            Ioc.RegisterSingleton(mockSourceBindingFactory.Object);

            var mockTargetBindingFactory = new Mock <IMvxTargetBindingFactory>();

            Ioc.RegisterSingleton(mockTargetBindingFactory.Object);

            var realSourceStepFactory = new MvxSourceStepFactory();

            realSourceStepFactory.AddOrOverwrite(typeof(MvxPathSourceStepDescription), new MvxPathSourceStepFactory());
            Ioc.RegisterSingleton <IMvxSourceStepFactory>(realSourceStepFactory);

            var sourceText         = "sourceText";
            var targetName         = "targetName";
            var source             = new { Value = 1 };
            var target             = new { Value = 2 };
            var bindingDescription = new MvxBindingDescription
            {
                Source = new MvxPathSourceStepDescription()
                {
                    Converter          = valueConverter,
                    ConverterParameter = converterParameter,
                    FallbackValue      = fallbackValue,
                    SourcePropertyPath = sourceText,
                },
                Mode       = MvxBindingMode.TwoWay,
                TargetName = targetName
            };

            mockSource = new MockSourceBinding();
            mockTarget = new MockTargetBinding()
            {
                TargetType = targetType
            };
            mockTarget.DefaultMode = MvxBindingMode.TwoWay;

            var localSource = mockSource;

            mockSourceBindingFactory
            .Setup(x => x.CreateBinding(It.IsAny <object>(), It.Is <string>(s => s == sourceText)))
            .Returns((object a, string b) => localSource);
            var localTarget = mockTarget;

            mockTargetBindingFactory
            .Setup(x => x.CreateBinding(It.IsAny <object>(), It.Is <string>(s => s == targetName)))
            .Returns((object a, string b) => localTarget);

            mockSource.TryGetValueResult = true;
            mockSource.TryGetValueValue  = "TryGetValueValue";

            var request = new MvxBindingRequest(source, target, bindingDescription);
            var toTest  = new MvxFullBinding(request);

            return(toTest);
        }
Ejemplo n.º 3
0
        private MvxFullBinding TestSetupCommon(MvxBindingMode mvxBindingMode, MvxBindingMode defaultMode,
                                               out MockSourceBinding mockSource, out MockTargetBinding mockTarget)
        {
            _fixture.ClearAll();
            _fixture.Ioc.RegisterSingleton <IMvxMainThreadDispatcher>(new InlineMockMainThreadDispatcher());

            var mockSourceBindingFactory = new Mock <IMvxSourceBindingFactory>();

            _fixture.Ioc.RegisterSingleton(mockSourceBindingFactory.Object);

            var mockTargetBindingFactory = new Mock <IMvxTargetBindingFactory>();

            _fixture.Ioc.RegisterSingleton(mockTargetBindingFactory.Object);

            var realSourceStepFactory = new MvxSourceStepFactory();

            realSourceStepFactory.AddOrOverwrite(typeof(MvxPathSourceStepDescription), new MvxPathSourceStepFactory());
            _fixture.Ioc.RegisterSingleton <IMvxSourceStepFactory>(realSourceStepFactory);

            var sourceText         = "sourceText";
            var targetName         = "targetName";
            var source             = new { Value = 1 };
            var target             = new { Value = 2 };
            var converterParameter = new { Value = 3 };
            var fallbackValue      = new { Value = 4 };
            var bindingDescription = new MvxBindingDescription
            {
                Source = new MvxPathSourceStepDescription
                {
                    Converter          = null,
                    ConverterParameter = converterParameter,
                    FallbackValue      = fallbackValue,
                    SourcePropertyPath = sourceText,
                },
                Mode       = mvxBindingMode,
                TargetName = targetName
            };

            mockSource = new MockSourceBinding();
            mockTarget = new MockTargetBinding {
                DefaultMode = defaultMode
            };

            var localSource = mockSource;

            mockSourceBindingFactory
            .Setup(x => x.CreateBinding(It.IsAny <object>(), It.Is <string>(s => s == sourceText)))
            .Returns((object a, string b) => localSource);
            var localTarget = mockTarget;

            mockTargetBindingFactory
            .Setup(x => x.CreateBinding(It.IsAny <object>(), It.Is <string>(s => s == targetName)))
            .Returns((object a, string b) => localTarget);

            mockSource.TryGetValueResult = true;
            mockSource.TryGetValueValue  = "TryGetValueValue";

            var request = new MvxBindingRequest(source, target, bindingDescription);
            var toTest  = new MvxFullBinding(request);

            return(toTest);
        }
Ejemplo n.º 4
0
        private void TestCommon(MvxBindingMode bindingMode, bool expectSourceBinding, bool expectTargetBinding)
        {
            ClearAll();
            MvxBindingSingletonCache.Initialize();
            Ioc.RegisterSingleton <IMvxMainThreadDispatcher>(new InlineMockMainThreadDispatcher());

            var mockSourceBindingFactory = new Mock <IMvxSourceBindingFactory>();

            Ioc.RegisterSingleton(mockSourceBindingFactory.Object);

            var mockTargetBindingFactory = new Mock <IMvxTargetBindingFactory>();

            Ioc.RegisterSingleton(mockTargetBindingFactory.Object);

            var realSourceStepFactory = new MvxSourceStepFactory();

            realSourceStepFactory.AddOrOverwrite(typeof(MvxPathSourceStepDescription), new MvxPathSourceStepFactory());
            Ioc.RegisterSingleton <IMvxSourceStepFactory>(realSourceStepFactory);

            var sourceText         = "sourceText";
            var targetName         = "targetName";
            var source             = new { Value = 1 };
            var target             = new { Value = 2 };
            var converterParameter = new { Value = 3 };
            var fallbackValue      = new { Value = 4 };
            var converter          = new Mock <IMvxValueConverter>();
            var bindingDescription = new MvxBindingDescription
            {
                Source = new MvxPathSourceStepDescription()
                {
                    Converter          = converter.Object,
                    ConverterParameter = converterParameter,
                    FallbackValue      = fallbackValue,
                    SourcePropertyPath = sourceText,
                },
                Mode       = bindingMode,
                TargetName = targetName
            };

            var mockSourceBinding = new Mock <IMvxSourceBinding>();
            var mockTargetBinding = new Mock <IMvxTargetBinding>();

            mockSourceBindingFactory
            .Setup(x => x.CreateBinding(It.Is <object>(s => s == source), It.Is <string>(s => s == sourceText)))
            .Returns((object a, string b) => mockSourceBinding.Object);
            mockTargetBindingFactory
            .Setup(x => x.CreateBinding(It.Is <object>(s => s == target), It.Is <string>(s => s == targetName)))
            .Returns((object a, string b) => mockTargetBinding.Object);

            var request = new MvxBindingRequest(source, target, bindingDescription);

            var toTest = new MvxFullBinding(request);

            //var sourceBindingTimes = expectSourceBinding ? Times.Once() : Times.Never();
            //mockSourceBinding.Verify(x => x.Changed += It.IsAny<EventHandler<MvxSourcePropertyBindingEventArgs>>(), sourceBindingTimes);
            mockSourceBindingFactory
            .Verify(x => x.CreateBinding(It.Is <object>(s => s == source), It.Is <string>(s => s == sourceText)),
                    Times.Once());

            //var targetBindingTimes = expectSourceBinding ? Times.Once() : Times.Never();
            //mockTargetBinding.Verify(x => x.ValueChanged += It.IsAny<EventHandler<MvxTargetChangedEventArgs>>(), targetBindingTimes);
            mockTargetBindingFactory
            .Verify(x => x.CreateBinding(It.Is <object>(s => s == target), It.Is <string>(s => s == targetName)),
                    Times.Once());
        }