using DominionBase; using DominionBase.Cards; using DominionBase.Cards.Alchemy; using DominionBase.Enums; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; namespace DominionBaseUnitTest.Cards { [TestClass] public class UnitTestAlchemy : UnitTestCards { [TestMethod] public void Test_Alchemist_Basic() { var card = new Alchemist(); Assert.AreEqual(new Cost(3, 1), card.BaseCost); Assert.AreEqual(2, card.Benefit.Cards); Assert.AreEqual(1, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_Apothecary_Basic() { var card = new Apothecary(); Assert.AreEqual(new Cost(2, 1), card.BaseCost); Assert.AreEqual(1, card.Benefit.Cards); Assert.AreEqual(1, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_Apprentice_Basic() { var card = new Apprentice(); Assert.AreEqual(new Cost(5), card.BaseCost); Assert.AreEqual(1, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_Familiar_Basic() { var card = new Familiar(); Assert.AreEqual(new Cost(3, 1), card.BaseCost); Assert.AreEqual(1, card.Benefit.Cards); Assert.AreEqual(1, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action | Categories.Attack, card.Category); } [TestMethod] public void Test_Golem_Basic() { var card = new Golem(); Assert.AreEqual(new Cost(4, 1), card.BaseCost); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_Herbalist_Basic() { var card = new Herbalist(); Assert.AreEqual(new Cost(2), card.BaseCost); Assert.AreEqual(new Currency(1), card.Benefit.Currency); Assert.AreEqual(1, card.Benefit.Buys); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_PhilosophersStone_Basic() { var card = new PhilosophersStone(); Assert.AreEqual(new Cost(3, 1), card.BaseCost); Assert.IsTrue(card.Benefit.Currency.IsVariable); Assert.AreEqual(Categories.Card | Categories.Treasure, card.Category); } [TestMethod] public void Test_Potion_Basic() { var card = new Potion(); Assert.AreEqual(new Cost(4), card.BaseCost); Assert.AreEqual(Categories.Card | Categories.Treasure, card.Category); } [TestMethod] public void Test_ScryingPool_Basic() { var card = new ScryingPool(); Assert.AreEqual(new Cost(2, 1), card.BaseCost); Assert.AreEqual(1, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action | Categories.Attack, card.Category); } [TestMethod] public void Test_Transmute_Basic() { var card = new Transmute(); Assert.AreEqual(new Cost(potionCost: 1), card.BaseCost); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_University_Basic() { var card = new University(); Assert.AreEqual(new Cost(2, 1), card.BaseCost); Assert.AreEqual(2, card.Benefit.Actions); Assert.AreEqual(Categories.Card | Categories.Action, card.Category); } [TestMethod] public void Test_Vineyard_Basic() { var card = new Vineyard(); Assert.AreEqual(new Cost(potionCost: 1), card.BaseCost); Assert.AreEqual(Categories.Card | Categories.Victory, card.Category); } } }