Example #1
0
            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);
            }
Example #2
0
            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);
            }
Example #3
0
            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);
            }