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;
 }