Ejemplo n.º 1
0
        public void Percentage_Progress_Allocation_To_Time_ShowsCorrect_Percentage()
        {
            var recorder             = new Recorder();
            var manualProgress       = new ManualProgress(0, 500);
            var speedProgress        = new SpeedProgress(0, 0, 120, 500);
            var practiceTimeProgress = new PracticeTimeProgress(0, 600, 1000);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress))
            {
                Assert.That(exerciseRecorder.TimeProgressPercentageAllocation, Is.EqualTo(50));
            }
        }
Ejemplo n.º 2
0
        public void When_Seconds_Subtracted_CalculateProgress_Works_As_Expected()
        {
            var practiceTimeProgress = new PracticeTimeProgress(
                currentTime: 300,
                targetTime: 600,
                weighting: 100
                );

            var newPracticeTimeProgress = practiceTimeProgress.SubstractSeconds(150);

            Assert.AreEqual(150, newPracticeTimeProgress.CurrentTime);
            Assert.That(newPracticeTimeProgress.CalculateProgress(), Is.EqualTo(25));
        }
Ejemplo n.º 3
0
        public void When_Minutes_Subtracted_CalculateProgress_Works_As_Expected()
        {
            var practiceTimeProgress = new PracticeTimeProgress(
                currentTime: 300,
                targetTime: 600,
                weighting: 100
                );

            var newPracticeTimeProgress = practiceTimeProgress.SubtractMinutes(1);

            Assert.AreEqual(240, newPracticeTimeProgress.CurrentTime);
            Assert.That(newPracticeTimeProgress.CalculateProgress(), Is.EqualTo(40));
        }
Ejemplo n.º 4
0
        public void TimeSlotTimer_RemainingTime_Negative_Returns_0()
        {
            int recordedTime = 601;
            int assignedTime = 600;

            var recorder             = new TestRecorder(recordedTime);
            var manualProgress       = new ManualProgress(0, 50);
            var speedProgress        = new SpeedProgress(0, 0, 120, 50);
            var practiceTimeProgress = new PracticeTimeProgress(0, 600, 50);

            var exerciseRecorder = new TimeSlotExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress, assignedTime);

            Assert.That(exerciseRecorder.RemainingSeconds, Is.EqualTo(0));
        }
Ejemplo n.º 5
0
        public void When_Time_Recorded_CurrentTotalSeconds_Reflects_TimeRecorded_And_Previous_PracticeTime()
        {
            var speedProgress  = new Mock <ISpeedProgress>();
            var manualProgress = new Mock <IManualProgress>();

            var recorder             = new TestRecorder(300);
            var practiceTimeProgress = new PracticeTimeProgress(300, 900, 100);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress.Object, practiceTimeProgress, manualProgress.Object))
            {
                Assert.AreEqual(600, exerciseRecorder.CurrentTotalSeconds);
                Assert.That(exerciseRecorder.CurrentTimeProgress, Is.EqualTo(67));
            }
        }
Ejemplo n.º 6
0
        public void Displays_Correct_TotalSecondsDisplay()
        {
            var recorder       = new TestRecorder(300);
            var manualProgress = new Mock <IManualProgress>();
            var speedProgress  = new Mock <ISpeedProgress>();

            var practiceTimeProgress = new PracticeTimeProgress(600, 1000, 100);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress.Object, practiceTimeProgress, manualProgress.Object))
            {
                Assert.That(exerciseRecorder.TotalSecondsDisplay, Is.EqualTo("00:15:00"));
                Assert.That(exerciseRecorder.RecordedSecondsDisplay, Is.EqualTo("00:05:00"));
            }
        }
Ejemplo n.º 7
0
        public void Adding_Speed_Changes_Current_OverallProgress_When_Applicably_Weighted()
        {
            var recorder             = new Recorder();
            var manualProgress       = new ManualProgress(0, 50);
            var speedProgress        = new SpeedProgress(0, 0, 120, 50);
            var practiceTimeProgress = new PracticeTimeProgress(0, 600, 50);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress))
            {
                var progressBefore = exerciseRecorder.CurrentOverAllProgress;
                exerciseRecorder.IncrementSpeed(120);
                var progressAfter = exerciseRecorder.CurrentOverAllProgress;

                Assert.That(progressBefore, Is.LessThan(progressAfter));
                Assert.That(progressAfter, Is.EqualTo(33));
            }
        }
Ejemplo n.º 8
0
        public void Exercise_PracticeTimeProgress_Properties_Are_Reflected_Correctly_On_Initialization()
        {
            var recorder       = new TestRecorder(0);
            var manualProgress = new Mock <IManualProgress>();
            var speedProgress  = new Mock <ISpeedProgress>();

            var practiceTimeProgress = new PracticeTimeProgress(300, 600, 100);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title",
                                                               speedProgress.Object, practiceTimeProgress, manualProgress.Object
                                                               ))
            {
                Assert.That(exerciseRecorder.Title, Is.EqualTo("Exercise Title"));
                Assert.That(exerciseRecorder.CurrentTotalSeconds, Is.EqualTo(300));
                Assert.That(exerciseRecorder.CurrentTimeProgress, Is.EqualTo(50));
            }
        }
Ejemplo n.º 9
0
        public IExerciseRecorder GetExerciseRecorder(int id)
        {
            try
            {
                var exercise = Get(id);

                var rec = Connection.QuerySingle <ExerciseRecorderRecord>("sp_GetExerciseRecorderByExerciseId",
                                                                          param: new { _exerciseId = id }, commandType: CommandType.StoredProcedure);

                var speedProgress    = new SpeedProgress(rec.InitialRecordedSpeed, rec.LastRecordedSpeed, rec.TargetMetronomeSpeed, rec.SpeedProgressWeighting);
                var timeProgress     = new PracticeTimeProgress(rec.TotalPracticeTime, rec.TargetPracticeTime, rec.PracticeTimeProgressWeighting);
                var manualProgress   = new ManualProgress(rec.LastRecordedManualProgress, rec.ManualProgressWeighting);
                var exerciseRecorder = new ExerciseRecorder(new Recorder(), rec.ExerciseId, rec.ExerciseTitle, speedProgress, timeProgress, manualProgress);

                return(exerciseRecorder);
            }
            catch (InvalidOperationException ex)
            {
                throw new DatabaseEntityNotFoundException($"Database entity does not exist for id: {id}", ex);
            }
        }
Ejemplo n.º 10
0
        public void WeightedProgressCalculator_CalculateTotalProgress_Test_1()
        {
            var recorder = new TestRecorder(300);

            var speedProgress = new Mock <ISpeedProgress>();

            speedProgress.Setup(obj => obj.CalculateProgress()).Returns(25);
            speedProgress.Setup(obj => obj.Weighting).Returns(6000);

            var practiceTimeProgress = new PracticeTimeProgress(300, 300, 6000);

            var manualProgress = new Mock <IManualProgress>();

            manualProgress.Setup(obj => obj.CalculateProgress()).Returns(60);
            manualProgress.Setup(obj => obj.Weighting).Returns(12000);

            using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress.Object, practiceTimeProgress, manualProgress.Object))
            {
                Assert.That(exerciseRecorder.CurrentOverAllProgress, Is.EqualTo(61));
            }
        }