public void Should_call_messageSender() { var costMock = new Mock <ICostCalculator>(); var senderMock = new Mock <IMessageSender>(); senderMock.Setup(x => x.Send(It.Is <string>((str) => str == msg))).Verifiable(); var loggerMock = new Mock <IAppLogger>(); var sut = new SuperSendingMicroApp(costMock.Object, senderMock.Object, loggerMock.Object); var result = sut.Send(msg); Assert.IsTrue(result.Message == msg); senderMock.VerifyAll(); }
static SuperApplicationConsoleApp AppComposite() { IEncryptHelper crypto = new nope.Lib.Encryptor(); external.ILogger logger = new external.Logger(); // Not singleton IAppLogger myLogger = new ExternalLogAdapter(logger); IMessageSender sender = new FedExSender(crypto, myLogger); var basePriceRules = getBasePriceRules(); var extPriceRules = getExtendedPriceRules(); ICostCalculator calc = new CostCalculator(basePriceRules, extPriceRules, myLogger); ISendingMicroApp senderApp = new SuperSendingMicroApp(calc, sender, myLogger); IConsole writer = new ConsoleWriter(); return(new SuperApplicationConsoleApp(senderApp, writer)); }
public void should_log_exceptions() { var costMock = new Mock <ICostCalculator>(); var senderMock = new Mock <IMessageSender>(); senderMock.Setup(x => x.Send(It.IsAny <string>())).Throws(new Exception("TestException")); var loggerMock = new Mock <IAppLogger>(); loggerMock.Setup(x => x.Error(It.Is <string>((str) => str.Contains("TestException")))).Verifiable(); var sut = new SuperSendingMicroApp(costMock.Object, senderMock.Object, loggerMock.Object); var result = sut.Send(msg); Assert.IsTrue(result.Message == string.Empty); Assert.IsTrue(result.ResultMessage == "Fail"); loggerMock.VerifyAll(); }
public void Should_call_cost_calculator() { var response = new SendResponse() { Message = msg, Price = 5, ResultMessage = "Success" }; var costMock = new Mock <ICostCalculator>(); costMock.Setup(x => x.CalculatePrice(It.Is <string>((str) => str == msg))).Returns(response.Price).Verifiable(); var senderMock = new Mock <IMessageSender>(); var loggerMock = new Mock <IAppLogger>(); var sut = new SuperSendingMicroApp(costMock.Object, senderMock.Object, loggerMock.Object); var result = sut.Send(msg); Assert.IsTrue(result.Message == msg); Assert.IsTrue(result.Price == response.Price); costMock.VerifyAll(); }