public void FiresACallToLoadReports(DateTimeOffset now)
            {
                var date = now.Date;

                TimeService.CurrentDateTime.Returns(now);
                var expectedStartDate = date.AddDays(1 - (int)date.DayOfWeek);

                ViewModel.Prepare(WorkspaceId);

                ViewModel.Initialize().Wait();

                ReportsProvider.Received().GetProjectSummary(
                    WorkspaceId, expectedStartDate, expectedStartDate.AddDays(6));
            }
            public async Task ShouldTriggerReloadForEveryAppearance(int numberOfAppearances)
            {
                TimeService.CurrentDateTime.Returns(DateTimeOffset.Now);
                ReportsProvider.GetProjectSummary(Arg.Any <long>(), Arg.Any <DateTimeOffset>(),
                                                  Arg.Any <DateTimeOffset>())
                .ReturnsForAnyArgs(Observable.Empty <ProjectSummaryReport>(SchedulerProvider.TestScheduler));
                await ViewModel.Initialize();

                ViewModel.ViewAppeared(); // First call is skipped

                for (int i = 0; i < numberOfAppearances; ++i)
                {
                    ViewModel.ViewAppeared();
                }
                TestScheduler.Start();

                ReportsProvider.Received(numberOfAppearances).GetProjectSummary(Arg.Any <long>(), Arg.Any <DateTimeOffset>(),
                                                                                Arg.Any <DateTimeOffset>());
            }
            public async Task ShouldTriggerAReportReload()
            {
                TimeService.CurrentDateTime.Returns(DateTimeOffset.Now);
                await ViewModel.Initialize();

                TestScheduler.Start();

                var mockWorkspace = new MockWorkspace {
                    Id = WorkspaceId + 1
                };

                DialogService.Select(Arg.Any <string>(), Arg.Any <IEnumerable <(string, IThreadSafeWorkspace)> >(), Arg.Any <int>())
                .Returns(Observable.Return(mockWorkspace));

                ViewModel.SelectWorkspace.Execute();
                TestScheduler.Start();

                await ReportsProvider.Received().GetProjectSummary(Arg.Is(mockWorkspace.Id), Arg.Any <DateTimeOffset>(),
                                                                   Arg.Any <DateTimeOffset>());
            }