Esempio n. 1
0
        public void ShouldLoadOffersFromInputFile()
        {
            var offersReaderMock = new Mock <IOffersReader>();

            offersReaderMock.Setup(x => x.ReadAll(It.Is <string>(p => p == "filename")))
            .Returns(new List <Offer> {
                new Offer()
            })
            .Verifiable();

            var calculationsOutputMock = new Mock <ICalculationsOutput>();

            var quoteCalculationMock = new Mock <IQuoteCalculator>();

            var parameters = new[] { "filename", "1000" };

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);

            offersReaderMock.Verify();
        }
Esempio n. 2
0
        public void ShouldOutputQuoteCalculationResult()
        {
            var quoteCalculationResult = new QuoteCalculationResult();

            var offersReaderMock = new Mock <IOffersReader>();

            var calculationsOutputMock = new Mock <ICalculationsOutput>();

            calculationsOutputMock.Setup(x => x.OutputQuoteCalculationResult(It.Is <QuoteCalculationResult>(p => quoteCalculationResult.Equals(p))))
            .Verifiable();

            var quoteCalculationMock = new Mock <IQuoteCalculator>();

            quoteCalculationMock.Setup(x => x.GetQuote(It.IsAny <int>(), It.IsAny <IList <Offer> >()))
            .Returns(quoteCalculationResult);

            var parameters = new[] { "filename", 1000.ToString() };

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);

            calculationsOutputMock.Verify();
        }
Esempio n. 3
0
        public void ShouldGetQuoteCalculationResult()
        {
            var offersReaderMock = new Mock <IOffersReader>();
            var offers           = new List <Offer>();

            offersReaderMock.Setup(x => x.ReadAll(It.IsAny <string>())).Returns(offers);

            var calculationsOutputMock = new Mock <ICalculationsOutput>();

            var quoteCalculationMock = new Mock <IQuoteCalculator>();

            quoteCalculationMock.Setup(x => x.GetQuote(It.Is <int>(p => 1000 == p), It.Is <List <Offer> >(p => offers.Equals(p))))
            .Verifiable();

            var parameters = new[] { "filename", 1000.ToString() };

            // ReSharper disable once UnusedVariable
            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);

            quoteCalculationMock.Verify();
        }
Esempio n. 4
0
        public void WhenInputSecondParametersIsNotInteger_ThrowArgumentException()
        {
            var offersReaderMock       = new Mock <IOffersReader>();
            var calculationsOutputMock = new Mock <ICalculationsOutput>();
            var quoteCalculationMock   = new Mock <IQuoteCalculator>();

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(new[] { "filename", "de" });
        }
Esempio n. 5
0
        public void WhenInputParametersAreNull_ThrowArgumentNullException()
        {
            var offersReaderMock       = new Mock <IOffersReader>();
            var calculationsOutputMock = new Mock <ICalculationsOutput>();
            var quoteCalculationMock   = new Mock <IQuoteCalculator>();

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(null);
        }
Esempio n. 6
0
        public void WhenLoanAmountIsNotDividableByHundred_ThrowArgumentException(int loanAmount)
        {
            var offersReaderMock       = new Mock <IOffersReader>();
            var calculationsOutputMock = new Mock <ICalculationsOutput>();
            var quoteCalculationMock   = new Mock <IQuoteCalculator>();

            var parameters = new[] { "filename", loanAmount.ToString() };

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);
        }
Esempio n. 7
0
        public void WhenNoOfInputParametersIsLowerThenTwo_ThrowArgumentException()
        {
            var offersReaderMock       = new Mock <IOffersReader>();
            var calculationsOutputMock = new Mock <ICalculationsOutput>();
            var quoteCalculationMock   = new Mock <IQuoteCalculator>();

            var parameters = new string[] { };

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);
        }
Esempio n. 8
0
        public void WhenLoanAmountIsGreaterThen15000_ThrowArgumentOutOfRangeException()
        {
            var offersReaderMock       = new Mock <IOffersReader>();
            var calculationsOutputMock = new Mock <ICalculationsOutput>();
            var quoteCalculationMock   = new Mock <IQuoteCalculator>();

            var parameters = new[] { "filename", 15001.ToString() };

            // ReSharper disable once UnusedVariable
            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);
        }
Esempio n. 9
0
        public void WhenCalculationResultIsNull_OutputInsufficiendOffers()
        {
            var offersReaderMock = new Mock <IOffersReader>();

            offersReaderMock.Setup(x => x.ReadAll(It.IsAny <string>())).Returns(new List <Offer>());

            var calculationsOutputMock = new Mock <ICalculationsOutput>();

            calculationsOutputMock.Setup(x => x.InsufficiendOffers())
            .Verifiable();

            var quoteCalculationMock = new Mock <IQuoteCalculator>();

            var parameters = new[] { "filename", 1000.ToString() };

            var calculationApp = new CalculationApp(
                offersReaderMock.Object,
                calculationsOutputMock.Object,
                quoteCalculationMock.Object) as ICalculationApp;

            calculationApp.Run(parameters);

            calculationsOutputMock.Verify();
        }