public void it_should_return_correct_payment_on_subscription_level_and_term() { SubscriptionPlan subscriptionPlan = new SubscriptionPlan(); subscriptionPlan.Level = _subscriptionLevel; subscriptionPlan.Term = _subscriptionTerm; IPaymentStrategyFactory paymentStrategyFactory = new SubscriptionPaymentStrategyFactory(); SubscriptionService subscriptionService = new SubscriptionService(paymentStrategyFactory); var payment = subscriptionService.CalculatePayment(subscriptionPlan); Assert.AreEqual(_paymentResult, payment); }
public void then_PaymentStrategyFactory_GetStrategy_should_be_called() { // Arrange var mockPaymentStrategyFactory = new Mock <IPaymentStrategyFactory>(); mockPaymentStrategyFactory.Setup(p => p.GetPaymentStratgey(It.IsAny <string>())); SubscriptionService subscriptionService = new SubscriptionService(mockPaymentStrategyFactory.Object); // Act subscriptionService.CalculatePayment(_subscriptionPlan); // Assert mockPaymentStrategyFactory.Verify(p => p.GetPaymentStratgey(It.IsAny <string>()), Times.Exactly(1)); }