コード例 #1
0
        public void BaseSetup()
        {
            TestScheduler = new TestScheduler();

            SchedulerService = new MockSchedulerService(TestScheduler);

            DateTimeService = new MockDateTimeService(TestScheduler);
        }
コード例 #2
0
        public void CreateEditableTableViewModelExpectNotInEditMode()
        {
            var navService      = new Mock <INavigationService>();
            var scheduleService = new MockSchedulerService();
            var alerts          = new Mock <IAlertController>();
            var model           = new EditableTableViewModel(alerts.Object, navService.Object, scheduleService);

            Assert.IsFalse(model.EditMode);
        }
コード例 #3
0
        public void Setup()
        {
            _testScheduler    = new TestScheduler();
            _schedulerService = new MockSchedulerService(_testScheduler);

            _idleService = new Mock <IIdleService>();

            _idling = new Subject <Unit>();
            _idleService.Setup(x => x.Idling).Returns(_idling);
        }
コード例 #4
0
        public async Task GivenModalViewAwareOfHardwareBackButton_WhenHardwareBackButtonPressed_NavigationServiceRemovesView()
        {
            var mockApp                = new Mock <Application>();
            var mockMainPage           = new Mock <Page>();
            var mockCurrentPageService = new Mock <ICurrentPageService>();
            var mockNavigation         = new Mock <INavigation>();
            var mockViewModelFactory   = new Mock <IViewModelFactory>();
            var mockViewFactory        = new Mock <IViewFactory>();
            var mockLogger             = new Mock <ILogger>();
            var mockScheduler          = new MockSchedulerService();

            mockCurrentPageService.Setup((app) => app.GetCurrent()).Returns(mockMainPage.Object);
            mockCurrentPageService.Setup((app) => app.GetNavigation()).Returns(mockNavigation.Object);

            var mockPage = new Mock <Page>();
            var mockHardwareButtoneEnabledPage = mockPage.As <IHardwareNavigationAware>();

            mockViewFactory.Setup((factory) => factory.CreatePage(It.IsAny <object>(), true))
            .Returns(mockPage.Object);

            var navigationService = new NavigationService(mockViewModelFactory.Object, mockViewFactory.Object, mockLogger.Object, mockCurrentPageService.Object);
            var mockViewModel     = new Mock <INavigationPageModel>();

            // Navigation to page
            await navigationService.PushModalAsync(mockViewModel.Object);

            // Verify page is pushed
            mockNavigation.Verify((nav) => nav.PushModalAsync(mockPage.Object), Times.Once);

            // Simulate that the hardware back button was called
            mockHardwareButtoneEnabledPage.Raise((vm) => vm.OnHardwareBackButtonPressed += null,
                                                 EventArgs.Empty,
                                                 mockPage.Object);

            // Verify page is popped and vm disposed
            mockNavigation.Verify((nav) => nav.PopModalAsync(), Times.Once);
            mockViewModel.Verify((vm) => vm.Dispose(), Times.Once);
        }
コード例 #5
0
        public async Task GivenViewModel_WhenViewModelDisallowsBackNavigation_PageIsNotNavigatedAwayFrom()
        {
            var mockApp                = new Mock <Application>();
            var mockMainPage           = new Mock <Page>();
            var mockCurrentPageService = new Mock <ICurrentPageService>();
            var mockNavigation         = new Mock <INavigation>();
            var mockViewModelFactory   = new Mock <IViewModelFactory>();
            var mockViewFactory        = new Mock <IViewFactory>();
            var mockLogger             = new Mock <ILogger>();
            var mockScheduler          = new MockSchedulerService();
            var mockViewModel          = new Mock <IPageViewModel>();
            var mockPage               = new Mock <Page>();

            mockCurrentPageService.Setup((app) => app.GetCurrent()).Returns(mockMainPage.Object);
            mockCurrentPageService.Setup((app) => app.GetNavigation()).Returns(mockNavigation.Object);
            mockViewModel.Setup((vm) => vm.NavigateBack()).Returns(Task.FromResult(false));
            mockNavigation.Setup((nav) => nav.NavigationStack).Returns(new List <Page>(new Page[] { mockPage.Object }));

            mockViewFactory.Setup((factory) => factory.CreatePage(It.IsAny <object>(), false))
            .Returns(mockPage.Object);

            var navigationService = new NavigationService(mockViewModelFactory.Object, mockViewFactory.Object, mockLogger.Object, mockCurrentPageService.Object);

            // Navigation to page
            await navigationService.PushAsync(mockViewModel.Object);

            // Verify page is pushed
            mockNavigation.Verify((nav) => nav.PushAsync(mockPage.Object), Times.Once);

            // Try to navigate away from page
            await navigationService.PopAsync();

            // Verify page is popped and vm disposed
            mockNavigation.Verify((nav) => nav.PopAsync(), Times.Never);
            mockViewModel.Verify((vm) => vm.Dispose(), Times.Never);
        }
コード例 #6
0
 public void SetUp()
 {
     _testScheduler    = new TestScheduler();
     _schedulerService = new MockSchedulerService(_testScheduler);
 }