Exemplo n.º 1
0
        public async Task ReturnsSuccessTransitionWhenItDeletesSomeProjects()
        {
            var project = new MockProject {
                Id = 123, SyncStatus = SyncStatus.RefetchingNeeded
            };

            projectsDataSource.GetAll(Arg.Any <Func <IDatabaseProject, bool> >())
            .Returns(Observable.Return(new[] { project }));
            timeEntriesDataSource.GetAll(Arg.Any <Func <IDatabaseTimeEntry, bool> >())
            .Returns(Observable.Return(new IThreadSafeTimeEntry[0]));

            var transition = await state.Start();

            transition.Result.Should().Be(state.FinishedDeleting);
        }
Exemplo n.º 2
0
 public IObservable <ITransition> Start()
 => projectsDataSource.GetAll(project => project.SyncStatus == SyncStatus.RefetchingNeeded)
 .SelectMany(CommonFunctions.Identity)
 .SelectMany(notReferencedByAnyTimeEntryOrNull)
 .Where(project => project != null)
 .ToList()
 .SelectMany(projectsDataSource.DeleteAll)
 .Select(FinishedDeleting.Transition());
Exemplo n.º 3
0
        public async Task ReturnsSuccessResultWhenTimeEntriesDoNotHaveProjectsOrTheProjectsAreInTheDatabase()
        {
            var fetchObservables = fetch(new MockTimeEntry {
                ProjectId = null
            }, new MockTimeEntry {
                ProjectId = 123
            });

            dataSource.GetAll(Arg.Any <Func <IDatabaseProject, bool> >())
            .Returns(Observable.Return <IEnumerable <IThreadSafeProject> >(new[] { new MockProject() }));

            var transition = await state.Start(fetchObservables);

            transition.Result.Should().Be(state.FinishedPersisting);
        }
 private IObservable <IGrouping <long, IThreadSafeProject> > getProjectsWhichNeedsRefetching()
 => dataSource.GetAll(project =>
                      project.SyncStatus == SyncStatus.RefetchingNeeded && project.At < yesterdayThisTime)
 .SelectMany(projects =>
             projects.GroupBy(project => project.WorkspaceId).OrderBy(group => group.Key))
 .FirstOrDefaultAsync();
Exemplo n.º 5
0
 private void setStoredProjects(params IThreadSafeProject[] projects)
 {
     dataSource.GetAll(Arg.Any <Func <IDatabaseProject, bool> >())
     .Returns(callInfo => Observable.Return(
                  projects.Where <IThreadSafeProject>(callInfo.Arg <Func <IDatabaseProject, bool> >())));
 }
 private IObservable <bool> needsGhostProject(ITimeEntry timeEntry)
 => timeEntry.ProjectId.HasValue
         ? dataSource.GetAll(project => project.Id == timeEntry.ProjectId.Value)
 .SingleAsync()
 .Select(projects => projects.None())
         : Observable.Return(false);
 public GetProjectsAutocompleteSuggestionsInteractorTests()
 {
     dataSource.GetAll(Arg.Any <Func <IDatabaseProject, bool> >())
     .Returns(callInfo => Observable.Return(Projects.Where(callInfo.Arg <Func <IThreadSafeProject, bool> >())));
 }
 private IObservable <IEnumerable <IThreadSafeProject> > getAllProjects()
 => dataSource.GetAll(project => project.Active);