Esempio n. 1
0
        public void PracticeRoutineEditViewModel_Initialized_With_No_TimeSlot_Throws_Exception()
        {
            var          dialogService = new Mock <IDialogViewService>();
            var          viewModel     = new PracticeRoutineEditViewModel(dialogService.Object);
            TestDelegate proc          = () => viewModel.StartEdit(null);

            Assert.That(proc, Throws.TypeOf <ArgumentNullException>());
        }
Esempio n. 2
0
        public void PracticeRoutineEditViewModel_Title_Is_Populated_When_Initialized()
        {
            var dialogService = new Mock <IDialogViewService>();
            var viewModel     = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(EntityFactory.GetBasicPracticeRoutine());

            Assert.AreEqual("Practice Routine", viewModel.Title);
        }
Esempio n. 3
0
        public void PracticeRoutineEditViewModel_Title_Set_Populates_PracticeRoutine()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.Title = "Modified Practice Routine";
            Assert.AreEqual("Modified Practice Routine", practiceRoutine.Title);
        }
Esempio n. 4
0
        public void PracticeRoutineEditViewModel_TimeSlots_Are_Populated_When_Initialized()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            Assert.AreEqual(1, viewModel.TimeSlots.Count);
            Assert.That(viewModel.TimeSlots[0], Is.TypeOf <TimeSlotViewModel>());
        }
Esempio n. 5
0
        public void PracticeRoutineViewModel_StartEdit__Populates_PracticeRoutineTree()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            Assert.AreEqual("Practice Routine", viewModel.Title);
            Assert.AreEqual(1, viewModel.TimeSlots.Count);
            Assert.AreEqual(3, viewModel.TimeSlots[0].Exercises.Count);
        }
Esempio n. 6
0
        public void PracticeRoutineViewModel_Assign_All_Fields_To_View_Ok()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetEmptyPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            Assert.AreEqual(EntityLifeCycleState.AsExistingEntity, viewModel.LifeCycleState);
            Assert.AreEqual(1, viewModel.Id);
            Assert.AreEqual("Existing Empty Practice Routine", viewModel.Title);
        }
Esempio n. 7
0
        public void PracticeRoutineViewModel_Assigned_A_PracticeRoutine_In_Constructor_Is_Not_Dirty()
        {
            var dialogService = new Mock <IDialogViewService>();

            var practiceRoutine = EntityFactory.CreateEmptyPracticeRoutine("New Practice Routine");

            practiceRoutine.Title = "My Test PracticeRoutine";

            var viewModel = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);
            Assert.That(viewModel.IsDirty, Is.False);
        }
Esempio n. 8
0
        public void PracticeRoutineViewModel_Change_Title_Is_Now_Dirty()
        {
            var dialogService = new Mock <IDialogViewService>();

            var practiceRoutine = EntityFactory.GetEmptyPracticeRoutine();

            var viewModel = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.Title = "Title has Changed";

            Assert.That(viewModel.IsDirty, Is.True);
        }
Esempio n. 9
0
        public void PracticeRoutineEditViewModel_When_TimeSlot_AssignedSeconds_Changes_Reflected_In_TotalTimeDisplay()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            var totalTimeBefore = viewModel.TotalTimeDisplay;
            var firstTimeSlot   = viewModel.TimeSlots[0].AssignedSeconds = 600;
            var totalTimeAfter  = viewModel.TotalTimeDisplay;

            Assert.AreEqual("00:05:00", totalTimeBefore);
            Assert.AreEqual("00:10:00", totalTimeAfter);
        }
Esempio n. 10
0
        public void PracticeRoutineViewModel_Commits_All_Fields_Back_To_Domain_Object()
        {
            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetEmptyPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.Title = "Changed Title";

            viewModel.Commit();

            Assert.AreEqual(1, practiceRoutine.Id);
            Assert.AreEqual("Changed Title", practiceRoutine.Title);
        }
Esempio n. 11
0
        public void PracticeRoutineEditViewModel_Edit_TimeSlotViewModel_Raises_ItemChanged()
        {
            var listChanged = false;

            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            TimeSlotViewModel anyTimeSlot = viewModel.TimeSlots[0];

            viewModel.TimeSlots.ListChanged += (s, e) => listChanged = true;

            anyTimeSlot.Title = "Some Arbitrary New Title";

            Assert.IsTrue(listChanged);
        }
