//[Ignore("Fails because the first parameter is null")] public void BeAbleToBeConstructed() { // Arrange and Act _sut = new SaleCreator(null, null); // Assert Assert.That(_sut, Is.InstanceOf <SaleCreator>()); }
public void CalculateTotalTest_PassesInLooseModeIfArgumentsDontMatchSetup() { var mockCatalogItemManager = new Mock <ICatalogItemManager>(MockBehavior.Loose); mockCatalogItemManager.Setup(x => x.GetPrice("Filofax")).Returns(It.IsAny <decimal>); var mockExchangeRateService = new Mock <IExchangeRateService>(); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); _sut.CalculateTotal("Handbag", "CDN", 2); }
public void CalculateTotal_CallsTheCorrectMethodWithCorrectParameters_OfICatalogItemManager() { var mockCatalogItemManager = new Mock <ICatalogItemManager>(MockBehavior.Strict); mockCatalogItemManager.Setup(x => x.GetPrice("Filofax")).Returns(It.IsAny <decimal>); var mockExchangeRateService = new Mock <IExchangeRateService>(); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); _sut.CalculateTotal("Filofax", "CDN", 2); }
public void BeAbleToBeConstructedUsingMoq() { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); var mockExchangeRateService = new Mock <IExchangeRateService>(); // Act _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Assert Assert.That(_sut, Is.InstanceOf <SaleCreator>()); }
public void CalculateTotal_DoesNotCallIExchangeRateService_GetRateFor_WhenDesiredCurrencyIsGBP() { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); var mockExchangeRateService = new Mock <IExchangeRateService>(); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Act _sut.CalculateTotal("Filofax", "GBP", 2); // Assert mockExchangeRateService.Verify(x => x.GetRateFor(It.IsAny <string>(), It.IsAny <string>()), Times.Never); }
public void CalculateTotal_CallsIExchangeRateService_GetRateFor_WithCorrectParameters() { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); var mockExchangeRateService = new Mock <IExchangeRateService>(); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Act _sut.CalculateTotal("Filofax", "CDN", 2); // Assert mockExchangeRateService.Verify(x => x.GetRateFor("GBP", "CDN")); }
static void Main(string[] args) { SaleCreator[] sales = new SaleCreator[3]; sales[0] = new InCashSaleCreator(); sales[1] = new DebitSaleCreator(); sales[2] = new ParceledOutSaleCreator(); List <Product> products = new List <Product>(); products.Add(new Product(1, "Notebook", 3000)); products.Add(new Product(2, "Iphone", 4000)); products.Add(new Product(3, "PS5", 5000)); var SaleInCash = sales[0].CreateSale(); var SaleDebit = sales[1].CreateSale(); var SaleParceledOut = sales[2].CreateSale(); foreach (var p in products) { SaleInCash.addProduct(p); SaleDebit.addProduct(p); SaleParceledOut.addProduct(p); } Console.WriteLine(" 1 - Dinheiro \n 2 - Débito \n 3 - Parcelado \n"); Console.WriteLine(" Informe o médoto de pagamento: \n"); int paymentMethod = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (paymentMethod) { case 1: Console.WriteLine(" Total com desconto: " + SaleInCash.getPrice()); break; case 2: Console.WriteLine(" Total com desconto: " + SaleDebit.getPrice()); break; case 3: Console.WriteLine(" Total com desconto: " + SaleParceledOut.getPrice()); break; default: Console.WriteLine("Opção Inválida!"); break; } }
public void CalculateTotal_ReturnsAnErrorString_WhenIExchangeRateService_GetRateFor_ThrowsAnException() { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); var mockExchangeRateService = new Mock <IExchangeRateService>(); mockExchangeRateService.Setup(x => x.GetRateFor(It.IsAny <string>(), It.IsAny <string>())).Throws <TimeoutException>(); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Act var result = _sut.CalculateTotal("Filofax", "CDN", 2); // Assert Assert.That(result, Is.EqualTo("Sorry there was a problem obtaining an exchange rate")); }
public void CalculateTotal_ReturnsTheCorrectTotalStringForTestCase(string name, string exchange1, string exchange2, int expectedExchange, int expectedTotal) { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); mockCatalogItemManager.Setup(x => x.GetPrice("Filofax")).Returns(10.00m); var mockExchangeRateService = new Mock <IExchangeRateService>(); mockExchangeRateService.Setup(x => x.GetRateFor("GBP", "CDN")).Returns(1.50m); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Act var result = _sut.CalculateTotal(name, exchange2, 2); // Assert Assert.That(result, Is.EqualTo($"Total price: {expectedTotal} {exchange2} at {expectedExchange} per {exchange1}")); }
public void CalculateTotal_ReturnsTheCorrectTotalString() { // Arrange var mockCatalogItemManager = new Mock <ICatalogItemManager>(); mockCatalogItemManager.Setup(x => x.GetPrice("Filofax")).Returns(10.00m); var mockExchangeRateService = new Mock <IExchangeRateService>(); mockExchangeRateService.Setup(x => x.GetRateFor("GBP", "CDN")).Returns(1.50m); _sut = new SaleCreator(mockCatalogItemManager.Object, mockExchangeRateService.Object); // Act var result = _sut.CalculateTotal("Filofax", "CDN", 2); // Assert Assert.That(result, Is.EqualTo("Total price: 30.00 CDN at 1.50 per GBP")); }