public void GetSnapshotSlug()
        {
            var mock = new Mock <IHttpClient>();

            mock.Setup(x => x.JsonGet(It.IsAny <string>()))
            .ReturnsAsync(@"{""snapshotType"":""standard"",""slugs"":[{""slug"":""2016-07-10""}]}");

            var importer = new SnapshotImporter(mock.Object, _data.Object, _log.Object);

            Assert.That(async() => await importer.GetSnapshotSlug("standard"),
                        Is.EqualTo(new Tuple <string, string>("2016-07-10", "standard")));
        }
        public void GetSnapshotSlug_Unexpected()
        {
            var mock = new Mock <IHttpClient>();

            mock.Setup(x => x.JsonGet(It.IsAny <string>()))
            .ReturnsAsync(@"{""snapshotType"":""standard"",""slugs"":[{""slug"":""2016-07-10""},{""slug"":""2016-06-10""}]}");

            var importer = new SnapshotImporter(mock.Object, _data.Object, _log.Object);

            Assert.That(async() => await importer.GetSnapshotSlug("standard"),
                        Throws.TypeOf <ImportException>()
                        .With.Message.EqualTo("Snapshot slug count greater than one"));
        }
        public void GetSnapshotSlug_Error()
        {
            var mock = new Mock <IHttpClient>();

            mock.Setup(x => x.JsonGet(It.IsAny <string>()))
            .ReturnsAsync(@"{""error"":{""status"":500}}");

            var importer = new SnapshotImporter(mock.Object, _data.Object, _log.Object);

            Assert.That(async() => await importer.GetSnapshotSlug("standard"),
                        Throws.TypeOf <ImportException>()
                        .With.Message.EqualTo("Getting the snapshot slug failed (500)"));
        }
Exemplo n.º 4
0
        public void ImportDecksTest()
        {
            var httpClient        = new HttpClient();
            var trackerRepository = new TrackerRepository();
            var importer          = new SnapshotImporter(httpClient, trackerRepository);

            //_logger.Info("Starting meta deck import");
            int deckCount = 0;
            // delete previous snapshot decks
            //if (deletePrevious)
            //{
            //    _logger.Info("Deleting previous meta decks");
            //    _tracker.DeleteAllDecksWithTag(PluginTag);
            //}
            // get the lastest meta snapshot slug/date
            var slug = importer.GetSnapshotSlug();
            // use the slug to request the actual snapshot details
            //var snapshot = await GetSnapshot(slug);
            // add all decks to the tracker
            //foreach (var dt in snapshot.DeckTiers)
            //{
            //    var cards = "";
            //    _logger.Info($"Importing deck ({dt.Name})");
            //    foreach (var cd in dt.Deck.Cards)
            //    {
            //        cards += cd.Detail.Name;
            //        // don't add count if only one
            //        if (cd.Quantity > 1)
            //            cards += $" x {cd.Quantity}";
            //        cards += "\n";
            //    }
            //    // remove trailing newline
            //    if (cards.Length > 1)
            //        cards = cards.Substring(0, cards.Length - 1);

            //    // optionally remove player class from deck name
            //    // e.g. 'Control Warrior' => 'Control'
            //    var deckName = dt.Name;
            //    if (removeClass)
            //        deckName = deckName.Replace(dt.Deck.PlayerClass, "").Trim();

            //    _tracker.AddDeck(deckName, dt.Deck.PlayerClass, cards, archive, ArchetypeTag, PluginTag);
            //    deckCount++;
        }