public void ManaParserTests_Success_4LeoninSquire_ReturnsCorrectTotalGroupedCost()
        {
            var db = new CardsDB();
            var testCardName = "Leonin Squire";
            var testCardNameUndercase = testCardName.ToLower();
            var expectedCost = "1W";
            var convertedExpectedCost = new ManaCostModel(expectedCost);

            var result = db.GetCardByName(testCardNameUndercase);
            var card = result.Result;
            var deck = new DeckModel(new[] { card, card, card, card });

            var totalCosts = deck.TotalCostsByGroup;

            //Makes the assumption that we just want the total number of each monocolor used, each hybrid color used, and each colorless used
            Assert.AreEqual(1, totalCosts.Count);
            Assert.IsNotNull(totalCosts.Keys.FirstOrDefault());
            Assert.AreEqual(2, totalCosts.Keys.FirstOrDefault().Costs.Count);
            Assert.AreEqualCollections(convertedExpectedCost.Costs, totalCosts.Keys.FirstOrDefault().Costs);
            Assert.AreEqual(4, totalCosts.Values.FirstOrDefault());
        }
 protected internal ManaCostViewModel(ManaCostModel model)
 {
     this.ManaCost = new ObservableCollection<ManaColorCountViewModel>();
     this.Model = model;
 }
        public void ManaCostSucceeds_SimpleTest_NotNull()
        {
            var results = ManaCostModelMocks.GetCardValue<List<Card>>(ManaCostModelMocks.SimpleJsonResult);
              var result = results.FirstOrDefault();
              var model = new CardModel() { ID = result.Id, Name = result.Name, ManaCostSimple = result.ManaCost };

              var manaCost = model.ManaCost;
            var expectationCost = new ManaCostModel();
            expectationCost.Costs.Add(ManaColors.Colorless, 1);
            expectationCost.Costs.Add(ManaColors.White, 1);

              Assert.IsNotNull(manaCost);
              Assert.IsNotNull(manaCost.Costs);
        }
        public void ManaCostSucceeds_SimpleTest_ItemsInListMatch()
        {
            var results = ManaCostModelMocks.GetCardValue<List<Card>>(ManaCostModelMocks.SimpleJsonResult);
            var result = results.FirstOrDefault();
            var model = new CardModel() { ID = result.Id, Name = result.Name, ManaCostSimple = result.ManaCost };

            var manaCost = model.ManaCost;
            var expectationCost = new ManaCostModel();
            expectationCost.Costs.Add(ManaColors.Colorless, 1);
            expectationCost.Costs.Add(ManaColors.White, 1);

            Assert.AreEqualCollections(manaCost.Costs, expectationCost.Costs, message: "The mana costs are not the same in the same order");
        }
        public void ManaParserTests_Success_GrabsLeoninSquire_ReturnsCorrectManaCostOf1W()
        {
            var db = new CardsDB();
              var testCardName = "Leonin Squire";
              var testCardNameUndercase = testCardName.ToLower();
              var expectedManaCost = "1W";
              var expectedComplexManaCost = new ManaCostModel(expectedManaCost);

              //var card = await db.GetCardByName(testCardNameUndercase);
              var result = db.GetCardByName(testCardNameUndercase);
              var card = result.Result;

              Assert.IsTrue(card.Type.Contains("Creature"));
              Assert.AreEqual(card.Name, testCardName);
              Assert.AreEqual(card.ManaCostSimple, expectedManaCost);
              Assert.IsNotNull(card.ManaCost);
              Assert.AreEqualCollections(card.ManaCost.Costs, expectedComplexManaCost.Costs);
        }