public void Add_SavesToDatabase()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "AddProfession_ToDb")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var professionToAdd = new AddProfessionInputModel()
                {
                    Name             = "ProfessionAdd",
                    UsableWeaponType = WeaponType.Axe.ToString(),
                    CombatType       = CombatType.Melee.ToString(),
                    ClassRole        = ClassRole.Damage.ToString()
                };

                var service = new ProfessionsService(context);
                service.Add(professionToAdd);

                var expectedProfession = new Profession()
                {
                    Name = professionToAdd.Name
                };

                Assert.NotEmpty(context.Professions);
                Assert.Equal(expectedProfession.Name, context.Professions.First().Name);
            }
        }
        public void All_WithData_ReturnsSameData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_WithProfessions")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);

                var professions = new List <Profession>
                {
                    new Profession()
                    {
                        Name = "1",
                    },
                    new Profession()
                    {
                        Name = "2",
                    },
                    new Profession()
                    {
                        Name = "3",
                    }
                };

                context.Professions.AddRange(professions);
                context.SaveChanges();

                Assert.Equal(3, service.All().Count);
            }
        }
        public void ByName_WithProfession_ReturnsProfession()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "ForByName_WithProfession")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);

                var professionName = "Prof Name";

                var profession = new Profession()
                {
                    Name = professionName
                };

                context.Professions.Add(profession);
                context.SaveChanges();

                var professionFromDb = service.ByName(professionName);

                Assert.Equal(profession.Name, professionFromDb.Name);
            }
        }
        public void ById_WithNoProfessions_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoProfessions_ForById")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);
                Assert.Null(service.ById(1));
            }
        }
        public void All_WithNoData_ReturnsNoData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoProfessions_Db")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);
                Assert.Equal(0, service.All().Count);
            }
        }
        public void Delete_NoData_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoProfessions_ForDelete")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);
                Assert.False(service.Delete(2));
            }
        }
        public void AddProfessionToRace_AddsDataProperly()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForAddProfToRace")
                          .Options;

            var professionName = "Prof Name";

            using (var context = new GameInfoContext(options))
            {
                var race = new Race()
                {
                    Name        = "race",
                    Description = "none"
                };

                var profession = new Profession()
                {
                    Name         = professionName,
                    ClassRole    = ClassRole.Damage,
                    CombatType   = CombatType.Mage,
                    UsableWeapon = WeaponType.Staff
                };

                context.Races.Add(race);
                context.Professions.Add(profession);
                context.SaveChanges();
            }

            using (var context = new GameInfoContext(options))
            {
                var raceFromDb = context.Races.First();

                var profService = new ProfessionsService(context);
                var service     = new RacesService(context, profService);

                var model = new AddProfessionToRaceInputModel()
                {
                    RaceId         = raceFromDb.Id,
                    ProfessionName = professionName
                };

                Assert.True(service.AddProfessionToRace(model));
            }
        }
        public async Task RemoveRace_WithData_RemovesFromProfession()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "WithRaceInProf_ForRemoveRace")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var profession = new Profession()
                {
                    Name = "ProfWithRace"
                };

                var race = new Race()
                {
                    Name = "RaceWithProf"
                };

                context.Professions.Add(profession);
                context.Races.Add(race);
                await context.SaveChangesAsync();

                var profFromDb = context.Professions.First();
                var raceFromDb = context.Races.First();

                var raceProfession = new RaceProfession()
                {
                    Race         = raceFromDb,
                    RaceId       = raceFromDb.Id,
                    Profession   = profFromDb,
                    ProfessionId = profFromDb.Id
                };

                profFromDb.Races.Add(raceProfession);

                await context.SaveChangesAsync();

                var service = new ProfessionsService(context);
                await service.RemoveRace(profFromDb, raceFromDb);

                Assert.DoesNotContain(raceProfession, profFromDb.Races);
            }
        }
        public void Delete_WithData_DeletesProfession()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "WithProfession_ForDelete")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                context.Professions.Add(new Profession()
                {
                    Name = "ToDelete"
                });
                context.SaveChanges();
            }

            using (var context = new GameInfoContext(options))
            {
                var service = new ProfessionsService(context);
                var result  = service.Delete(1);

                Assert.True(result);
                Assert.Equal(0, context.Professions.Count());
            }
        }
Beispiel #10
0
 public IHttpActionResult GetProfessions()
 {
     return(Ok(ProfessionsService.GetProfessions()));
 }