protected TimeEntryDataSourceObservableTest() { var startTime = now.AddHours(-2); var initialTimeEntries = Enumerable.Range(1, InitialAmountOfTimeEntries) .Select(i => new MockTimeEntry { Id = i, Start = startTime.AddHours(i * 2), Duration = (long)TimeSpan.FromHours(i * 2 + 2).TotalSeconds, UserId = 11, WorkspaceId = 12, Description = "", At = now, TagIds = new long[] { 1, 2, 3 }, Workspace = new MockWorkspace { IsInaccessible = false } } ); TimeEntries = new BehaviorSubject <IEnumerable <IThreadSafeTimeEntry> >(initialTimeEntries); InteractorFactory.ObserveAllTimeEntriesVisibleToTheUser().Execute().Returns(TimeEntries); }
protected void PrepareTimeEntry() { var timeEntry = Substitute.For <IThreadSafeTimeEntry>(); timeEntry.Id.Returns(123); timeEntry.Start.Returns(DateTimeOffset.Now); timeEntry.Duration.Returns(100); InteractorFactory.ObserveAllTimeEntriesVisibleToTheUser().Execute() .Returns(Observable.Return(new[] { timeEntry })); }
public void EmitsAnEventWhenTimeEntriesChange() { var itemsChangedSubject = new Subject <Unit>(); DataSource.Workspaces.ItemsChanged.Returns(itemsChangedSubject); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeTimeEntry> >(); InteractorFactory.ObserveAllTimeEntriesVisibleToTheUser() .Execute() .Subscribe(observer); itemsChangedSubject.OnNext(Unit.Default); observer.Messages.Should().HaveCount(1); }
public void EmitsAnEventWhenATimeEntryIsDeleted() { var deleteSubject = new Subject <long>(); DataSource.TimeEntries.Created.Returns(Observable.Never <IThreadSafeTimeEntry>()); DataSource.TimeEntries.Updated.Returns(Observable.Never <EntityUpdate <IThreadSafeTimeEntry> >()); DataSource.TimeEntries.Deleted.Returns(deleteSubject); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeTimeEntry> >(); InteractorFactory.ObserveAllTimeEntriesVisibleToTheUser() .Execute() .Subscribe(observer); deleteSubject.OnNext(42); observer.Messages.Should().HaveCount(1); }
public void EmitsAnEventWhenAWorkspaceIsUpdated() { var updateSubject = new Subject <EntityUpdate <IThreadSafeWorkspace> >(); DataSource.Workspaces.Created.Returns(Observable.Never <IThreadSafeWorkspace>()); DataSource.Workspaces.Updated.Returns(updateSubject); DataSource.Workspaces.Deleted.Returns(Observable.Never <long>()); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeTimeEntry> >(); InteractorFactory.ObserveAllTimeEntriesVisibleToTheUser() .Execute() .Subscribe(observer); var mockWorkspace = new MockWorkspace { Id = 42 }; updateSubject.OnNext(new EntityUpdate <IThreadSafeWorkspace>(mockWorkspace.Id, mockWorkspace)); observer.Messages.Should().HaveCount(1); }