public async Task GetProperYDKString_ReturnDecklistWithFilledFieldsAsync() { using (var dbInMemory = new YgoProAnalyticsDatabase(_getOptionsForSqlInMemoryTesting <YgoProAnalyticsDatabase>())) { dbInMemory.Database.EnsureCreated(); var archetype = new Archetype(Archetype.Default, true); _addPSYFrameDriver(dbInMemory, archetype); _addMokeyMokeyKing(dbInMemory, archetype); _addChecksumDragon(dbInMemory, archetype); _addPankratops(dbInMemory, archetype); await dbInMemory.SaveChangesAsync(); _converter = new YDKToDecklistConverter(dbInMemory, _downloaderMock.Object, _adminConfigMock.Object); var decklist = _converter.Convert(GetProperYDKString()); decklist.Name = "Test"; decklist.Archetype = new Archetype(Archetype.Default, true); dbInMemory.Decklists.Add(decklist); await dbInMemory.SaveChangesAsync(); var decklistFromDb = dbInMemory.Decklists.First(); Assert.Multiple(() => { //tests if a beta card (Cheksum dragon with betaid:100336006) is converted to 94136469 Assert.IsNotNull(decklistFromDb.MainDeck.FirstOrDefault(x => x.PassCode == 94136469)); Assert.AreEqual(decklistFromDb.MainDeck, decklist.MainDeck); Assert.AreEqual(decklistFromDb.ExtraDeck, decklist.ExtraDeck); Assert.AreEqual(decklistFromDb.SideDeck, decklist.SideDeck); }); } }
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; }