예제 #1
0
        public void CompletedSchedulesUpdated()
        {
            string idComplete    = "schedule1";
            string idNotComplete = "schedule2";

            List <Theme> expected = new List <Theme>()
            {
                new ThemeBuilder().WithScheduleIds(idComplete).Build(),
                new ThemeBuilder().WithScheduleIds(idNotComplete).Build()
            };

            mockRepo.Setup(r => r.GetAllThemesAsync())
            .Returns(Task.FromResult(Result <List <Theme> > .Success(expected)));

            mockRepo.Setup(r => r.GetCompletedScheduleIds())
            .Returns(new List <string>()
            {
                idComplete
            });

            ThemesPageViewModel model = new ThemesPageViewModel(mockRepo.Object);

            model.ReloadIfNeeded();

            Assert.True(model.ThemeModels.Find(t => t.FirstScheduleId == idComplete)?.IsCompleted);
            Assert.False(model.ThemeModels.Find(t => t.FirstScheduleId == idNotComplete)?.IsCompleted);
        }
        private async void OnThemeLoadFailed(object sender, System.EventArgs e)
        {
            if (!IsAlertShowing)
            {
                alertPopupTask = DisplayAlert(AppResources.LoadFailedAlertTitle, AppResources.LoadFailedAlertMessage,
                                              AppResources.LoadFailedAlertContinue, AppResources.LoadFailedAlertCancel);

                await alertPopupTask;

                if (alertPopupTask.Result)
                {
                    viewModel.ReloadIfNeeded();
                }
                else
                {
                    await Navigation.PopAsync();
                }
            }
        }
예제 #3
0
        public void FailedThemeLoad()
        {
            mockRepo.Setup(r => r.GetAllThemesAsync())
            .Returns(Task.FromResult(Result <List <Theme> > .Failure()));

            ThemesPageViewModel model = new ThemesPageViewModel(mockRepo.Object);

            Assert.Raises <EventArgs>(
                attach: handler => model.ThemeLoadFailed += handler,
                detach: handler => model.ThemeLoadFailed -= handler,
                testCode: () => model.ReloadIfNeeded());
        }