public void SubscribesToCurrentTimeObservableIfParameterDoesNotHaveStopTime(DateTimeOffset now) { var parameter = DurationParameter.WithStartAndStop(now, null); ViewModel.Prepare(parameter); TimeService.CurrentDateTimeObservable.Received().Subscribe(Arg.Any <AnonymousObserver <DateTimeOffset> >()); }
public void SetsTheStartTime(DateTimeOffset now) { var start = now; var parameter = DurationParameter.WithStartAndStop(start, null); ViewModel.Prepare(parameter); ViewModel.StartTime.Should().Be(start); }
public async Task ReturnsTheDefaultParameter() { var parameter = DurationParameter.WithStartAndStop(DateTimeOffset.UtcNow, null); ViewModel.Prepare(parameter); await ViewModel.CloseCommand.ExecuteAsync(); await NavigationService.Received().Close(Arg.Is(ViewModel), Arg.Is(parameter)); }
public void SetsTheStopTimeToParameterStopTimeIfParameterHasStopTime(DateTimeOffset now) { var start = now.AddHours(-4); var stop = start.AddHours(2); var parameter = DurationParameter.WithStartAndStop(start, stop); ViewModel.Prepare(parameter); ViewModel.StartTime.Should().BeSameDateAs(start); }
public void SetsTheStartTimeToCurrentTimeIfParameterDoesNotHaveStartTime(DateTimeOffset now) { var start = now.AddHours(-2); var parameter = DurationParameter.WithStartAndStop(start, null); TimeService.CurrentDateTime.Returns(now); ViewModel.Prepare(parameter); ViewModel.StartTime.Should().BeSameDateAs(start); }
private async Task changeDuration() { IsEditingDuration = true; var currentDuration = DurationParameter.WithStartAndStop(StartTime, null); var selectedDuration = await navigationService .Navigate <EditDurationViewModel, DurationParameter, DurationParameter>(currentDuration) .ConfigureAwait(false); StartTime = selectedDuration.Start; IsEditingDuration = false; }
public void SetsTheStopTimeToTheValueReturnedByTheSelectDateTimeDialogViewModelWhenEditingACompletedTimeEntry(DateTimeOffset now) { var parameterToReturn = DurationParameter.WithStartAndStop(now.AddHours(-4), now.AddHours(-3)); NavigationService .Navigate <DurationParameter, DurationParameter>(typeof(EditDurationViewModel), Arg.Any <DurationParameter>()) .Returns(parameterToReturn); ConfigureEditedTimeEntry(now); ViewModel.Prepare(Id); ViewModel.EditDurationCommand.ExecuteAsync().Wait(); ViewModel.StopTime.Should().Be(parameterToReturn.Stop); }
public void WhenChangedWhileUpdatingFinishedTimeEntryTriggersTheUpdateOfTheStopTime(DateTimeOffset now) { var start = now.AddHours(-2); var parameter = DurationParameter.WithStartAndStop(start, now); TimeService.CurrentDateTime.Returns(now); ViewModel.Prepare(parameter); ViewModel.Duration = TimeSpan.FromHours(4); var expectedStop = now.AddHours(2); ViewModel.StopTime.Should().BeSameDateAs(expectedStop); }
public async Task SetsTheStartDateToTheValueReturnedByTheSelectDateTimeDialogViewModel() { var now = DateTimeOffset.UtcNow; var parameterToReturn = DurationParameter.WithStartAndStop(now.AddHours(-2), null); NavigationService .Navigate <DurationParameter, DurationParameter>(typeof(EditDurationViewModel), Arg.Any <DurationParameter>()) .Returns(parameterToReturn); ViewModel.Prepare(now); await ViewModel.ChangeDurationCommand.ExecuteAsync(); ViewModel.StartTime.Should().Be(parameterToReturn.Start); }
public void IsUpdatedAccordingToTimeServiceForRunningTimeEntries(DateTimeOffset now) { var start = now.AddHours(-2); var parameter = DurationParameter.WithStartAndStop(start, null); var tickSubject = new Subject <DateTimeOffset>(); var tickObservable = tickSubject.AsObservable().Publish(); tickObservable.Connect(); TimeService.CurrentDateTimeObservable.Returns(tickObservable); TimeService.CurrentDateTime.Returns(now); ViewModel.Prepare(parameter); tickSubject.OnNext(now.AddHours(2)); ViewModel.Duration.Hours.Should().Be(4); }
public void ReturnsAValueThatReflectsTheChangesToDurationForRunningTimeEntries(DateTimeOffset start, DateTimeOffset now) { if (start > now) { return; } TimeService.CurrentDateTime.Returns(now); ViewModel.Prepare(DurationParameter.WithStartAndStop(start, null)); ViewModel.Duration = TimeSpan.FromMinutes(10); ViewModel.SaveCommand.ExecuteAsync().Wait(); NavigationService.Received().Close(Arg.Is(ViewModel), Arg.Is <DurationParameter>( p => p.Start == ViewModel.StartTime && p.Stop == null )).Wait(); }
public async Task SetsTheIsEditingDurationDateToTrueWhileTheViewDoesNotReturnAndThenSetsItBackToFalse() { var now = DateTimeOffset.UtcNow; var parameterToReturn = DurationParameter.WithStartAndStop(now.AddHours(-2), null); var tcs = new TaskCompletionSource <DurationParameter>(); NavigationService .Navigate <DurationParameter, DurationParameter>(typeof(EditDurationViewModel), Arg.Any <DurationParameter>()) .Returns(tcs.Task); ViewModel.Prepare(now); var toWait = ViewModel.ChangeDurationCommand.ExecuteAsync(); ViewModel.IsEditingDuration.Should().BeTrue(); tcs.SetResult(parameterToReturn); await toWait; ViewModel.IsEditingDuration.Should().BeFalse(); }