Esempio n. 12
0
        public void PracticeRoutineEditViewModel_Add_TimeSlotViewModel_Raises_ItemChanged()
        {
            var listChanged = false;

            var dialogService = new Mock <IDialogViewService>();

            dialogService.Setup(ds => ds.YesNoPrompt(It.IsAny <string>(), It.IsAny <string>())).Returns(true);


            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.TimeSlots.ListChanged += (s, e) => listChanged = true;

            viewModel.AddTimeSlotCommand.Execute(null);

            Assert.IsTrue(listChanged);
        }
Esempio n. 13
0
        public void PracticeRoutineEditViewModel_Title_Set_Fires_PropertyChanged()
        {
            var fired = false;

            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "Title")
                {
                    fired = true;
                }
            };
            viewModel.Title = "Modified Practice Routine";

            Assert.IsTrue(fired);
        }
Esempio n. 14
0
        public void PracticeRoutineEditViewModel_Remove_TimeSlot_Removes_TimeSlot()
        {
            var dialogService = new Mock <IDialogViewService>();

            dialogService.Setup(ds => ds.YesNoPrompt(It.IsAny <string>(), It.IsAny <string>())).Returns(true);

            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            TimeSlotViewModel firstTimeSlot = viewModel.TimeSlots[0];

            viewModel.SelectedItem = firstTimeSlot;

            var beforeCount = viewModel.TimeSlots.Count;

            viewModel.DeleteCommand.Execute(null);
            var afterCount = viewModel.TimeSlots.Count;

            Assert.AreEqual(beforeCount - 1, afterCount);
        }
        public PracticeRoutineCompositeViewModel(
            IPracticeRoutineService practiceRoutineService,
            PracticeRoutineManagementViewModel practiceRoutineManagementViewModel,
            RoutineRecorderViewModel practiceRoutineRecordingListViewModel,
            PracticeRoutineEditViewModel practiceRoutineEditViewModel, ExerciseSelectionViewModel exerciseSelectionViewModel)
        {
            this.practiceRoutineService                = practiceRoutineService;
            this.practiceRoutineManagementViewModel    = practiceRoutineManagementViewModel;
            this.practiceRoutineEditViewModel          = practiceRoutineEditViewModel;
            this.practiceRoutineRecordingListViewModel = practiceRoutineRecordingListViewModel;
            this.exerciseSelectionViewModel            = exerciseSelectionViewModel;

            Messenger.Default.Register <ExitPracticeListMessage>(this, (m) => ExitPracticeList());
            Messenger.Default.Register <ViewPracticeListMessage>(this, (m) => ViewPracticeList(m.PracticeRoutineId));
            Messenger.Default.Register <ExerciseSelectionCancelledMessage>(this, (m) => ExerciseSelectionCancelled());
            Messenger.Default.Register <ExerciseSelectedMessage>(this, (m) => ExerciseSelected(m.ExerciseId));
            Messenger.Default.Register <StartSelectingPracticeRoutineExerciseMessage>(this, (m) => StartSelectingPracticeRoutine());
            Messenger.Default.Register <StartEditingPracticeRoutineMessage>(this, (m) => StartEditingPracticeRoutine(m.PracticeRoutine));
            Messenger.Default.Register <EndEditingPracticeRoutineMessage>(this, (m) => EndEditingPracticeRoutine(m.PracticeRoutine, m.Operation, m.LifeCycleState));

            NavigationCommand = new RelayCommand <string>(NavigateTo);
            NavigateTo("Search");
        }
Esempio n. 16
0
        public void PracticeRoutineEditViewModel_Change_AssignedSeconds_Raises_PracticeRoutineTree_PropertyRaised_Event()
        {
            var fired = false;

            var dialogService   = new Mock <IDialogViewService>();
            var practiceRoutine = EntityFactory.GetBasicPracticeRoutine();
            var viewModel       = new PracticeRoutineEditViewModel(dialogService.Object);

            viewModel.StartEdit(practiceRoutine);

            viewModel.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "TotalTimeDisplay")
                {
                    fired = true;
                }
            };


            viewModel.TimeSlots[0].AssignedSeconds = 600;

            Assert.IsTrue(fired);
        }