public async Task GetArchetypeOfDecklist_DeckHas1MainArchetype_DeckGets1Archetype() { using (var dbInMemory = new YgoProAnalyticsDatabase(_getOptionsForSqlInMemoryTesting <YgoProAnalyticsDatabase>())) { dbInMemory.Database.EnsureCreated(); var archetypeNekroz = new Archetype("Nekroz", true); var archetypeHerald = new Archetype("Herald", true); nekrozOfBrionac = _NekrozofBrionac(archetypeNekroz); nekrozMirror = _NekrozMirror(archetypeNekroz); herald = _Herald(archetypeHerald); dbInMemory.Cards.AddRange(nekrozOfBrionac, nekrozMirror, herald); await dbInMemory.SaveChangesAsync(); var decklist = new Decklist(new List <Card> { nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, nekrozMirror }, new List <Card> { herald, herald }, new List <Card> { herald }); _analyzer = new ArchetypeAndDecklistAnalyzer(dbInMemory); _analyzer.GetArchetypeOfTheDecklistWithStatistics(decklist, DateTime.Now); Assert.AreEqual("Nekroz", decklist.Archetype.Name); } }
public async Task GetArchetypeOfDecklist_DeckHasDefaultArchetype_DeckGetsDefaultArchetype() { using (var dbInMemory = new YgoProAnalyticsDatabase(_getOptionsForSqlInMemoryTesting <YgoProAnalyticsDatabase>())) { dbInMemory.Database.EnsureCreated(); var archetype = new Archetype(Archetype.Default, true); nekrozOfBrionac = _NekrozofBrionac(archetype); nekrozMirror = _NekrozMirror(archetype); herald = _Herald(archetype); bookstone = _ImpcantationBookStone(archetype); dbInMemory.Cards.AddRange(nekrozOfBrionac, nekrozMirror, herald, bookstone); await dbInMemory.SaveChangesAsync(); var decklist = new Decklist(new List <Card> { nekrozOfBrionac, nekrozOfBrionac, nekrozOfBrionac, bookstone, bookstone, bookstone }, new List <Card> { herald, herald }, new List <Card>()); _analyzer = new ArchetypeAndDecklistAnalyzer(dbInMemory); _analyzer.GetArchetypeOfTheDecklistWithStatistics(decklist, DateTime.Now); Assert.AreEqual(Archetype.Default, decklist.Archetype.Name); } }
public YgoProAnalysisBasedOnDataFromYgoProServer( IDuelLogNameAnalyzer duelLogNameAnalyzer, YgoProAnalyticsDatabase db, IArchetypeAndDecklistAnalyzer archetypeAndDecklistAnalyzer, IYDKToDecklistConverter yDKToDecklistConverter, IBanlistService banlistService, IDecklistService decklistService) { _duelLogNameAnalyzer = duelLogNameAnalyzer; _db = db; _archetypeAndDecklistAnalyzer = archetypeAndDecklistAnalyzer; _yDKToDecklistConverter = yDKToDecklistConverter; _banlistService = banlistService; _decklistService = decklistService; }