public void GetPaymentMethods_WhenSetDefaultPaymentMethodToOtherPaymentMethod_ShouldReturnDefaultPaymentMethodCorrectly() { _paymentServiceMock.Setup(x => x.GetPaymentMethodsByMarketIdAndLanguageCode(It.IsAny <string>(), "en")).Returns( new[] { new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 1", SystemKeyword = "CashOnDelivery" }, new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 2", SystemKeyword = "GenericCreditCard", IsDefault = true }, new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 3", SystemKeyword = "system3" } }); var cashOnDeliveryPaymentOption = new CashOnDeliveryPaymentOption(null, null, _currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object); var creaditPaymentOption = new GenericCreditCardPaymentOption(null, null, _currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object); _paymentOptions = new List <IPaymentOption>(); _paymentOptions.Add(cashOnDeliveryPaymentOption as IPaymentOption); _paymentOptions.Add(creaditPaymentOption as IPaymentOption); _subject = new PaymentMethodViewModelFactory(_currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object, _paymentOptions); var result = _subject.GetPaymentMethodViewModels().FirstOrDefault(p => p.SystemKeyword == "GenericCreditCard").IsDefault; var expected = true; Assert.Equal(expected, result); }
public PaymentMethodViewModelFactoryTests() { _paymentServiceMock = new Mock <IPaymentService>(); _paymentServiceMock.Setup(x => x.GetPaymentMethodsByMarketIdAndLanguageCode(It.IsAny <string>(), "en")).Returns( new[] { new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 1", SystemKeyword = "CashOnDelivery", IsDefault = true }, new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 2", SystemKeyword = "GenericCreditCard" }, new PaymentMethodViewModel { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "name 3", SystemKeyword = "system3" } }); _marketMock = new Mock <IMarket>(); _marketMock.Setup(m => m.MarketId).Returns(new MarketId("sampleMarket")); _currentMarketMock = new Mock <ICurrentMarket>(); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_marketMock.Object); _languageServiceMock = new Mock <LanguageService>(null, null, null); _languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(new CultureInfo("en-US")); var cashOnDeliveryPaymentOption = new CashOnDeliveryPaymentOption(null, null, _currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object); var creaditPaymentOption = new GenericCreditCardPaymentOption(null, null, _currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object); _paymentOptions = new List <IPaymentOption>(); _paymentOptions.Add(cashOnDeliveryPaymentOption as IPaymentOption); _paymentOptions.Add(creaditPaymentOption as IPaymentOption); _subject = new PaymentMethodViewModelFactory(_currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object, _paymentOptions); }
public PaymentMethodViewModelFactoryTests() { _paymentServiceMock = new Mock <IPaymentService>(); _marketMock = new Mock <IMarket>(); _currentMarketMock = new Mock <ICurrentMarket>(); _languageServiceMock = new Mock <LanguageService>(null, null, null, null); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_marketMock.Object); _languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(new CultureInfo("en-US")); _paymentServiceMock.Setup(x => x.GetPaymentMethodsByMarketIdAndLanguageCode(It.IsAny <string>(), "en")).Returns( new[] { new PaymentMethodModel { Description = "Lorem ipsum", FriendlyName = "name 1", LanguageId = "en", PaymentMethodId = Guid.NewGuid(), SystemName = "system 1" }, new PaymentMethodModel { Description = "Lorem ipsum", FriendlyName = "name 2", LanguageId = "en", PaymentMethodId = Guid.NewGuid(), SystemName = "system 2" }, new PaymentMethodModel { Description = "Lorem ipsum", FriendlyName = "name 3", LanguageId = "en", PaymentMethodId = Guid.NewGuid(), SystemName = "system 3" } }); _subject = new PaymentMethodViewModelFactory(_currentMarketMock.Object, _languageServiceMock.Object, _paymentServiceMock.Object); }
public static void LoadDefault(OrderFilter filter, PaymentMethodViewModelFactory paymentMethodViewModelFactory) { filter.PaymentMethods.AddRange(paymentMethodViewModelFactory.GetPaymentMethodViewModels() .Select(x => new KeyValuePair <string, string>(x.SystemKeyword, x.PaymentMethodId.ToString()))); filter.OrderStatuses.AddRange(OrderStatus.RegisteredStatuses.Select(x => new KeyValuePair <string, int>(x.Name, x.Id))); }
public CheckoutViewModelFactory( LocalizationService localizationService, PaymentMethodViewModelFactory paymentMethodViewModelFactory, IAddressBookService addressBookService, IContentLoader contentLoader, IOrderGroupFactory orderGroupFactory, UrlResolver urlResolver, ServiceAccessor <HttpContextBase> httpContextAccessor, ShipmentViewModelFactory shipmentViewModelFactory, ICustomerService customerService, IOrganizationService organizationService, IBudgetService budgetService, CustomerContextFacade customerContext) { _localizationService = localizationService; _paymentMethodViewModelFactory = paymentMethodViewModelFactory; _addressBookService = addressBookService; _contentLoader = contentLoader; _orderGroupFactory = orderGroupFactory; _urlResolver = urlResolver; _httpContextAccessor = httpContextAccessor; _shipmentViewModelFactory = shipmentViewModelFactory; _customerService = customerService; _budgetService = budgetService; _organizationService = organizationService; _customerContext = customerContext; }
public PaymentMethodViewModelFactoryTests() { _paymentMethods = new[] { new PaymentMethodViewModel <IPaymentMethod> { IsDefault = false, PaymentMethod = new FakePaymentMethod("FirstOption") }, new PaymentMethodViewModel <IPaymentMethod> { IsDefault = true, PaymentMethod = new FakePaymentMethod("SecondOption") }, new PaymentMethodViewModel <IPaymentMethod> { IsDefault = false, PaymentMethod = new FakePaymentMethod("ThirdOption") } }; _paymentManagerMock = new Mock <IPaymentManagerFacade>(); _paymentManagerMock.Setup(x => x.GetPaymentMethodsByMarket(It.IsAny <string>())) .Returns(() => { var dto = new Mediachase.Commerce.Orders.Dto.PaymentMethodDto(); var ordering = 0; dto.EnforceConstraints = false; foreach (var method in _paymentMethods) { var row = dto.PaymentMethod.NewPaymentMethodRow(); row.SystemKeyword = method.PaymentMethod.SystemKeyword; row.PaymentMethodId = method.PaymentMethod.PaymentMethodId; row.Name = method.PaymentMethod.Name; row.LanguageId = "en"; row.IsActive = true; row.IsDefault = method.IsDefault; row.Ordering = ++ordering; dto.PaymentMethod.AddPaymentMethodRow(row); } return(dto); }); _marketMock = new Mock <IMarket>(); _marketMock.Setup(m => m.MarketId).Returns(new MarketId("sampleMarket")); _currentMarketMock = new Mock <ICurrentMarket>(); _currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(_marketMock.Object); _languageServiceMock = new Mock <LanguageService>(null, null, null); _languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(new CultureInfo("en-US")); var contentLoaderMock = new Mock <IContentLoader>(); _subject = new PaymentMethodViewModelFactory( _currentMarketMock.Object, _languageServiceMock.Object, _paymentMethods.Select(x => x.PaymentMethod), _paymentManagerMock.Object, contentLoaderMock.Object); }
public OrderSearchBlockController(IAddressBookService addressBookService, ICustomerService customerService, IOrderGroupCalculator orderGroupCalculator, IContentLoader contentLoader, PaymentMethodViewModelFactory paymentMethodViewModelFactory, CookieService cookieService) { _addressBookService = addressBookService; _customerService = customerService; _orderGroupCalculator = orderGroupCalculator; _contentLoader = contentLoader; _paymentMethodViewModelFactory = paymentMethodViewModelFactory; _cookieService = cookieService; }
public CheckoutViewModelFactory( LocalizationService localizationService, PaymentMethodViewModelFactory paymentMethodViewModelFactory, IAddressBookService addressBookService, IContentLoader contentLoader, UrlResolver urlResolver, ServiceAccessor <HttpContextBase> httpContextAccessor, ShipmentViewModelFactory shipmentViewModelFactory) { _localizationService = localizationService; _paymentMethodViewModelFactory = paymentMethodViewModelFactory; _addressBookService = addressBookService; _contentLoader = contentLoader; _urlResolver = urlResolver; _httpContextAccessor = httpContextAccessor; _shipmentViewModelFactory = shipmentViewModelFactory; }
public ActionResult Purchase(CheckoutPage currentPage, CheckoutViewModel checkoutViewModel, string selectPayment) { var _cartService = new CartService(); var checkoutService = new CheckoutService(); var paymentMethods = checkoutService.GetPaymentMethods(); var paymentMethod = paymentMethods.Where(x => x.Id == new Guid(selectPayment)).SingleOrDefault(); //PaymentMethodViewModelFactory.Resolve(selectPayment); var choosePayment = PaymentMethodViewModelFactory.Resolve(paymentMethod); checkoutService.ClearOrderAddresses(); _cartService.RunWorkflow(OrderGroupWorkflowManager.CartPrepareWorkflowName); _cartService.SaveCart(); //star payment var _paymentService = new PaymentService(); try { _paymentService.ProcessPayment(choosePayment.PaymentMethod); } catch (PreProcessException) { ModelState.AddModelError("PaymentMethod", "Payment Preprocess fail"); } //add order form PurchaseOrder purchaseOrder = null; _cartService = new CartService(); OrderForm orderForm = _cartService.GetOrderForms().First(); decimal totalProcessedAmount = orderForm.Payments.Where(x => x.Status.Equals(PaymentStatus.Processed.ToString())).Sum(x => x.Amount); if (totalProcessedAmount != orderForm.Total) { throw new InvalidOperationException("Wrong amount"); } _cartService.RunWorkflow(OrderGroupWorkflowManager.CartCheckOutWorkflowName); purchaseOrder = checkoutService.SaveCartAsPurchaseOrder(); checkoutService.DeleteCart(); IContentRepository _contentRepository = ServiceLocator.Current.GetInstance <IContentRepository>(); var startpage = _contentRepository.Get <StartPage>(ContentReference.StartPage); var thankyouPage = _contentRepository.GetChildren <ThankYouPage>(startpage.ContentLink).FirstOrDefault(); return(Redirect(new UrlBuilder(thankyouPage.LinkURL).ToString())); }
public OrderHistoryController(IAddressBookService addressBookService, IOrderRepository orderRepository, ConfirmationService confirmationService, ICartService cartService, IOrderGroupCalculator orderGroupCalculator, IContentLoader contentLoader, UrlResolver urlResolver, IOrderGroupFactory orderGroupFactory, ICustomerService customerService, PaymentMethodViewModelFactory paymentMethodViewModelFactory, CookieService cookieService) : base(confirmationService, addressBookService, orderGroupCalculator, urlResolver, customerService) { _addressBookService = addressBookService; _orderRepository = orderRepository; _contentLoader = contentLoader; _cartService = cartService; _orderGroupFactory = orderGroupFactory; _paymentMethodViewModelFactory = paymentMethodViewModelFactory; _cookieService = cookieService; }
public CheckoutViewModelFactoryTests() { _cart = new FakeCart(new MarketImpl(new MarketId(Currency.USD)), Currency.USD); _cart.Forms.Single().Shipments.Single().LineItems.Add(new InMemoryLineItem()); _cart.Forms.Single().CouponCodes.Add("couponcode"); var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.GetPaymentMethodsByMarketIdAndLanguageCode(It.IsAny <string>(), "en")).Returns( new[] { new PaymentMethodViewModel() { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "payment method 1", SystemKeyword = cashPaymentName }, new PaymentMethodViewModel() { PaymentMethodId = Guid.NewGuid(), Description = "Lorem ipsum", FriendlyName = "payment method 2", SystemKeyword = creditPaymentName, IsDefault = true } }); var marketMock = new Mock <IMarket>(); var currentMarketMock = new Mock <ICurrentMarket>(); var languageServiceMock = new Mock <LanguageService>(null, null, null); currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(marketMock.Object); languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(new CultureInfo("en-US")); var cashOnDeliveryPaymentOption = new CashOnDeliveryPaymentOption(null, null, currentMarketMock.Object, languageServiceMock.Object, paymentServiceMock.Object); var creaditPaymentOption = new GenericCreditCardPaymentOption(null, null, currentMarketMock.Object, languageServiceMock.Object, paymentServiceMock.Object); var paymentOptions = new List <IPaymentOption>(); paymentOptions.Add(cashOnDeliveryPaymentOption as IPaymentOption); paymentOptions.Add(creaditPaymentOption as IPaymentOption); _creditPayment = creaditPaymentOption; var paymentMethodViewModelFactory = new PaymentMethodViewModelFactory(currentMarketMock.Object, languageServiceMock.Object, paymentServiceMock.Object, paymentOptions); var orderGroupFactoryMock = new Mock <IOrderGroupFactory>(); orderGroupFactoryMock.Setup(x => x.CreatePayment(It.IsAny <IOrderGroup>())).Returns((IOrderGroup orderGroup) => new FakePayment()); var serviceLocatorMock = new Mock <IServiceLocator>(); serviceLocatorMock.Setup(x => x.GetInstance <IOrderGroupFactory>()).Returns(orderGroupFactoryMock.Object); ServiceLocator.SetLocator(serviceLocatorMock.Object); _addressBookServiceMock = new Mock <IAddressBookService>(); _addressBookServiceMock.Setup(x => x.List()).Returns(() => new List <AddressModel> { new AddressModel { AddressId = "addressid" } }); _preferredBillingAddress = CustomerAddress.CreateInstance(); _preferredBillingAddress.Name = "preferredBillingAddress"; _addressBookServiceMock.Setup(x => x.GetPreferredBillingAddress()).Returns(_preferredBillingAddress); _addressBookServiceMock.Setup(x => x.UseBillingAddressForShipment()).Returns(true); _startPage = new StartPage(); var contentLoaderMock = new Mock <IContentLoader>(); contentLoaderMock.Setup(x => x.Get <StartPage>(It.IsAny <PageReference>())).Returns(_startPage); var urlResolverMock = new Mock <UrlResolver>(); var httpcontextMock = new Mock <HttpContextBase>(); var requestMock = new Mock <HttpRequestBase>(); requestMock.Setup(x => x.Url).Returns(new Uri("http://site.com")); requestMock.Setup(x => x.UrlReferrer).Returns(new Uri("http://site.com")); httpcontextMock.Setup(x => x.Request).Returns(requestMock.Object); var shipmentViewModelFactoryMock = new Mock <ShipmentViewModelFactory>(null, null, null, null, null); shipmentViewModelFactoryMock.Setup(x => x.CreateShipmentsViewModel(It.IsAny <ICart>())).Returns(() => new[] { new ShipmentViewModel { CartItems = new[] { new CartItemViewModel { Quantity = 1 } } } }); _subject = new CheckoutViewModelFactory( new MemoryLocalizationService(), (() => paymentMethodViewModelFactory), _addressBookServiceMock.Object, contentLoaderMock.Object, urlResolverMock.Object, (() => httpcontextMock.Object), shipmentViewModelFactoryMock.Object); }
public CheckoutViewModelFactoryTests() { _cart = new FakeCart(new MarketImpl(new MarketId(Currency.USD)), Currency.USD); _cart.Forms.Single().Shipments.Single().LineItems.Add(new InMemoryLineItem()); _cart.Forms.Single().CouponCodes.Add("couponcode"); _cashPayment = new PaymentMethodViewModel <PaymentMethodBase> { SystemName = cashPaymentName }; _creditPayment = new PaymentMethodViewModel <PaymentMethodBase> { SystemName = creditPaymentName }; var paymentServiceMock = new Mock <IPaymentService>(); var marketMock = new Mock <IMarket>(); var currentMarketMock = new Mock <ICurrentMarket>(); var languageServiceMock = new Mock <LanguageService>(null, null, null, null); var paymentMethodViewModelFactory = new PaymentMethodViewModelFactory(currentMarketMock.Object, languageServiceMock.Object, paymentServiceMock.Object); currentMarketMock.Setup(x => x.GetCurrentMarket()).Returns(marketMock.Object); languageServiceMock.Setup(x => x.GetCurrentLanguage()).Returns(new CultureInfo("en-US")); paymentServiceMock.Setup(x => x.GetPaymentMethodsByMarketIdAndLanguageCode(It.IsAny <string>(), "en")).Returns( new[] { new PaymentMethodModel { Description = "Lorem ipsum", FriendlyName = "payment method 1", LanguageId = "en", PaymentMethodId = Guid.NewGuid(), SystemName = cashPaymentName }, new PaymentMethodModel { Description = "Lorem ipsum", FriendlyName = "payment method 2", LanguageId = "en", PaymentMethodId = Guid.NewGuid(), SystemName = creditPaymentName } }); var addressBookServiceMock = new Mock <IAddressBookService>(); addressBookServiceMock.Setup(x => x.List()).Returns(() => new List <AddressModel> { new AddressModel { AddressId = "addressid" } }); _preferredBillingAddress = CustomerAddress.CreateInstance(); _preferredBillingAddress.Name = "preferredBillingAddress"; addressBookServiceMock.Setup(x => x.GetPreferredBillingAddress()).Returns(_preferredBillingAddress); addressBookServiceMock.Setup(x => x.UseBillingAddressForShipment()).Returns(true); _startPage = new StartPage(); var contentLoaderMock = new Mock <IContentLoader>(); contentLoaderMock.Setup(x => x.Get <StartPage>(It.IsAny <PageReference>())).Returns(_startPage); var orderGroupFactoryMock = new Mock <IOrderGroupFactory>(); var urlResolverMock = new Mock <UrlResolver>(); var httpcontextMock = new Mock <HttpContextBase>(); var requestMock = new Mock <HttpRequestBase>(); var serviceCustomer = new Mock <ICustomerService>(); var organizationService = new Mock <IOrganizationService>(); var budgetService = new Mock <IBudgetService>(); var customerContext = new Mock <CustomerContextFacade>(); requestMock.Setup(x => x.Url).Returns(new Uri("http://site.com")); requestMock.Setup(x => x.UrlReferrer).Returns(new Uri("http://site.com")); httpcontextMock.Setup(x => x.Request).Returns(requestMock.Object); PreferredCultureAccessor accessor = () => CultureInfo.InvariantCulture; var shipmentViewModelFactoryMock = new Mock <ShipmentViewModelFactory>(null, null, null, null, null, null, accessor, null); shipmentViewModelFactoryMock.Setup(x => x.CreateShipmentsViewModel(It.IsAny <ICart>())).Returns(() => new[] { new ShipmentViewModel { CartItems = new[] { new CartItemViewModel { Quantity = 1 } } } }); _subject = new CheckoutViewModelFactory( new MemoryLocalizationService(), paymentMethodViewModelFactory, addressBookServiceMock.Object, contentLoaderMock.Object, orderGroupFactoryMock.Object, urlResolverMock.Object, (() => httpcontextMock.Object), shipmentViewModelFactoryMock.Object, serviceCustomer.Object, organizationService.Object, budgetService.Object, customerContext.Object); }
public PaymentController(PaymentMethodViewModelFactory paymentMethodViewModelFactory) { _paymentMethodViewModelFactory = paymentMethodViewModelFactory; }
public PaymentOptionViewModelBinder(PaymentMethodViewModelFactory paymentMethodViewModelFactory) { _paymentMethodViewModelFactory = paymentMethodViewModelFactory; }
public PaymentOptionViewModelBinder(PaymentMethodViewModelFactory paymentMethodViewModelFactory, IModelMetadataProvider modelMetadataProvider) { _paymentMethodViewModelFactory = paymentMethodViewModelFactory; _modelMetadataProvider = modelMetadataProvider; }