Example #1
0
        public async Task UsersCountOverMonth_ThereIsDescreteData_ShouldReturn31Element()
        {
            var userRepo = new Mock <IRepository <string, AppUser> >();
            var getter   = new UserStatsGetter(userRepo.Object);
            var users    = new List <AppUser>
            {
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-2),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-2),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-2),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-5),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-30),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-30),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-31),
                },
                new AppUser
                {
                    CreatedAt = DateTime.UtcNow.AddDays(-40),
                },
            };

            userRepo.Setup(u => u.Table).Returns(users.AsQueryable());

            var result = await getter.GetUsersCountOverMonth();

            Assert.IsTrue(result.Count == 31 && result[0].Count == 2 && result[25].Count == 1 && result[28].Count == 3);
        }