コード例 #1
0
        public void BuildWithBadViewModelThrowsException()
        {
            _View = new FrameworkElement();
            _ViewModel = new Object();

            CreateContainer();

            var viewFactory = new ViewFactory();

            viewFactory.Build(ViewTargets.Detail);
        }
コード例 #2
0
        public void BuildThrowsExceptionWithViewAndNoViewModel()
        {
            var view = new FrameworkElement();

            var container = new WindsorContainer();
            ComponentContainer.Container = container;

            container.Kernel.AddComponentInstance("DetailView", view);

            container.Register(
                Component.For<ViewConfiguration>()
                    .Named(ViewTargets.Detail.ToString())
                    .Parameters(
                        Parameter.ForKey("View").Eq("${DetailView}")));

            var viewFactory = new ViewFactory();

            viewFactory.Build(ViewTargets.Detail);
        }
コード例 #3
0
        public void BuildWithImpliedViewModelReturnsControlAndLoadedViewModel()
        {
            _View = new FrameworkElement();

            var title = Guid.NewGuid().ToString();
            var viewModel = MockRepository.GenerateMock<IViewModelWithNoArgumentLoad>();
            viewModel.Expect(vm => vm.Title).Return(title);
            _View.DataContext = viewModel;

            CreateContainer();

            var viewFactory = new ViewFactory();

            var viewResult = viewFactory.Build(ViewTargets.Detail);

            Assert.IsNotNull(viewResult);

            var resultViewModel = (ITitledViewModel)viewResult.View.DataContext;
            Assert.AreEqual(title, resultViewModel.Title);
            viewModel.AssertWasCalled(vm => vm.Load());
        }
コード例 #4
0
        public void BuildWithParamsThrowsExceptionWhenNoMatchingLoadFound()
        {
            _View = new FrameworkElement();
            _ViewModel = MockRepository.GenerateStub<ITitledViewModel>();

            CreateContainer();

            var viewFactory = new ViewFactory();

            viewFactory.Build(ViewTargets.Detail, new Object());
        }
コード例 #5
0
        public void BuildWithParamsReturnsControlAndLoadedViewModel()
        {
            _View = new FrameworkElement();

            var title = Guid.NewGuid().ToString();
            var viewModel = MockRepository.GenerateMock<IViewModelWithParameterizedLoad>();
            viewModel.Stub(vm => vm.Load(Arg<String>.Is.Anything));
            viewModel.Expect(vm => vm.Title).Return(title);
            _ViewModel = viewModel;

            CreateContainer();

            var viewFactory = new ViewFactory();

            var param = Guid.NewGuid().ToString();
            var viewResult = viewFactory.Build(ViewTargets.Detail, param);

            Assert.IsNotNull(viewResult);

            var resultViewModel = (ITitledViewModel)viewResult.View.DataContext;
            Assert.AreEqual(title, resultViewModel.Title);
            viewModel.AssertWasCalled(vm => vm.Load(Arg<String>.Is.Equal(param)));
        }
コード例 #6
0
        public void BuildWithParamsAndViewModelWithNoLoadMethodThrowsException()
        {
            _View = new FrameworkElement();
            _ViewModel = MockRepository.GenerateStub<ITitledViewModel>();

            CreateContainer();

            var viewFactory = new ViewFactory();

            viewFactory.Build(ViewTargets.Detail, Guid.NewGuid().ToString());
        }
コード例 #7
0
        public void BuildWithNoParamsAndViewModelWithNoLoadReturnsView()
        {
            _View = new FrameworkElement();

            var title = Guid.NewGuid().ToString();
            var viewModel = MockRepository.GenerateStub<ITitledViewModel>();
            viewModel.Expect(vm => vm.Title).Return(title);
            _ViewModel = viewModel;

            CreateContainer();

            var viewFactory = new ViewFactory();

            var viewResult = viewFactory.Build(ViewTargets.Detail);

            Assert.IsNotNull(viewResult);

            var resultViewModel = (ITitledViewModel)viewResult.View.DataContext;
            Assert.AreEqual(title, resultViewModel.Title);
        }