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();
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }