public void LogTime_GetUserEmailFail_LogError_Fail() { string errorMsg = "Failed to get user email"; FakeUserLogger userLogger = new FakeUserLogger(); userLogger.ExceptionWillOccur = new Exception(errorMsg); IErrorLogger errorLogger = Substitute.For <IErrorLogger>(); TimeLogger time = new TimeLogger(); time.UserLogger = userLogger; time.ErrorLogger = errorLogger; Exception ex = Assert.Throws <Exception>(() => time.LogTime(2, 30, "Working on TimesheetApp")); StringAssert.Contains(errorMsg, ex.Message); errorLogger.Received().LogError(ex); }
public void greskaPrilikomSlanjaMejla() { string errorMsg = "Failed to send email"; FakeProductChecker productChecker = new FakeProductChecker(); FakeUserLogger userLogger = new FakeUserLogger(); FakeStockManager stockManager = new FakeStockManager(); FakeOrder order = new FakeOrder(); FakeEmailSender emailSender = new FakeEmailSender(); emailSender.exception = new Exception(errorMsg); //FakeErrorLogger errorLogger = new FakeErrorLogger(); IErrorLogger errorLogger = Substitute.For <IErrorLogger>(); ProductOrdering productOrdering = new ProductOrdering(userLogger, productChecker, order, emailSender, errorLogger, stockManager); Exception ex = Assert.Throws <Exception>(() => productOrdering.PlaceOrder(100)); errorLogger.Received().LogError(ex.Message); StringAssert.Contains("Failed to send email", ex.Message); }
public void greskaPrilikomSkidanjaProizvodaSaLagera() { FakeProductChecker productChecker = new FakeProductChecker(); FakeUserLogger userLogger = new FakeUserLogger(); FakeStockManager stockManager = new FakeStockManager(); stockManager.exception = new Exception(); IErrorLogger errorLogger = Substitute.For <IErrorLogger>(); ProductOrdering productOrdering = new ProductOrdering(); productOrdering.ProductChecker = productChecker; productOrdering.UserLogger = userLogger; productOrdering.StockManager = stockManager; productOrdering.ErrorLogger = errorLogger; Exception ex = Assert.Throws <Exception>(() => productOrdering.PlaceOrder(100)); errorLogger.Received().LogError(ex.Message); }