public static DevQuizDbContext EnsureDb(this DevQuizDbContext context) { context.Database.EnsureDeleted(); context.Database.EnsureCreated(); return(context); }
public DevQuizContextSeedDataHelper() { ContextOptions = new DbContextOptionsBuilder <DevQuizDbContext>() .UseSqlite(CreateInMemoryDatabase()) .Options; _connection = RelationalOptionsExtension.Extract(ContextOptions).Connection; using var context = new DevQuizDbContext(ContextOptions); context.EnsureDb(); }
public async Task UserRepository_UpdateUser() { //Arrange //create context await using var devQuizContext = new DevQuizDbContext(this.ContextOptions); //Create several entities await devQuizContext.SeedUsers(3) .CommitAsync(); //create user repo instance var userRepository = new UserRepository <User, Guid>(devQuizContext); //prepare user entity var userToAdd = new User { FirstName = "FirstName", LastName = "LastName", UserName = "******" }; var createResult = await userRepository.CreateAsync(userToAdd); await userRepository.UnitOfWork.SaveChangesAsync(); var findUserAfterSave = await userRepository.GetOneAsync(createResult.Id); findUserAfterSave.FirstName = "UpdatetFirstName"; findUserAfterSave.LastName = "UpdatetLastName"; findUserAfterSave.UserName = "******"; //Act var updatedUser = userRepository.Update(findUserAfterSave); var saveResult = await userRepository.UnitOfWork.SaveChangesAsync(); var findUserAfterUpdate = await userRepository.GetOneAsync(findUserAfterSave.Id); //Assert Assert.NotNull(updatedUser); Assert.Equal(findUserAfterSave.UserName, findUserAfterUpdate.UserName); Assert.Equal(findUserAfterSave.FirstName, findUserAfterUpdate.FirstName); Assert.Equal(findUserAfterSave.LastName, findUserAfterUpdate.LastName); Assert.Equal(findUserAfterSave.Id, findUserAfterUpdate.Id); Assert.Equal(DateTime.Now.Date, findUserAfterUpdate.CreatedTime.Date); Assert.Equal(DateTime.Now.Date, findUserAfterUpdate.CreatedTime.Date); }
public static DevQuizDbContext SeedUsers(this DevQuizDbContext context, int usersCount) { var usersDbSet = context.Users; for (var i = 1; i <= usersCount; i++) { var tempUserId = Guid.NewGuid(); var tempUserEntity = new User { Id = tempUserId, UserName = $"UserName_{tempUserId}", FirstName = $"FirstName_{tempUserId}", LastName = $"LastName_{tempUserId}", CreatedTime = DateTime.Now, UpdatedTime = DateTime.Now }; usersDbSet.Add(tempUserEntity); } return(context); }
public async Task UserRepository_DeleteUser_NullAfterDeleteSuccess_ThrowDbUpdateConcurrencyExceptionWhiteRepeatDelete() { //Arrange //create context await using var devQuizContext = new DevQuizDbContext(this.ContextOptions); //Create several entities await devQuizContext.SeedUsers(3) .CommitAsync(); //create user repo instance var userRepository = new UserRepository <User, Guid>(devQuizContext); //prepare user entity var userToAdd = new User { FirstName = "FirstName", LastName = "LastName", UserName = "******" }; var createResult = await userRepository.CreateAsync(userToAdd); await userRepository.UnitOfWork.SaveChangesAsync(); var findUserAfterSave = await userRepository.GetOneAsync(createResult.Id); //Act userRepository.Delete(findUserAfterSave); await userRepository.UnitOfWork.SaveChangesAsync(); var fingDeletedUser = await userRepository.GetOneAsync(findUserAfterSave.Id); userRepository.Delete(findUserAfterSave); await Assert.ThrowsAsync <DbUpdateConcurrencyException>(() => userRepository.UnitOfWork.SaveChangesAsync()); //Assert Assert.Null(fingDeletedUser); }
/// <summary> /// Constructor /// </summary> /// <param name="dbContext">instance of DevQuizDbContext</param> public QuestionRepository(DevQuizDbContext dbContext) : base(dbContext: dbContext) { _dbContext = dbContext; }
public static async Task CommitAsync(this DevQuizDbContext context) { await context.SaveChangesAsync(); }
public static void Commit(this DevQuizDbContext context) { context.SaveChanges(); }
/// <summary> /// Constructor /// </summary> /// <param name="dbContext">DevQuizDbContext instance</param> /// <param name="logger">Logger instance</param> public UserRepository(DevQuizDbContext dbContext, ILogger <UserRepository <TUser, TKey> > logger = null) : base(dbContext: dbContext) { _devQuizDbContext = dbContext; _logger = logger ?? NullLogger <UserRepository <TUser, TKey> > .Instance; }