예제 #1
0
        public LessonsServiceTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <EducationHubDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dbCntext = new EducationHubDbContext(optionsBuilder.Options);

            dbCntext.Database.EnsureDeleted();
            dbCntext.Database.EnsureCreated();

            this.lessonsRepository = new EfDeletableEntityRepository <Lesson>(dbCntext);

            this.lessonsService = new LessonsService(this.lessonsRepository);

            this.lesson = new Lesson
            {
                Title       = "Test",
                Description = "Test",
                VideoUrl    = "Test",
                UserId      = "Test",
                CategoryId  = 1,
            };

            AutoMapperConfig.RegisterMappings(typeof(PostModel).GetTypeInfo().Assembly);
        }
예제 #2
0
        public async Task SeedAsync(EducationHubDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(EducationHubDbContextSeeder));

            var seeders = new List <ISeeder>
            {
                new RolesSeeder(),
                new AdminUserSeeder(),
                new CategoriesSeeder(),
            };

            foreach (var seeder in seeders)
            {
                await seeder.SeedAsync(dbContext, serviceProvider);

                await dbContext.SaveChangesAsync();

                logger.LogInformation($"Seeder {seeder.GetType().Name} done.");
            }
        }
예제 #3
0
        public VotesServiceTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <EducationHubDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dbContext = new EducationHubDbContext(optionsBuilder.Options);

            this.votesRepository = new EfRepository <Vote>(dbContext);

            this.votesService = new VotesService(this.votesRepository);
        }
예제 #4
0
        public PostsServiceTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <EducationHubDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dbCntext = new EducationHubDbContext(optionsBuilder.Options);

            dbCntext.Database.EnsureDeleted();
            dbCntext.Database.EnsureCreated();

            this.postsRepository = new EfRepository <Post>(dbCntext);

            this.postsService = new PostsService(this.postsRepository);

            AutoMapperConfig.RegisterMappings(typeof(PostModel).GetTypeInfo().Assembly);
        }
예제 #5
0
        public async Task SeedAsync(EducationHubDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext.Categories.Any())
            {
                return;
            }

            var user = dbContext.Users.FirstOrDefault(u => u.Email == GlobalConstants.AdministratorEmail);

            var categories = new List <Category>
            {
                new Category
                {
                    Name       = "Programing Languages",
                    UserId     = user.Id,
                    PictureUrl = "https://res.cloudinary.com/dgw65zfwf/image/upload/v1605711654/EducationHub/Categories/Best-Programming-Languages-to-Start-Learning-Today_tyaj6n.jpg",
                },
                new Category
                {
                    Name       = "Basic Math",
                    UserId     = user.Id,
                    PictureUrl = "https://res.cloudinary.com/dgw65zfwf/image/upload/v1605711703/EducationHub/Categories/maxresdefault_tvvi97.jpg",
                },
                new Category
                {
                    Name       = "Geography",
                    UserId     = user.Id,
                    PictureUrl = "https://res.cloudinary.com/dgw65zfwf/image/upload/v1605711726/EducationHub/Categories/geogImg_r_qshnjy.jpg",
                },
                new Category
                {
                    Name       = "Chemistry",
                    UserId     = user.Id,
                    PictureUrl = "https://res.cloudinary.com/dgw65zfwf/image/upload/v1605711749/EducationHub/Categories/chemistry_logo_yr5fqx.jpg",
                },
            };

            await dbContext.Categories.AddRangeAsync(categories);
        }
예제 #6
0
        public CommentsServiceTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <EducationHubDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dbCntext = new EducationHubDbContext(optionsBuilder.Options);

            dbCntext.Database.EnsureDeleted();
            dbCntext.Database.EnsureCreated();

            this.commentsRepository = new EfDeletableEntityRepository <Comment>(dbCntext);

            this.commentsService = new CommentsService(this.commentsRepository);

            this.comment = new Comment
            {
                Content  = "test",
                ParentId = 1,
                PostId   = 12,
                UserId   = "test",
            };
        }
예제 #7
0
        public async Task SeedAsync(EducationHubDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext.Users.Any(u => u.Email == GlobalConstants.AdministratorEmail))
            {
                return;
            }

            var userManager = serviceProvider.GetRequiredService <UserManager <User> >();

            var user = new User
            {
                Email    = GlobalConstants.AdministratorEmail,
                UserName = GlobalConstants.AdministratorEmail,
            };

            var password = GlobalConstants.AdministratorPassword;

            await userManager.CreateAsync(user, password);

            await dbContext.Users.AddAsync(user);

            await userManager.AddToRoleAsync(user, GlobalConstants.AdministratorRoleName);
        }
예제 #8
0
        public CategoriesServiceTests()
        {
            var optionsBuilder = new DbContextOptionsBuilder <EducationHubDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dbCntext = new EducationHubDbContext(optionsBuilder.Options);

            dbCntext.Database.EnsureDeleted();
            dbCntext.Database.EnsureCreated();

            this.categoriesRepository = new EfDeletableEntityRepository <Category>(dbCntext);

            this.categoriesService = new CategoriesService(this.categoriesRepository);

            this.category = new Category
            {
                Name       = "Test",
                PictureUrl = "Test",
                UserId     = "test",
            };

            AutoMapperConfig.RegisterMappings(typeof(PostModel).GetTypeInfo().Assembly);
        }
예제 #9
0
 public EfDeletableEntityRepository(EducationHubDbContext context)
     : base(context)
 {
 }
예제 #10
0
        public async Task SeedAsync(EducationHubDbContext dbContext, IServiceProvider serviceProvider)
        {
            var roleManager = serviceProvider.GetRequiredService <RoleManager <Role> >();

            await SeedRoleAsync(roleManager, GlobalConstants.AdministratorRoleName);
        }
예제 #11
0
 public EfRepository(EducationHubDbContext context)
 {
     this.Context = context ?? throw new ArgumentNullException(nameof(context));
     this.DbSet   = this.Context.Set <TEntity>();
 }