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();
        }
Exemple #2
0
        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();
        }