public async Task When_AddPaymentCommand_Get_Subscription_Corresponding_To_CreditCard() { var subId = CreditCardSubscriptionId.NewId(); var creditCard = new CreditCard(CreditCardId.NewId(), subId, DateTimeOffset.Now); var repo = A.Fake <IAggregateRepository <CreditCard> >(); A.CallTo(() => repo.GetByIdAsync(creditCard.Id)) .Returns(creditCard); var subRepository = A.Fake <IAggregateRepository <CreditCardSubscription> >(); var sub = new CreditCardSubscription(subId, DateTimeOffset.Now, new CreditCardSubscriptionName("gold")); sub.UseNoPaymentFee(DateTimeOffset.Now); A.CallTo(subRepository) .WithReturnType <Task <CreditCardSubscription> >() .Returns(sub); var sut = new AddPaymentCommandHandler(repo, subRepository); await sut.Handle(new AddPaymentCommand { AggregateId = creditCard.Id, Payment = new Payment(PaymentId.NewId(), Money.CreateAUD(200), DateTimeOffset.Now) }, CancellationToken.None); A.CallTo(() => subRepository.GetByIdAsync(subId)) .MustHaveHappenedOnceExactly(); A.CallTo(() => repo.SaveAsync(A <CreditCard> ._, A <long> ._)) .MustHaveHappenedOnceExactly(); }
private static CreditCardSubscription CreateGold() { var gold = new CreditCardSubscription( new CreditCardSubscriptionId(GoldId), DateTimeOffset.Now, new CreditCardSubscriptionName("Gold")); gold.UseNoPaymentFee(DateTimeOffset.Now); return(gold); }
private static CreditCardSubscription CreateBronze() { var bronze = new CreditCardSubscription( new CreditCardSubscriptionId(BronzeId), DateTimeOffset.Now, new CreditCardSubscriptionName("Bronze")); bronze.UseFixedPaymentFee(DateTimeOffset.Now, Money.CreateAUD(1.25m)); return(bronze); }
private static CreditCardSubscription CreateSilver() { var silver = new CreditCardSubscription( new CreditCardSubscriptionId(SilverId), DateTimeOffset.Now, new CreditCardSubscriptionName("Silver")); silver.UseRatePaymentFee(DateTimeOffset.Now, Rate.Create(0.02m)); return(silver); }