public async Task DoesntEmitIfWorkspacesDidntChange() { var createSubject = new Subject <IThreadSafeWorkspace>(); DataSource.Workspaces.Created.Returns(createSubject.AsObservable()); DataSource.Workspaces.Updated.Returns(Observable.Never <EntityUpdate <IThreadSafeWorkspace> >()); DataSource.Workspaces.Deleted.Returns(Observable.Never <long>()); var workspaces = Enumerable.Range(0, 10) .Select(id => new MockWorkspace { Id = id }); DataSource.Workspaces.GetAll().Returns(Observable.Return(workspaces)); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeWorkspace> >(); InteractorFactory.ObserveAllWorkspaces().Execute() .Subscribe(observer); createSubject.OnNext(new MockWorkspace { Id = 42 }); observer.Messages.Should().HaveCount(1); observer.Messages.First().Value.Value.Should().BeEquivalentTo(workspaces); }
public void GetsAllChangesToWorkspaces() { var itemsChangedSubject = new Subject <Unit>(); DataSource.Workspaces.ItemsChanged.Returns(itemsChangedSubject); var workspaces = Enumerable.Range(0, 10) .Select(id => new MockWorkspace { Id = id }); var workspaces2 = Enumerable.Range(20, 10) .Select(id => new MockWorkspace { Id = id }); DataSource.Workspaces.GetAll() .Returns( Observable.Return(workspaces), Observable.Return(workspaces2)); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeWorkspace> >(); InteractorFactory.ObserveAllWorkspaces().Execute() .Subscribe(observer); itemsChangedSubject.OnNext(Unit.Default); observer.Messages.Should().HaveCount(2); observer.Messages.First().Value.Value.Should().BeEquivalentTo(workspaces); observer.LastEmittedValue().Should().BeEquivalentTo(workspaces2); }
public void DoesntEmitIfWorkspacesDidntChange() { var itemsNeverChange = Observable.Never <Unit>(); DataSource.Workspaces.ItemsChanged.Returns(itemsNeverChange); var workspaces = Enumerable.Range(0, 10) .Select(id => new MockWorkspace { Id = id }); DataSource.Workspaces.GetAll().Returns(Observable.Return(workspaces)); var testScheduler = new TestScheduler(); var observer = testScheduler.CreateObserver <IEnumerable <IThreadSafeWorkspace> >(); InteractorFactory.ObserveAllWorkspaces().Execute() .Subscribe(observer); observer.Messages.Should().HaveCount(1); observer.Messages.First().Value.Value.Should().BeEquivalentTo(workspaces); }