public Func <MySlimBlock, bool> FilterByMode(ObservationMode mode)
        {
            if (mode == ObservationMode.NEW_BLOCKS)
            {
                return(FilterOnlyNew);
            }

            return(block => true);
        }
Beispiel #2
0
        public void WhenInitialazingVmShouldUseObservationModeFromDataContextModeBoth()
        {
            const ObservationMode mode            = ObservationMode.Both;
            ViewModelBase         parentViewModel = GetViewModelBase();

            var viewModel = parentViewModel.GetViewModel <TestViewModelBase>(observationMode: mode);

            parentViewModel.LocalEventAggregator.GetObservers().Contains(viewModel).ShouldBeTrue();
            viewModel.LocalEventAggregator.GetObservers().Contains(parentViewModel).ShouldBeTrue();
        }
        public void GetViewModelMethodShouldUseCorrectParameters()
        {
            const IocContainerCreationMode iocContainerCreationMode = IocContainerCreationMode.ParentViewModel;
            const ObservationMode          listenType = ObservationMode.Both;
            var  constantValue = DataConstantValue.Create(new DataConstant <string>("test"), "test");
            bool isInvoked     = false;

            var providerMock = new ViewModelProviderMock();
            var func         = IocContainer.GetFunc;

            IocContainer.GetFunc = (type, s, arg3) =>
            {
                if (type == typeof(IViewModelProvider))
                {
                    return(providerMock);
                }
                return(func(type, s, arg3));
            };
            ViewModelBase         viewModel = GetViewModelBase();
            Action <IDataContext> check     = context =>
            {
                context.GetData((DataConstant <string>)constantValue.DataConstant).ShouldEqual(constantValue.Value);
                context.GetDataTest(InitializationConstants.ObservationMode).ShouldEqual(listenType);
                context.GetDataTest(InitializationConstants.IocContainerCreationMode).ShouldEqual(iocContainerCreationMode);
                isInvoked = true;
            };

            providerMock.GetViewModel = (@delegate, context) =>
            {
                check(context);
                return(@delegate(IocContainer));
            };
            providerMock.GetViewModelType = (type, context) =>
            {
                check(context);
                return(new ViewModelBaseWithContext());
            };


            viewModel.GetViewModel(getViewModel: adapter => new ViewModelBaseWithContext(),
                                   containerCreationMode: iocContainerCreationMode, observationMode: listenType, parameters: constantValue);
            isInvoked.ShouldBeTrue();
            isInvoked = false;

            viewModel.GetViewModel(adapter => new ViewModelBaseWithContext(), listenType, iocContainerCreationMode, constantValue);
            isInvoked.ShouldBeTrue();
            isInvoked = false;

            viewModel.GetViewModel(typeof(ViewModelBaseWithContext), listenType, iocContainerCreationMode, constantValue);
            isInvoked.ShouldBeTrue();
            isInvoked = false;

            viewModel.GetViewModel <ViewModelBaseWithContext>(listenType, iocContainerCreationMode, constantValue);
            isInvoked.ShouldBeTrue();
        }
        public void WhenInitialazingVmShouldUseObservationModeFromDataContextModeBoth()
        {
            const ObservationMode mode = ObservationMode.Both;
            var iocContainer           = new IocContainerMock();
            ViewModelProvider provider = GetViewModelProvider(iocContainer);
            var parentViewModel        = new ViewModel();
            var context = new DataContext
            {
                { InitializationConstants.ObservationMode, mode },
                { InitializationConstants.ParentViewModel, parentViewModel }
            };

            var viewModel = (ViewModel)provider.GetViewModel(container => new ViewModel(), context);

            parentViewModel.LocalEventAggregator.GetObservers().Contains(viewModel).ShouldBeTrue();
            viewModel.LocalEventAggregator.GetObservers().Contains(parentViewModel).ShouldBeTrue();
        }
        public void ProviderShouldUseObservationModeFromDataContextModeNone()
        {
            const ObservationMode mode = ObservationMode.None;
            var iocContainer           = new IocContainerMock();
            ViewModelProvider provider = GetViewModelProvider(iocContainer);
            var parentViewModel        = new ViewModel();
            var context = new DataContext
            {
                { InitializationConstants.ObservationMode, mode },
                { InitializationConstants.ParentViewModel, parentViewModel }
            };

            var viewModel = (ViewModel)provider.GetViewModel(container => new ViewModel(), context);

            viewModel.ViewModelEventAggregator.GetObservers().Contains(viewModel).ShouldBeFalse();
            viewModel.ViewModelEventAggregator.GetObservers().Contains(viewModel).ShouldBeFalse();
        }