示例#1
0
        public void TimeSlotRecorderViewModel_AddSeconds_Raises_PropertyChanged_For_AssignedTimeDisplay()
        {
            var changed = false;

            int recordedSeconds = 300;
            int assignedTime    = 600;

            var exerciseRecorder = new TimeSlotExerciseRecorder(new TestRecorder(recordedSeconds), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), assignedTime);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

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

            exerciseRecorder.AddSeconds(200);

            Assert.IsTrue(changed);
        }
示例#2
0
        public void TimeSlotRecorderViewModel_OverallPracticeTime_Reflects_Model_Dynamically()
        {
            var exerciseRecorder = EntityFactory.CreateTimeProgressTimeSlotExerciseRecorder(300, 1200, 600);
            var exerciseService  = new Mock <IExerciseService>();
            var viewModel        = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            exerciseRecorder.AddSeconds(300);

            Assert.AreEqual(TimeFuncs.DisplayTimeFromSeconds(600), viewModel.TotalRecordedDisplayTime);
        }
示例#3
0
        public void TimeSlotRecorderViewModel_OverallProgress_Reflects_Model_Dynamically()
        {
            var exerciseRecorder = EntityFactory.CreateSpeedProgressTimeSlotExerciseRecorder(30, 30, 90, 600);
            var exerciseService  = new Mock <IExerciseService>();
            var viewModel        = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            exerciseRecorder.IncrementSpeed(30);

            Assert.AreEqual(50, viewModel.OverallProgress);
        }
示例#4
0
        public void TimeSlotRecorderViewModel_IncrementSpeed_Large_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateSpeedProgressTimeSlotExerciseRecorder(60, 100, 160, 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.LargeSpeedIncrementCommand.Execute(null);

            Assert.AreEqual(110, exerciseRecorder.CurrentSpeed);
        }
示例#5
0
        public void TimeSlotRecorderViewModel_Initialized_RecordingStatus_Is_Not_Recording()
        {
            var exerciseRecorder = new TimeSlotExerciseRecorder(new Recorder(), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            Assert.That(viewModel.Status, Is.EqualTo(""));
        }
示例#6
0
        public void TimeSlotRecorderViewModel_Initialized_With_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateTimeProgressTimeSlotExerciseRecorder(300, 1200, 600);

            exerciseRecorder.AddMinutes(10);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            Assert.AreEqual(600, exerciseRecorder.RecordedSeconds);
            Assert.AreEqual(900, exerciseRecorder.CurrentTotalSeconds);
        }
示例#7
0
        public void TimeSlotRecorderViewModel_DecrementSpeed_Small_Below_Zero_Is_Zero()
        {
            var exerciseRecorder = EntityFactory.CreateSpeedProgressTimeSlotExerciseRecorder(0, 0, 160, 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.SmallSpeedDecrementCommand.Execute(null);

            Assert.AreEqual(0, exerciseRecorder.CurrentSpeed);
            Assert.AreEqual(TimeFuncs.ZeroTimeDisplay, viewModel.RecordingTimeDisplay);
        }
示例#8
0
        public void TimeSlotRecorderViewModel_IncrementMinutes_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateTimeProgressTimeSlotExerciseRecorder(300, 600, 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.IncrementMinutesPracticedCommand.Execute(null);

            Assert.AreEqual(60, exerciseRecorder.RecordedSeconds);
            Assert.AreEqual(360, exerciseRecorder.CurrentTotalSeconds);
        }
示例#9
0
        public void TimeSlotRecorderViewModel_ManualProgress_Set_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateManualProgressTimeSlotExerciseRecorder(40, 600);

            exerciseRecorder.IncrementManualProgress(10);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.ManualProgress = 10;

            Assert.AreEqual(10, exerciseRecorder.CurrentManualProgress);
        }
示例#10
0
        public void TimeSlotRecorderViewModel_ManualProgress_Decrement_Small_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateManualProgressTimeSlotExerciseRecorder(40, 600);

            exerciseRecorder.IncrementManualProgress(10);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.DecrementManualProgressCommand.Execute(null);

            Assert.AreEqual(49, exerciseRecorder.CurrentManualProgress);
        }
