public void Test_IsStartValid_Given_Invalid_Times_Returns_False()
        {
            var recording         = createTestRecording();
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            vm.StartText = "284";

            Assert.False(vm.IsStartValid);
        }
        public void Test_IsElapsedValid_Given_Valid_Times_Returns_True()
        {
            var recording         = createTestRecording();
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            vm.ElapsedText = "10:00";

            Assert.True(vm.IsElapsedValid);
        }
        public async Task Test_UpdateFromDTO_Fills_In_EndTimeText_If_End_Not_Null()
        {
            var recording         = createTestRecording();
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            vm.UpdateFromDTO(2);
            await Task.Delay(500);

            Assert.Equal(recording.End.Value.TimeOfDay.ToHHMMSS(), vm.EndText);
        }
        public void Test_ChooseColor_Given_White_Sets_ChosenColor_To_White()
        {
            var recording         = createTestRecording();
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm            = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);
            var expectedColor = Colors.White;

            vm.ChooseColor(new SolidColorBrush(expectedColor));

            Assert.Equal(expectedColor, vm.ChosenColor.Color);
        }
        public async Task Test_UpdateFromDTO_Sets_ElapsedTimeText_To_Difference_If_End_Not_Null()
        {
            var recording         = createTestRecording();
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm       = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);
            var expected = recording.End.Value - recording.Start;

            vm.UpdateFromDTO(2);
            await Task.Delay(500);

            Assert.Equal(expected.ToHHMMSS(), vm.ElapsedText);
        }
        public void Test_GetValidityColor_Given_False_Returns_Red()
        {
            var recording = createTestRecording();

            recording.End = null;
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            var result = vm.GetValidityColor(false).Color;

            Assert.Equal(Colors.Red, result);
        }
        public async Task Test_UpdateFromDTO_Sets_EndTimeText_To_Null_If_End_Is_Null()
        {
            var recording = createTestRecording();

            recording.End = null;
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            vm.UpdateFromDTO(2);
            await Task.Delay(500);

            Assert.Null(vm.EndText);
        }
        public void Test_IsElapsedValid_Given_Invalid_Times_Returns_False()
        {
            var recording = createTestRecording();

            recording.End = null;
            var recordingStrategy = createTestFindRecordingStrategy(recording);
            var projectStrategy   = createTestFindProjectStrategy(null);
            var vm = new RecordingDetailPageVM(recordingStrategy.Object, projectStrategy.Object);

            //vm.UpdateFromDTO(recording);
            //await Task.Delay(1000);
            vm.ElapsedText = "263";

            Assert.False(vm.IsElapsedValid);
        }