Exemple #1
0
        public async Task RemoveQuest_RemovesFromNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForRemoveQuest_FromNPC")
                          .Options;

            var npc = new NPC()
            {
                Name = "NPC RemoveQuest"
            };
            var quest = new Quest()
            {
                Title = "To remove"
            };

            using (var context = new GameInfoContext(options))
            {
                npc.Quests.Add(quest);
                context.NPCs.Add(npc);
                context.SaveChanges();

                var service = new NPCsService(context, null);

                await service.RemoveQuest(npc, quest);

                var NPCFromDb = context.NPCs.First();

                Assert.True(NPCFromDb.Quests.Count == 0);
            }
        }
Exemple #2
0
        public void All_WithData_ReturnsSameData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_WithNPCs")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new NPCsService(context, null);

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

                context.NPCs.AddRange(NPCs);
                context.SaveChanges();

                Assert.Equal(3, service.All().Count);
            }
        }
Exemple #3
0
        public async Task RemoveItem_RemovesFromNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForRemoveItem_FromNPC")
                          .Options;

            var npc = new NPC()
            {
                Name = "NPC RemoveItem"
            };
            var item = new Item()
            {
                Name = "Item to remove"
            };

            using (var context = new GameInfoContext(options))
            {
                npc.Loot.Add(item);
                context.NPCs.Add(npc);
                context.SaveChanges();

                var service = new NPCsService(context, null);

                await service.RemoveItem(npc, item);

                var NPCFromDb = context.NPCs.First();

                Assert.True(NPCFromDb.Loot.Count == 0);
            }
        }
Exemple #4
0
        public void Add_SavesToDatabase()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "AddNPC_ToDb")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var NPCToAdd = new AddNPCInputModel()
                {
                    Name = "NPC Name"
                };

                var service = new NPCsService(context, null);
                service.Add(NPCToAdd);

                var expectedNPC = new NPC()
                {
                    Name = NPCToAdd.Name
                };

                Assert.NotEmpty(context.NPCs);
                Assert.Equal(expectedNPC.Name, context.NPCs.First().Name);
            }
        }
Exemple #5
0
        public void AddItem_AddsToNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForAddItem_ToNPC")
                          .Options;

            var itemName = "Item Name";

            var npc = new NPC()
            {
                Name = "NPC Name"
            };
            var item = new Item()
            {
                Name = itemName, AcquiredFrom = "None", Usage = "None"
            };

            using (var context = new GameInfoContext(options))
            {
                context.NPCs.Add(npc);
                context.Items.Add(item);
                context.SaveChanges();

                var model = new AddItemToNPCInputModel()
                {
                    NPCId = 1, ItemName = itemName
                };

                var service = new NPCsService(context, new ItemsService(context));

                Assert.True(service.AddItemToNPC(model));
            }
        }
Exemple #6
0
        public void AddQuest_AddsToNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForAddQuest_ToNPC")
                          .Options;

            var npc = new NPC()
            {
                Name = "NPC QuestAdd"
            };
            var quest = new Quest()
            {
                Title = "QuestTitle", CompletionCondition = "None"
            };

            using (var context = new GameInfoContext(options))
            {
                context.NPCs.Add(npc);
                context.Quests.Add(quest);
                context.SaveChanges();

                var model = new AddQuestToNPCInputModel()
                {
                    NPCId = 1
                };

                var service = new NPCsService(context, null);

                Assert.True(service.AddQuestToNPC(model, quest));
            }
        }
Exemple #7
0
        public void ByName_WithNPC_ReturnsNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForByName_WithNPC")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new NPCsService(context, null);

                var NPCName = "NPC Name";

                var NPC = new NPC()
                {
                    Name = NPCName
                };

                context.NPCs.Add(NPC);
                context.SaveChanges();

                var NPCFromDb = service.ByName(NPCName);

                Assert.Equal(NPC.Name, NPCFromDb.Name);
            }
        }
 public DownloadService(IServiceProvider provider) : base(provider)
 {
     _mob  = provider.GetRequiredService <MobsService>();
     _item = provider.GetRequiredService <ItemsService>();
     _npcs = provider.GetRequiredService <NPCsService>();
     _json = provider.GetRequiredService <JsonService>();
 }
Exemple #9
0
        public void ById_WithNoNPCs_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoNPCs_Db_ForById")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new NPCsService(context, null);
                Assert.Null(service.ById(1));
            }
        }
Exemple #10
0
        public void Delete_NoData_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoNPCs_Db_ForDelete")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new NPCsService(context, null);
                Assert.False(service.Delete(2));
            }
        }
Exemple #11
0
        public void All_WithNoData_ReturnsNoData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoNPCs_Db")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new NPCsService(context, null);
                Assert.Equal(0, service.All().Count);
            }
        }
Exemple #12
0
        public void Delete_WithData_DeletesNPC()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_WithNPC_ForDelete")
                          .Options;

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

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

                Assert.True(result);
                Assert.Equal(0, context.NPCs.Count());
            }
        }