Ploeh.Samples.Loan.AdjustableRateAnnuityOfferMortgageApplicationProcessor.ProduceOffer C# (CSharp) Méthode

ProduceOffer() public méthode

public ProduceOffer ( MortgageApplication application ) : IEnumerable
application Ploeh.Samples.Loan.DataCollection.MortgageApplication
Résultat IEnumerable
        public IEnumerable<IRendering> ProduceOffer(MortgageApplication application)
        {
            var offer = this.OfferService.GetAdjustableRateAnnuityOffer(application);

            yield return new Heading2Rendering("Adjustable rate offer");

            yield return new BoldRendering("Initial interest rate:");
            yield return new TextRendering(" " + offer.InitialRate / 10m + " %");
            yield return new LineBreakRendering();

            yield return new BoldRendering("Term:");
            yield return new TextRendering(" " + offer.Term.ToString("D"));
            yield return new LineBreakRendering();
        }

Usage Example

        public void ProduceOfferReturnsCorrectResult(
            int initialRate,
            string term)
        {
            var application = new MortgageApplication();
            var offer = new AdjustableRateAnnuityOffer
            {
                InitialRate = initialRate,
                Term = DateTimeOffset.Parse(term)
            };
            var sut = new AdjustableRateAnnuityOfferMortgageApplicationProcessor
            {
                OfferService = new Mock<IOfferService>().Object
            };
            Mock.Get(sut.OfferService)
                .Setup(o => o.GetAdjustableRateAnnuityOffer(application))
                .Returns(offer);

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new Heading2Rendering("Adjustable rate offer"),
                new BoldRendering("Initial interest rate:"),
                new TextRendering(" " + offer.InitialRate / 10m + " %"),
                new LineBreakRendering(),
                new BoldRendering("Term:"),
                new TextRendering(" " + offer.Term.ToString("D")),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
AdjustableRateAnnuityOfferMortgageApplicationProcessor