Example #1
0
        private void AdditionalSetup(MvxTestFixture fixture)
        {
            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxNavigateEventArgs>())).Returns(() => new SimpleTestViewModel());
            mockLocator.Setup(
                m => m.Reload(It.IsAny <IMvxViewModel>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxNavigateEventArgs>())).Returns(() => new SimpleTestViewModel());

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            fixture.Ioc.RegisterSingleton(mockLocator.Object);

            var loader = new MvxViewModelLoader(mockCollection.Object);

            MockDispatcher = new Mock <NavigationMockDispatcher>(MockBehavior.Loose)
            {
                CallBase = true
            };
            var navigationService = RoutingService = new MvxNavigationService(null, loader)
            {
                ViewDispatcher = MockDispatcher.Object,
            };

            RoutingService.LoadRoutes(new[] { typeof(RoutingServiceTests).Assembly });
            fixture.Ioc.RegisterSingleton(navigationService);
            fixture.Ioc.RegisterSingleton <IMvxStringToTypeParser>(new MvxStringToTypeParser());
        }
Example #2
0
        protected override void AdditionalSetup()
        {
            base.AdditionalSetup();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>())).Returns(() => new NavigationServiceTests.SimpleTestViewModel());
            mockLocator.Setup(
                m => m.Reload(It.IsAny <IMvxViewModel>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>())).Returns(() => new NavigationServiceTests.SimpleTestViewModel());

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            Ioc.RegisterSingleton(mockLocator.Object);

            var loader = new MvxViewModelLoader(mockCollection.Object);

            MockDispatcher = new Mock <NavigationMockDispatcher>(MockBehavior.Loose)
            {
                CallBase = true
            };
            var navigationService = RoutingService = new MvxNavigationService(null, loader)
            {
                ViewDispatcher = MockDispatcher.Object,
            };

            Ioc.RegisterSingleton(navigationService);
            Ioc.RegisterSingleton <IMvxStringToTypeParser>(new MvxStringToTypeParser());
        }
        public void Test_FailedViewModel()
        {
            _fixture.ClearAll();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxNavigateEventArgs>()))
            .Throws <MvxException>();

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null);
            var state   = new MvxBundle();
            var loader  = new MvxViewModelLoader(mockCollection.Object);
            var args    = new MvxNavigateEventArgs(NavigationMode.Show);

            Assert.Throws <MvxException>(() =>
            {
                var viewModel = loader.LoadViewModel(request, state, args);
            });
        }
        public async Task Test_NormalViewModel()
        {
            _fixture.ClearAll();

            IMvxViewModel outViewModel = new Test2ViewModel();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxNavigateEventArgs>()))
            .Returns(() => outViewModel);

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request   = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader(mockCollection.Object);
            var args      = new MvxNavigateEventArgs(NavigationMode.Show);
            var viewModel = await loader.LoadViewModel(request, state, args).ConfigureAwait(false);

            Assert.Equal(outViewModel, viewModel);
        }
        public void Test_FailedViewModel()
        {
            IMvxViewModel outViewModel = null;

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.TryLoad(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), out outViewModel))
            .Returns(() => false);

            var mockCollection = new Moq.Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            Ioc.RegisterSingleton(mockCollection.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request   = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null, MvxRequestedBy.UserAction);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader();
            var viewModel = loader.LoadViewModel(request, state);

            Assert.Fail("We should never reach this line");
        }
        public void Test_NormalViewModel()
        {
            _fixture.ClearAll();

            IMvxViewModel outViewModel = new Test2ViewModel();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>()))
            .Returns(() => outViewModel);

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request   = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader(mockCollection.Object);
            var viewModel = loader.LoadViewModel(request, state);

            Assert.Equal(outViewModel, viewModel);
        }
        public void Test_NormalViewModel()
        {
            IMvxViewModel outViewModel = new Test2ViewModel();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.TryLoad(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>(), out outViewModel))
            .Returns(() => true);

            var mockCollection = new Moq.Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            Ioc.RegisterSingleton(mockCollection.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request   = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null, MvxRequestedBy.UserAction);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader();
            var viewModel = loader.LoadViewModel(request, state);

            Assert.AreSame(outViewModel, viewModel);
            Assert.AreEqual(MvxRequestedBy.UserAction, viewModel.RequestedBy);
        }
        public void Test_FailedViewModel()
        {
            ClearAll();

            var mockLocator = new Mock <IMvxViewModelLocator>();

            mockLocator.Setup(
                m => m.Load(It.IsAny <Type>(), It.IsAny <IMvxBundle>(), It.IsAny <IMvxBundle>()))
            .Throws <MvxException>();

            var mockCollection = new Moq.Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => mockLocator.Object);

            Ioc.RegisterSingleton(mockCollection.Object);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null,
                                                                   MvxRequestedBy.UserAction);
            var state  = new MvxBundle();
            var loader = new MvxViewModelLoader();

            Assert.Throws <MvxException>(() => {
                var viewModel = loader.LoadViewModel(request, state);
            });
        }
        public void Test_LoaderForNull()
        {
            _fixture.ClearAll();

            var request   = new MvxViewModelRequest <MvxNullViewModel>(null, null);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader(null);
            var viewModel = loader.LoadViewModel(request, state);

            Assert.IsType <MvxNullViewModel>(viewModel);
        }
        public void TestLoaderForNull()
        {
            ClearAll();

            var request   = new MvxViewModelRequest <MvxNullViewModel>(null, null, MvxRequestedBy.UserAction);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader();
            var viewModel = loader.LoadViewModel(request, state);

            Assert.IsInstanceOf <MvxNullViewModel>(viewModel);
        }
        public void Test_LoaderForNull()
        {
            _fixture.ClearAll();

            var request   = new MvxViewModelRequest <MvxNullViewModel>(null, null);
            var state     = new MvxBundle();
            var loader    = new MvxViewModelLoader(null);
            var args      = new MvxNavigateEventArgs(NavigationMode.Show);
            var viewModel = loader.LoadViewModel(request, state, args);

            Assert.IsType <MvxNullViewModel>(viewModel);
        }
