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)")); }
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++; }