Exemplo n.º 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 });
        }
        public static IEnumerable <object[]> GetPerTextTypeStatistic_ReturnExpectedResult_Data()
        {
            var textTypes = ContentTypeFactory.TextContentTypes;

            var multimediaPerTextType = new Dictionary <string, IReadOnlyList <CompletedEnglishMultimedia> >();

            foreach (var textType in textTypes)
            {
                multimediaPerTextType[textType] = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(1, 8), multimediaType: MultimediaType.Text, contentType: textType);
            }

            var allMultimedias = multimediaPerTextType
                                 .SelectMany(x => x.Value)
                                 .Concat(CompletedEnglishMultimediaFactory.GetSimpleModels(10, multimediaType: MultimediaType.Video))
                                 .ToList();

            var expectedModels = new List <PerMultimediaContentTypeStatistic>();

            foreach (var textType in textTypes)
            {
                var levelStatistic = new PerMultimediaContentTypeStatistic(textType, multimediaPerTextType[textType].Count);
                expectedModels.Add(levelStatistic);
            }

            yield return(new object[] { allMultimedias, expectedModels });
        }
        public static EnglishMultimediaStatistic GetModel(Guid userId)
        {
            var completedEnglishMultimedia = CompletedEnglishMultimediaFactory.GetSimpleModels(20, userId);
            var multimediaStatistic        = new EnglishMultimediaStatistic(completedEnglishMultimedia);

            return(multimediaStatistic);
        }
        public static UserStatisticAggregate GetModel(Guid userId)
        {
            var completedEnglishMultimedia = CompletedEnglishMultimediaFactory.GetSimpleModels(20, userId);
            var completedTasks             = CompletedEnglishTaskFactory.GetSimpleModels(20, userId);
            var taskStatistic       = new EnglishTaskStatistic(completedTasks);
            var multimediaStatistic = new EnglishMultimediaStatistic(completedEnglishMultimedia);

            var userStatisticAggregate = new UserStatisticAggregate(userId, multimediaStatistic, taskStatistic);

            return(userStatisticAggregate);
        }
Exemplo n.º 5
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 static IEnumerable <object[]> GetMultimediaPerEnglishLevelStatistic_ReturnExpectedResult_Data()
        {
            var englishLevels = EnglishLevelFactory.EnglishLevels;

            var multimediaPerLevel = new Dictionary <string, IReadOnlyList <CompletedEnglishMultimedia> >();

            foreach (var englishLevel in englishLevels)
            {
                multimediaPerLevel[englishLevel] = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(1, 8), englishLevel: englishLevel);
            }

            var allMultimedias = multimediaPerLevel.SelectMany(x => x.Value).ToList();

            var expectedModels = new List <PerEnglishLevelStatistic>();

            foreach (var englishLevel in englishLevels)
            {
                var levelStatistic = new PerEnglishLevelStatistic(englishLevel, multimediaPerLevel[englishLevel].Count);
                expectedModels.Add(levelStatistic);
            }

            yield return(new object[] { allMultimedias, expectedModels });
        }
        public static IEnumerable <object[]> GetFullStatistic_ReturnExpectedResult_Data()
        {
            var userId = Guid.NewGuid();
            var completedEnglishTask       = CompletedEnglishTaskFactory.GetSimpleModels(_random.Next(15, 25), userId);
            var completedEnglishMultimedia = CompletedEnglishMultimediaFactory.GetSimpleModels(_random.Next(15, 25), userId);

            var englishTaskStatistic       = new EnglishTaskStatistic(completedEnglishTask);
            var englishMultimediaStatistic = new EnglishMultimediaStatistic(completedEnglishMultimedia);
            var generalStatistic           = new GeneralStatistic(completedEnglishMultimedia, completedEnglishTask);

            var expectedFullStatistic = new FullStatistic
            {
                GroupedCompletedStatistic           = generalStatistic.GetAllCompleted(),
                PerDayStatistic                     = generalStatistic.GetPerDayForLastMonthStatistic(),
                PerTasksEnglishLevelsStatistic      = englishTaskStatistic.GetTasksPerEnglishLevelStatistic(),
                TasksCorrectnessStatistic           = englishTaskStatistic.GetTasksCorrectnessStatistic(),
                PerMultimediaEnglishLevelsStatistic = englishMultimediaStatistic.GetMultimediaPerEnglishLevelStatistic(),
                PerTextTypeStatistic                = englishMultimediaStatistic.GetPerTextTypeStatistic(),
                PerVideoTypeStatistic               = englishMultimediaStatistic.GetPerVideoTypeStatistic(),
            };

            yield return(new object[] { userId, englishMultimediaStatistic, englishTaskStatistic, expectedFullStatistic });
        }