Example #12
0
        public void IncludeMvvmcross64()
        {
            _ = new MvxSettings();
            _ = new MvxStringToTypeParser(); //??
            //_ = new MvxPluginManager(null); //should not be required
            _ = new MvxViewModelLoader(null);
            _ = new MvxNavigationService(null, null);
            _ = new MvxViewModelByNameLookup();

            _ = new MvxViewModelViewTypeFinder(null, null);
            _ = new MvxViewModelViewLookupBuilder();
            _ = new MvxCommandCollectionBuilder();
            _ = new MvxStringDictionaryNavigationSerializer();
            _ = new MvxChildViewModelCache();
            _ = new MvxWeakCommandHelper();
        }
        public async Task Test_FailedViewModelLocatorCollection()
        {
            _fixture.ClearAll();

            var mockCollection = new Mock <IMvxViewModelLocatorCollection>();

            mockCollection.Setup(m => m.FindViewModelLocator(It.IsAny <MvxViewModelRequest>()))
            .Returns(() => null);

            var parameters = new Dictionary <string, string> {
                { "foo", "bar" }
            };
            var request = new MvxViewModelRequest <Test2ViewModel>(new MvxBundle(parameters), null);
            var state   = new MvxBundle();
            var loader  = new MvxViewModelLoader(mockCollection.Object);
            var args    = new MvxNavigateEventArgs(NavigationMode.Show);
            await Assert.ThrowsAsync <MvxException>(async() =>
            {
                var viewModel = await loader.LoadViewModel(request, state, args).ConfigureAwait(false);
            }).ConfigureAwait(false);
        }
 public void Include(MvxViewModelLoader loader)
 {
     _ = new MvxViewModelLoader(null);
 }