Beispiel #1
0
        public static IEnumerable <object[]> GetAllCompleted_ReturnExpectedResult_Data()
        {
            var dates = DateTimeFactory.GetRandomDateTimes(10);

            var multimediaPerDay = new Dictionary <DateTime, IReadOnlyList <CompletedEnglishMultimedia> >();
            var tasksPerDay      = new Dictionary <DateTime, IReadOnlyList <CompletedEnglishTask> >();

            foreach (var date in dates)
            {
                multimediaPerDay[date] = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(1, 8), date: date);
                tasksPerDay[date]      = CompletedEnglishTaskFactory.GetSimpleModels(_random.Next(1, 8), date: date);
            }

            var allMultimedias = multimediaPerDay.SelectMany(x => x.Value).ToList();
            var allTasks       = tasksPerDay.SelectMany(x => x.Value).ToList();

            var expectedModels = new List <GroupedCompletedStatistic>();

            foreach (var date in dates)
            {
                var statisticDate  = new StatisticDate(date.Day, date.Month, date.Year);
                var completedByDay = multimediaPerDay[date]
                                     .OfType <CompletedStatistic>()
                                     .Concat(tasksPerDay[date])
                                     .ToList();

                var groupedCompletedStatistic = new GroupedCompletedStatistic(statisticDate, completedByDay);
                expectedModels.Add(groupedCompletedStatistic);
            }

            yield return(new object[] { allMultimedias, allTasks, expectedModels });
        }
Beispiel #2
0
        public static IEnumerable <object[]> GetPerDayForLastMonthStatistic_ReturnExpectedResult_Data()
        {
            var userId = Guid.NewGuid();
            var dates  = DateTimeFactory.GetDateSequence(DateTime.Now, 60);

            var videosPerDay = new Dictionary <DateTime, IReadOnlyList <CompletedEnglishMultimedia> >();
            var textsPerDay  = new Dictionary <DateTime, IReadOnlyList <CompletedEnglishMultimedia> >();
            var tasksPerDay  = new Dictionary <DateTime, IReadOnlyList <CompletedEnglishTask> >();

            foreach (var date in dates)
            {
                videosPerDay[date] = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(1, 5), date: date, multimediaType: MultimediaType.Video);
                textsPerDay[date]  = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(1, 5), date: date, multimediaType: MultimediaType.Text);
                tasksPerDay[date]  = CompletedEnglishTaskFactory.GetSimpleModels(_random.Next(1, 5), date: date);
            }

            var allMultimedias = videosPerDay
                                 .SelectMany(x => x.Value)
                                 .Concat(textsPerDay.SelectMany(x => x.Value))
                                 .ToList();
            var allTasks = tasksPerDay.SelectMany(x => x.Value).ToList();

            var expectedModels = new List <PerDayStatistic>();

            for (var i = 0; i < 31; i++)
            {
                var date            = dates[i];
                var statisticDate   = new StatisticDate(date.Day, date.Month, date.Year);
                var perDayStatistic = new PerDayStatistic()
                {
                    Date = new StatisticDate(date.Day, date.Month, date.Year),
                    CompletedTasksCount = tasksPerDay[date].Count,
                    CompletedTextCount  = textsPerDay[date].Count,
                    CompletedVideoCount = videosPerDay[date].Count,
                };

                expectedModels.Add(perDayStatistic);
            }

            yield return(new object[] { allMultimedias, allTasks, expectedModels });
        }
 public GroupedCompletedStatistic(StatisticDate date, IReadOnlyList <CompletedStatistic> completedStatistics)
 {
     Date = date;
     CompletedStatistics = completedStatistics;
 }
 public static StatisticDateModel GetApplicationModel(StatisticDate domainModel)
 {
     return(new StatisticDateModel(domainModel.Day, domainModel.Month, domainModel.Year));
 }