public async Task GetIfHasNoTimeWithCategory_should_return_runner_with_category_with_given_chipId() { var databaseName = nameof(GetIfHasNoTimeWithCategory_should_return_runner_with_category_with_given_chipId); var options = new DbContextOptionsBuilder <RunnerDbContext>() .UseSqlServer(string.Format(TestConfiguration.ConnectionString, databaseName)) .Options; using (var context = new RunnerDbContext(options)) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); await context.Runners.AddAsync(new Runner { ChipId = "4329085723", Firstname = "Firstname", Lastname = "Lastname", Gender = Gender.Mann, YearOfBirth = 2000, TimeAtDestination = null, Category = new Category { Name = "The Name of the Category" } }); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var repository = new RunnerRepository(context); var result = repository.GetIfHasNoTimeWithCategory("4329085723"); Assert.NotNull(result); Assert.NotNull(result.Category); Assert.Equal("Firstname", result.Firstname); Assert.Equal("Lastname", result.Lastname); Assert.Equal(Gender.Mann, result.Gender); Assert.Equal(Gender.Mann, result.Gender); Assert.Equal("The Name of the Category", result.Category.Name); } using (var context = new RunnerDbContext(options)) await context.Database.EnsureDeletedAsync(); }
public async Task GetIfHasNoTimeWithCategory_should_return_null_for_given_chipId_because_runners_timeAtDestiantion_is_not_null() { var databaseName = nameof(GetIfHasNoTimeWithCategory_should_return_null_for_given_chipId_because_runners_timeAtDestiantion_is_not_null); var options = new DbContextOptionsBuilder <RunnerDbContext>() .UseSqlServer(string.Format(TestConfiguration.ConnectionString, databaseName)) .Options; using (var context = new RunnerDbContext(options)) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); await context.Runners.AddAsync(new Runner { ChipId = "4329085723", Firstname = "Firstname", Lastname = "Lastname", Gender = Gender.Mann, YearOfBirth = 2000, TimeAtDestination = new DateTime(2017, 10, 12, 12, 00, 00), Category = new Category { Name = "The Name of the Category", } }); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var repository = new RunnerRepository(context); var result = repository.GetIfHasNoTimeWithCategory("4329085723"); Assert.Null(result); } using (var context = new RunnerDbContext(options)) await context.Database.EnsureDeletedAsync(); }
public async Task CRUD_Operations_for_Runners_Async() { var options = new DbContextOptionsBuilder <RunnerDbContext>() .UseInMemoryDatabase("CRUD_Operations_for_Runners") .Options; using (var context = new RunnerDbContext(options)) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); var categories = new[] { new Category { Name = "Category1" }, new Category { Name = "Category2" }, new Category { Name = "Category3" }, }; await context.Categories.AddRangeAsync(categories); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var categories = await context.Categories.ToListAsync(); var runners = new[] { new Runner { Firstname = "Ein Vorname", Lastname = "Ein Nachname", Gender = Gender.Mann, YearOfBirth = 1980, Category = categories[0] }, new Runner { Firstname = "Ein anderer Vorname", Lastname = "Ein anderer Nachname", Gender = Gender.Frau, YearOfBirth = 1990, Category = categories[1] }, new Runner { Firstname = "Noch ein anderer Vorname", Lastname = "noch ein anderer Nachname", Gender = Gender.Mann, YearOfBirth = 2000, Category = categories[2] } }; await context.Runners.AddRangeAsync(runners); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var runners = await context.Runners.ToListAsync(); Assert.Equal(3, runners.Count); Assert.Equal(1980, runners[0].YearOfBirth); Assert.Equal("Ein anderer Vorname", runners[1].Firstname); Assert.Equal(Gender.Mann, runners[2].Gender); context.Runners.RemoveRange(runners); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var countRunners = await context.Runners.CountAsync(); Assert.Equal(0, countRunners); } }
public async Task CRUD_Operations_for_Categories_Async() { var options = new DbContextOptionsBuilder <RunnerDbContext>() .UseInMemoryDatabase("CRUD_Operations_for_Categories_Async") .Options; using (var context = new RunnerDbContext(options)) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); var categories = new[] { new Category { Name = "Category1" }, new Category { Name = "Category2" }, new Category { Name = "Category3" }, }; await context.Categories.AddRangeAsync(categories); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var categories = await context.Categories.ToListAsync(); Assert.Equal(3, categories.Count); Assert.Equal("Category2", categories[1].Name); Assert.Null(categories[1].Starttime); categories[0].Name = "New Category Name Number 1"; categories[2].Name = "Whatever"; await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var categories = await context.Categories.ToListAsync(); Assert.Equal(3, categories.Count); Assert.Equal("New Category Name Number 1", categories[0].Name); Assert.Equal("Whatever", categories[2].Name); context.Remove(categories[1]); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var categories = await context.Categories.ToListAsync(); Assert.Equal(2, categories.Count); context.Categories.RemoveRange(categories); await context.SaveChangesAsync(); } using (var context = new RunnerDbContext(options)) { var countCategories = await context.Categories.CountAsync(); Assert.Equal(0, countCategories); } }