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); }); } }
private void _assignConvertedDecklistToProperCollection( KeyValuePair <DateTime, List <DecklistWithName> > decklistsAsStringsWithFilenames, List <Decklist> allDecksWhichWonFromThePack, List <Decklist> allDecksWhichLostFromThePack, DuelLog duelLog) { foreach (var deckWhichWonFileName in duelLog.DecksWhichWonFileNames) { var decklistWithFileName = decklistsAsStringsWithFilenames.Value.FirstOrDefault(x => x.DecklistFileName == deckWhichWonFileName); if (decklistWithFileName == null) { continue; } Decklist decklist = _yDKToDecklistConverter.Convert(decklistWithFileName.DecklistData); decklist.WhenDecklistWasFirstPlayed = duelLog.DateOfTheBeginningOfTheDuel.Date; allDecksWhichWonFromThePack.Add( decklist ); } foreach (var deckWhichLostFileName in duelLog.DecksWhichLostFileNames) { var decklistWithFileName = decklistsAsStringsWithFilenames.Value.FirstOrDefault(x => x.DecklistFileName == deckWhichLostFileName); if (decklistWithFileName == null) { //TODO log if file is missing continue; } Decklist decklist = _yDKToDecklistConverter.Convert(decklistWithFileName.DecklistData); decklist.WhenDecklistWasFirstPlayed = duelLog.DateOfTheBeginningOfTheDuel.Date; allDecksWhichLostFromThePack.Add( decklist ); } }