public void TestTaskTimerViewModelConvertMilisecondsToHumanTime()
        {
            TaskTimerViewModel timerVM = new TaskTimerViewModel();

            string fiveMinutes = timerVM.ConvertMilisecondsToHumanTime(Constants.FiveMinutesInMiliSeconds);

            Assert.AreEqual(fiveMinutes, "00:05:00");
        }
        public void TestTaskTimerViewModelAddMinute()
        {
            TaskTimerViewModel timerVM = new TaskTimerViewModel();

            timerVM.AddMinute();

            Assert.AreEqual(timerVM.TaskTimerModel.RemainingMiliseconds, Constants.DefaultStartingTimeInMiliseconds + Constants.AMinuteInMiliSeconds);
            Assert.AreEqual(timerVM.TaskTimerModel.TotalMiliseconds, Constants.DefaultStartingTimeInMiliseconds + Constants.AMinuteInMiliSeconds);
        }
        public void TestTaskTimerViewModelResetTimer()
        {
            TaskTimerViewModel timerVM = new TaskTimerViewModel();

            timerVM.TaskTimerModel.RemainingMiliseconds -= 50;

            timerVM.ResetTimer();

            Assert.AreEqual(timerVM.TaskTimerModel.RemainingMiliseconds, Constants.DefaultStartingTimeInMiliseconds);
            Assert.AreEqual(timerVM.TaskTimerModel.TotalMiliseconds, Constants.DefaultStartingTimeInMiliseconds);
        }
        public void TestTaskTimerViewModelRemoveMinutePassedZero()
        {
            TaskTimerViewModel timerVM = new TaskTimerViewModel();

            // Remove at least 5 minutes
            timerVM.RemoveMinute();
            timerVM.RemoveMinute();
            timerVM.RemoveMinute();
            timerVM.RemoveMinute();
            timerVM.RemoveMinute();
            timerVM.RemoveMinute();

            Assert.AreEqual(timerVM.TaskTimerModel.RemainingMiliseconds, 0);
            Assert.AreEqual(timerVM.TaskTimerModel.TotalMiliseconds, 0);
        }
        public void TestTaskTimerViewModelInit()
        {
            TaskTimerViewModel viewModel = new TaskTimerViewModel();

            Assert.IsNotNull(viewModel.TaskTimerModel);

            Assert.AreEqual(viewModel.TimerDescription, Constants.DefaultTimerDescription);
            Assert.AreEqual(viewModel.TaskTimerModel.IsComplete, false);
            Assert.AreEqual(viewModel.TaskTimerModel.IsRunning, false);
            Assert.AreEqual(viewModel.TaskTimerModel.TotalMiliseconds, Constants.DefaultStartingTimeInMiliseconds);
            Assert.AreEqual(viewModel.TaskTimerModel.RemainingMiliseconds, Constants.DefaultStartingTimeInMiliseconds);

            Assert.IsNotNull(viewModel.AddMinuteCommand);
            Assert.IsNotNull(viewModel.RemoveMinuteCommand);
            Assert.IsNotNull(viewModel.ResetTimeCommand);
        }
        public void TestTaskTimerViewModelInitWithParams()
        {
            int totalMiliseconds = 3000;

            TaskTimerViewModel viewModel = new TaskTimerViewModel(totalMiliseconds);

            Assert.IsNotNull(viewModel.TaskTimerModel);

            Assert.AreEqual(viewModel.TaskTimerModel.IsComplete, false);
            Assert.AreEqual(viewModel.TaskTimerModel.IsRunning, false);
            Assert.AreEqual(viewModel.TaskTimerModel.TotalMiliseconds, totalMiliseconds);
            Assert.AreEqual(viewModel.TaskTimerModel.RemainingMiliseconds, totalMiliseconds);
            Assert.AreEqual(viewModel.TimerDescription, Constants.DefaultTimerDescription);

            Assert.IsNotNull(viewModel.AddMinuteCommand);
            Assert.IsNotNull(viewModel.RemoveMinuteCommand);
            Assert.IsNotNull(viewModel.ResetTimeCommand);
        }
        public void TestTaskTimerViewModelInitWithMilisecondsandDescription()
        {
            int    totalMiliseconds   = 3000;
            string newTaskDescription = "Something Other Than The Default Task Description";

            TaskTimerViewModel viewModel = new TaskTimerViewModel(totalMiliseconds, newTaskDescription);

            Assert.IsNotNull(viewModel.TaskTimerModel);

            Assert.AreEqual(viewModel.TaskTimerModel.IsComplete, false);
            Assert.AreEqual(viewModel.TaskTimerModel.IsRunning, false);
            Assert.AreEqual(viewModel.TaskTimerModel.TotalMiliseconds, totalMiliseconds);
            Assert.AreEqual(viewModel.TaskTimerModel.RemainingMiliseconds, totalMiliseconds);
            Assert.AreEqual(viewModel.TaskTimerModel.Description, newTaskDescription);

            Assert.IsNotNull(viewModel.AddMinuteCommand);
            Assert.IsNotNull(viewModel.RemoveMinuteCommand);
            Assert.IsNotNull(viewModel.ResetTimeCommand);
        }