//This can happen, for example, if the time entry was just stopped public async ThreadingTask AddsTheTimeEntryIfItWasNotAddedPreviously() { await ViewModel.Initialize(); var newTimeEntry = NewTimeEntry.With((long)TimeSpan.FromHours(1).TotalSeconds); TimeEntryUpdatedSubject.OnNext(new EntityUpdate <IThreadSafeTimeEntry>(newTimeEntry.Id, newTimeEntry)); ViewModel.TimeEntries.Any(c => c.Any(te => te.Id == 21)).Should().BeTrue(); ViewModel.TimeEntries.Aggregate(0, (acc, te) => acc + te.Count).Should().Be(InitialAmountOfTimeEntries + 1); }
//This can happen, for example, if the time entry was just stopped public async ThreadingTask AddsTheTimeEntryIfItWasNotAddedPreviously() { var stopDate = DateTimeOffset.UtcNow.AddHours(1); await ViewModel.Initialize(); var newTimeEntry = NewTimeEntry.With(stopDate); TimeEntryUpdatedSubject.OnNext(newTimeEntry); ViewModel.TimeEntries.Any(c => c.Any(te => te.Id == 21)).Should().BeTrue(); ViewModel.TimeEntries.Aggregate(0, (acc, te) => acc + te.Count).Should().Be(InitialAmountOfTimeEntries + 1); }
protected TimeEntryDataSourceObservableTest() { var startTime = DateTimeOffset.UtcNow.AddHours(-2); var observable = Enumerable.Range(1, InitialAmountOfTimeEntries) .Select(i => TimeEntry.Builder.Create(i)) .Select(builder => builder .SetStart(startTime.AddHours(builder.Id * 2)) .SetUserId(11) .SetWorkspaceId(12) .SetDescription("") .SetAt(DateTimeOffset.Now) .Build()) .Select(te => te.With(startTime.AddHours(te.Id * 2 + 2))) .Apply(Observable.Return); DataSource.TimeEntries.GetAll().Returns(observable); DataSource.TimeEntries.TimeEntryCreated.Returns(TimeEntryCreatedSubject.AsObservable()); DataSource.TimeEntries.TimeEntryUpdated.Returns(TimeEntryUpdatedSubject.AsObservable()); DataSource.TimeEntries.TimeEntryDeleted.Returns(TimeEntryDeletedSubject.AsObservable()); }