示例#11
0
        public void TimeSlotRecorderViewModel_Increment_RecordedTime_By_Seconds_Reflects_On_Model()
        {
            var exerciseRecorder = EntityFactory.CreateTimeProgressTimeSlotExerciseRecorder(10, 1200, 600);

            exerciseRecorder.AddSeconds(10); // 20

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            viewModel.IncrementSecondsPracticedCommand.Execute(null);

            Assert.AreEqual(11, exerciseRecorder.RecordedSeconds);
            Assert.AreEqual(21, exerciseRecorder.CurrentTotalSeconds);
        }
示例#12
0
        public void TimeSlotRecorderViewModel_RecordingStatus_Gets_Value_From_TimeSlotExerciseRecorder()
        {
            var exerciseRecorder = new TimeSlotExerciseRecorder(new Recorder(), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            exerciseRecorder.Resume();

            Assert.That(viewModel.Status, Is.EqualTo("RECORDING..."));
        }
示例#13
0
        public void TimeSlotRecorderViewModel_Initial_State_Is_Correct()
        {
            var exerciseRecorder = new TimeSlotExerciseRecorder(new Recorder(), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            Assert.AreEqual(TimeFuncs.ZeroTimeDisplay, viewModel.RecordingTimeDisplay);
            Assert.AreEqual(false, viewModel.Recording);
            Assert.AreEqual(0, viewModel.Seconds);
            Assert.AreEqual("", viewModel.Status);
            Assert.AreEqual("Exercise Title", viewModel.Title);
        }
示例#14
0
        public void TimeSlotRecorderViewModel_Initial_State_Has_Initial_and_Remaining()
        {
            int recordedSeconds = 300;
            int assignedTime    = 600;

            var exerciseRecorder = new TimeSlotExerciseRecorder(new TestRecorder(recordedSeconds), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), assignedTime);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            Assert.AreEqual(600, viewModel.AssignedSeconds);
            Assert.AreEqual(300, viewModel.RemainingSeconds);
            Assert.AreEqual("00:10:00", viewModel.AssignedTimeDisplay);
            Assert.AreEqual("00:05:00", viewModel.RemainingTimeDisplay);
        }
示例#15
0
        public void TimeSlotRecorderViewModel_DecrementTime_Large_Raises_PropertyChanged_For_RecordingTimeDisplay()
        {
            var changed = false;

            var exerciseRecorder = EntityFactory.CreateSpeedProgressTimeSlotExerciseRecorder(60, 100, 160, 600);
            var exerciseService  = new Mock <IExerciseService>();
            var viewModel        = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

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

            viewModel.DecrementMinutesPracticedCommand.Execute(null);

            Assert.IsTrue(changed);
        }
示例#16
0
        public void TimeSlotRecorderViewModel_IncrementTime_Small_Raises_PropertyChanged_For_OverallProgress()
        {
            var changed = false;

            var exerciseRecorder = EntityFactory.CreateSpeedProgressTimeSlotExerciseRecorder(60, 100, 160, 600);
            var exerciseService  = new Mock <IExerciseService>();
            var viewModel        = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

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

            viewModel.IncrementSecondsPracticedCommand.Execute(null);

            Assert.IsTrue(changed);
        }
示例#17
0
        public void TimeSlotRecorderViewModel_Recording_Reflects_Model_Recording()
        {
            var exerciseRecorder = new TimeSlotExerciseRecorder(new Recorder(), 1, "Exercise Title",
                                                                new SpeedProgress(85, 85, 120, 10),
                                                                new PracticeTimeProgress(300, 600, 10),
                                                                new ManualProgress(0, 100), 600);

            var exerciseService = new Mock <IExerciseService>();
            var viewModel       = new TimeSlotRecorderViewModel(exerciseService.Object, exerciseRecorder);

            exerciseRecorder.Resume();
            var recording = exerciseRecorder.Recording && viewModel.Recording;

            exerciseRecorder.Pause();
            var paused = !exerciseRecorder.Recording && !viewModel.Recording;

            exerciseRecorder.Resume();
            exerciseRecorder.Reset();
            var reset = !exerciseRecorder.Recording && !viewModel.Recording;

            Assert.IsTrue(recording);
            Assert.IsTrue(paused);
            Assert.IsTrue(reset);
        }