Example #1
0
        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);
            }
        }
Example #2
0
        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;
 }