public void Value_UnitTest() { mockExchangeRates.Setup(m => m.ConvertValue(It.IsAny <double>(), It.IsAny <string>(), It.IsAny <string>())).Returns(3); var assetPortfolio = new AssetPortfolio(mockExchangeRates.Object); var value = assetPortfolio.Value("USD"); Assert.AreEqual(value, 0); assetPortfolio.Portfolio = new List <IAsset>() { new Stock("ABC", "USD", 3, 2), new Stock("XYZ", "USD", 5, 1), new Currency("EUR", 100), new Currency("USD", 100), }; value = assetPortfolio.Value("USD"); Assert.AreEqual(value, 12); }
[TestMethod, TestCategory("LiveTest")] //this is a live test because it hits the service directly public void Value_LiveTest() { var assetPortfolio = new AssetPortfolio(new ExchangeRates(new ServiceWrapper())) { Portfolio = new List <IAsset>() { new Stock("ABC", "USD", 3, 2), //6 USD or 5ish GBP new Stock("XYZ", "USD", 5, 1), //5 USD or 4ish GBP new Currency("EUR", 100), //112 ish USD or 90ish GBP new Currency("USD", 100), // 100 USD or 80ish GBP } }; var value = assetPortfolio.Value("USD"); // should be 223 ish Assert.IsFalse(value == 0); Assert.IsFalse(value == (6 + 5 + 100 + 100)); value = assetPortfolio.Value("GBP"); //should be 179ish GBP Assert.IsFalse(value == 0); Assert.IsFalse(value == (6 + 5 + 100 + 100)); }
public void TestValuationPortfolio(AssetPortfolio portfolio, decimal expected, string currency) { decimal actual = portfolio.Value(currency); Assert.AreEqual(expected, actual); }