Esempio n. 1
0
            public async Task ReturnsOnlyOnceEvenWhenMultipleWorkspacesAreInaccessible()
            {
                var workspaces = new[]
                {
                    new MockWorkspace {
                        Id = 1, IsInaccessible = false
                    },
                    new MockWorkspace {
                        Id = 2, IsInaccessible = true
                    },
                    new MockWorkspace {
                        Id = 3, IsInaccessible = true
                    },
                    new MockWorkspace {
                        Id = 4, IsInaccessible = true
                    },
                };

                dataSource.Workspaces.GetAll(Arg.Any <Func <IDatabaseWorkspace, bool> >(), Arg.Is(true))
                .Returns(callInfo =>
                {
                    var predicate         = callInfo[0] as Func <IDatabaseWorkspace, bool>;
                    var filteredWorkspace = workspaces.Where(predicate);
                    return(Observable.Return(filteredWorkspace.Cast <IThreadSafeWorkspace>()));
                });

                var state      = new TrackInaccessibleWorkspacesAfterCleanUpState(dataSource, analyticsService);
                var transition = await state.Start().SingleAsync();

                transition.Result.Should().Be(state.Done);
            }
Esempio n. 2
0
            public async Task TracksInaccessibleWorkspaces()
            {
                var workspaces = new[] {
                    inaccessibleWorkspace,
                    accessibleWorkspace
                };

                dataSource.Workspaces.GetAll(Arg.Any <Func <IDatabaseWorkspace, bool> >(), Arg.Is(true))
                .Returns(callInfo =>
                {
                    var predicate         = callInfo[0] as Func <IDatabaseWorkspace, bool>;
                    var filteredWorkspace = workspaces.Where(predicate);
                    return(Observable.Return(filteredWorkspace.Cast <IThreadSafeWorkspace>()));
                });

                var state = new TrackInaccessibleWorkspacesAfterCleanUpState(dataSource, analyticsService);

                var transition = await state.Start();

                analyticsService.WorkspacesInaccesibleAfterCleanUp.Received().Track(1);
            }