コード例 #1
0
            public void ReturnsOnlyOneListIfItUsesTheMemoryCache(NonEmptyArray <NonNegativeInt> projectIds)
            {
                var actualProjectIds = projectIds.Get.Select(i => (long)i.Get).Distinct().ToArray();

                if (actualProjectIds.Length < 2)
                {
                    return;
                }

                ReportsMemoryCache = new ReportsMemoryCache();

                var projectsInDb  = actualProjectIds.Where((i, id) => i % 2 == 0).ToArray();
                var projectsInApi = actualProjectIds.Where((i, id) => i % 2 != 0).ToArray();
                var summaries     = getSummaryList(actualProjectIds);

                apiProjectsSummary.ProjectsSummaries.Returns(summaries);
                configureRepositoryToReturn(projectsInDb, projectsInApi);
                configureApiToReturn(projectsInApi);

                GetInteractor(workspaceId, DateTimeOffset.Now.AddDays(-7), DateTimeOffset.Now).Execute().Wait();
                var lists = GetInteractor(workspaceId, DateTimeOffset.Now.AddDays(-7), DateTimeOffset.Now)
                            .Execute()
                            .ToList()
                            .Wait();

                lists.Should().HaveCount(1);
            }
コード例 #2
0
        public GetProjectSummaryInteractor(
            ITogglApi api,
            ITogglDatabase database,
            IAnalyticsService analyticsService,
            ReportsMemoryCache memoryCache,
            long workspaceId,
            DateTimeOffset startDate,
            DateTimeOffset?endDate)
            : base(analyticsService)
        {
            Ensure.Argument.IsNotNull(api, nameof(api));
            Ensure.Argument.IsNotNull(database, nameof(database));

            projectsApi           = api.Projects;
            projectsRepository    = database.Projects;
            clientsRepository     = database.Clients;
            projectSummaryApi     = api.ProjectsSummary;
            timeEntriesReportsApi = api.TimeEntriesReports;

            this.endDate     = endDate;
            this.startDate   = startDate;
            this.workspaceId = workspaceId;
            this.memoryCache = memoryCache;
        }