public async Task GetListTest() { var connection = CreateSqLiteConnection(); connection.Open(); try { var options = SetDbContextOptionsBuilder(connection); await using var context = new CustomerMngtContext(options); Assert.True(await context.Database.EnsureCreatedAsync()); //Arrange var customerOne = new CustomerMngt.Domain.Entities.Customer { Password = "******", Email = "*****@*****.**", Surname = "Surname1", FirstName = "FirstName1", Updated = DateTime.Now, Created = DateTime.Now }; var customerTwo = new CustomerMngt.Domain.Entities.Customer { Password = "******", Email = "*****@*****.**", Surname = "Surname2", FirstName = "FirstName2", Updated = DateTime.Now, Created = DateTime.Now }; //Act var repository = new CustomerRepository(context); repository.Add(customerOne); repository.Add(customerTwo); await repository.SaveChangesAsync(); //Assert var filter = new CustomerFilter { Email = "test" }; var result = await repository.GetListByFilterAsync(filter); Assert.Equal(2, result.Count); } finally { connection.Close(); } }
public async Task DeleteTest() { var connection = CreateSqLiteConnection(); connection.Open(); try { var options = SetDbContextOptionsBuilder(connection); await using var context = new CustomerMngtContext(options); Assert.True(await context.Database.EnsureCreatedAsync()); //Arrange var newCustomer = new CustomerMngt.Domain.Entities.Customer { Password = "******", Email = "*****@*****.**", Surname = "Surname1", FirstName = "FirstName1", Updated = DateTime.Now, Created = DateTime.Now }; //Act var repository = new CustomerRepository(context); repository.Add(newCustomer); await repository.SaveChangesAsync(); var filterStored = new CustomerFilter { Id = newCustomer.Id }; var storedCustomer = await repository.GetByFilterAsync(filterStored); repository.Remove(storedCustomer); await repository.SaveChangesAsync(); //Assert var filterNonExistentUser = new CustomerFilter { Id = newCustomer.Id }; var nonExistentUser = await repository.GetByFilterAsync(filterNonExistentUser); Assert.Null(nonExistentUser); } finally { connection.Close(); } }
public static async Task Populate(CustomerMngtContext dbContext) { await dbContext.Customers.AddAsync(new CustomerMngt.Domain.Entities.Customer { Email = "*****@*****.**", Password = "******", FirstName = "Seed", Surname = "Seed", Created = DateTime.Now, Updated = DateTime.Now }); await dbContext.SaveChangesAsync(); }
public async Task DuplicatedEmailTest() { var connection = CreateSqLiteConnection(); connection.Open(); try { var options = SetDbContextOptionsBuilder(connection); await using var context = new CustomerMngtContext(options); Assert.True(await context.Database.EnsureCreatedAsync()); //Arrange var customerOne = new CustomerMngt.Domain.Entities.Customer { Password = "******", Email = "*****@*****.**", Surname = "Surname1", FirstName = "FirstName1", Created = DateTime.Now }; var customerTwo = new CustomerMngt.Domain.Entities.Customer { Password = "******", Email = "*****@*****.**", Surname = "Surname2", FirstName = "FirstName2", Created = DateTime.Now }; //Act var repository = new CustomerRepository(context); repository.Add(customerOne); await repository.SaveChangesAsync(); //Assert repository.Add(customerTwo); var exception = await Assert.ThrowsAsync <DbUpdateException>(() => repository.SaveChangesAsync()); Assert.NotNull(exception); } finally { connection.Close(); } }
public RepositoryBase(CustomerMngtContext context) { DbContext = context; DbSet = DbContext.Set <TEntity>(); }
public CustomerRepository(CustomerMngtContext context) : base(context) { }