public async Task <Guid> Handle(BuySubscriptionCommand command, CancellationToken cancellationToken) { var priceList = await PriceListProvider.GetPriceList(_sqlConnectionFactory.GetOpenConnection()); var subscription = SubscriptionPayment.Buy( _payerContext.PayerId, SubscriptionPeriod.Of(command.SubscriptionTypeCode), command.CountryCode, MoneyValue.Of(command.Value, command.Currency), priceList); _aggregateStore.AppendChanges(subscription); return(subscription.Id); }
public void BuySubscriptionRenewal_WhenPriceDoesNotExist_IsNotPossible() { // Arrange var subscriptionPaymentTestData = CreateSubscriptionPaymentTestData(); // Act & Assert AssertBrokenRule <PriceOfferMustMatchPriceInPriceListRule>(() => { SubscriptionPayment.Buy( subscriptionPaymentTestData.PayerId, SubscriptionPeriod.Month, "PL", MoneyValue.Of(50, "PLN"), subscriptionPaymentTestData.PriceList); }); }
public void BuySubscription_IsSuccessful() { // Arrange var subscriptionPaymentTestData = CreateSubscriptionPaymentTestData(); // Act var subscriptionPayment = SubscriptionPayment.Buy( subscriptionPaymentTestData.PayerId, SubscriptionPeriod.Month, "PL", MoneyValue.Of(60, "PLN"), subscriptionPaymentTestData.PriceList); // Assert AssertPublishedDomainEvent <SubscriptionPaymentCreatedDomainEvent>(subscriptionPayment); }