public virtual async Task <CompleteCheckoutViewModel> CompleteCheckoutAsync(CompleteCheckoutParam param) { if (param == null) { throw new ArgumentNullException(nameof(param)); } if (param.CultureInfo == null) { throw new ArgumentException(GetMessageOfNull(nameof(param.CultureInfo)), nameof(param)); } if (string.IsNullOrWhiteSpace(param.CartName)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.CartName)), nameof(param)); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.Scope)), nameof(param)); } if (param.CustomerId == Guid.Empty) { throw new ArgumentException(GetMessageOfEmpty(nameof(param.CustomerId)), nameof(param)); } var order = await CartRepository.CompleteCheckoutAsync(param).ConfigureAwait(false); return(await MapOrderToCompleteCheckoutViewModel(order, param).ConfigureAwait(false)); }
public virtual async Task <CompleteCheckoutViewModel> CompleteCheckoutAsync(CompleteCheckoutParam param) { if (param == null) { throw new ArgumentNullException(nameof(param), "param"); } if (param.CultureInfo == null) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CultureInfo"), nameof(param)); } if (string.IsNullOrWhiteSpace(param.CartName)) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CartName"), nameof(param)); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("Scope"), nameof(param)); } if (param.CustomerId == Guid.Empty) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CustomerId"), nameof(param)); } var order = await CartRepository.CompleteCheckoutAsync(param).ConfigureAwait(false); return(MapOrderToCompleteCheckoutViewModel(order, param.CultureInfo)); }
public void WHEN_param_is_null_SHOULD_throw_ArgumentNullException() { //Arrange CompleteCheckoutParam p = null; var sut = Container.CreateInstance <CartRepository>(); //Act var ex = Assert.ThrowsAsync <ArgumentNullException>(() => sut.CompleteCheckoutAsync(p)); //Assert ex.Message.Should().ContainEquivalentOf("param"); }
public void WHEN_CartName_Is_NullOrWhitespace_SHOULD_Throw_ArgumentException(string cartName) { var service = _container.CreateInstance <CheckoutService>(); var param = new CompleteCheckoutParam { Scope = GetRandom.String(10), CultureInfo = TestingExtensions.GetRandomCulture(), CustomerId = Guid.Empty, CartName = cartName, }; // Act var exception = Assert.ThrowsAsync <ArgumentException>(() => service.CompleteCheckoutAsync(param)); //Assert exception.ParamName.Should().BeSameAs("param"); exception.Message.Should().Contain("CartName"); }
public void WHEN_CultureInfo_Is_Null_SHOULD_Throw_ArgumentException() { var service = _container.CreateInstance <CheckoutService>(); var param = new CompleteCheckoutParam { Scope = GetRandom.String(10), CultureInfo = null, CustomerId = GetRandom.Guid(), CartName = GetRandom.String(32), }; // Act var exception = Assert.ThrowsAsync <ArgumentException>(() => service.CompleteCheckoutAsync(param)); //Assert exception.ParamName.Should().BeSameAs("param"); exception.Message.Should().Contain("CultureInfo"); }
public void WHEN_CartName_Is_NullOrWhitespace_SHOULD_Throw_ArgumentException(string cartName) { var service = _container.CreateInstance <CheckoutService>(); var param = new CompleteCheckoutParam { Scope = GetRandom.String(10), CultureInfo = TestingExtensions.GetRandomCulture(), CustomerId = Guid.Empty, CartName = cartName, }; // Act Expression <Func <Task <CompleteCheckoutViewModel> > > expression = () => service.CompleteCheckoutAsync(param); var exception = Assert.ThrowsAsync <ArgumentException>(() => expression.Compile().Invoke()); //Assert exception.ParamName.Should().BeEquivalentTo(GetParamsInfo(expression)[0].Name); exception.Message.Should().StartWith(GetMessageOfNullWhiteSpace(nameof(param.CartName))); }
public void WHEN_CartName_is_null_or_whitespace_SHOULD_throw_ArgumentException(string cartName) { //Arrange var p = new CompleteCheckoutParam() { CartName = cartName, CultureInfo = CultureInfo.CurrentCulture, CustomerId = Guid.Empty, Scope = GetRandom.String(10), }; var sut = Container.CreateInstance <CartRepository>(); //Act var ex = Assert.ThrowsAsync <ArgumentException>(() => sut.CompleteCheckoutAsync(p)); //Assert ex.ParamName.Should().ContainEquivalentOf("param"); ex.Message.Should().Contain("CartName"); }
public void WHEN_CultureInfo_is_null_SHOULD_throw_ArgumentNullException() { //Arrange var p = new CompleteCheckoutParam() { CartName = GetRandom.String(10), CultureInfo = null, CustomerId = GetRandom.Guid(), Scope = GetRandom.String(10), }; var sut = Container.CreateInstance <CartRepository>(); //Act var ex = Assert.ThrowsAsync <ArgumentException>(() => sut.CompleteCheckoutAsync(p)); //Assert ex.ParamName.Should().ContainEquivalentOf("param"); ex.Message.Should().ContainEquivalentOf("CultureInfo"); }
public Task <Order> CompleteCheckoutAsync(CompleteCheckoutParam param) { var order = new Order { Cart = new Overture.ServiceModel.Orders.Cart(), CustomerId = param.CustomerId.ToString(), ScopeId = param.Scope, Id = GetRandom.Guid().ToString(), CustomerName = GetRandom.String(25), OrderNumber = GetRandom.String(5), Created = GetRandom.DateTime(), CreatedBy = GetRandom.String(25), ItemCount = GetRandom.PositiveInt(), LastModified = GetRandom.DateTime(), LastModifiedBy = GetRandom.String(25), OrderStatus = GetRandom.String(10), Source = GetRandom.String(10) }; return(Task.FromResult(order)); }
public virtual Task <Overture.ServiceModel.Orders.Order> CompleteCheckoutAsync(CompleteCheckoutParam param) { if (param == null) { throw new ArgumentNullException("param", "param"); } if (string.IsNullOrWhiteSpace(param.CartName)) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("param.CartName"), "param"); } if (param.CultureInfo == null) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CultureInfo"), "param"); } if (param.CustomerId == Guid.Empty) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("CustomerId"), "param"); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(ArgumentNullMessageFormatter.FormatErrorMessage("Scope"), "param"); } var request = new CompleteCheckoutRequest { CartName = param.CartName, CultureName = param.CultureInfo.Name, CustomerId = param.CustomerId, ScopeId = param.Scope }; return(OvertureClient.SendAsync(request)); }
public virtual Task <Overture.ServiceModel.Orders.Order> CompleteCheckoutAsync(CompleteCheckoutParam param) { if (param == null) { throw new ArgumentNullException(nameof(param)); } if (string.IsNullOrWhiteSpace(param.CartName)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.CartName)), nameof(param)); } if (param.CultureInfo == null) { throw new ArgumentException(GetMessageOfNull(nameof(param.CultureInfo)), nameof(param)); } if (param.CustomerId == Guid.Empty) { throw new ArgumentException(GetMessageOfEmpty(nameof(param.CustomerId)), nameof(param)); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(GetMessageOfNullWhiteSpace(nameof(param.Scope)), nameof(param)); } var request = new CompleteCheckoutRequest { CartName = param.CartName, CultureName = param.CultureInfo.Name, CustomerId = param.CustomerId, ScopeId = param.Scope }; return(OvertureClient.SendAsync(request)); }
protected virtual async Task <CompleteCheckoutViewModel> MapOrderToCompleteCheckoutViewModel(Overture.ServiceModel.Orders.Order order, CompleteCheckoutParam param) { if (order == null) { return(null); } var orderStatuses = await LookupService.GetLookupDisplayNamesAsync(new GetLookupDisplayNamesParam { CultureInfo = param.CultureInfo, LookupType = LookupType.Order, LookupName = "OrderStatus", }).ConfigureAwait(false); var productImageInfo = new ProductImageInfo { ImageUrls = await ImageService.GetImageUrlsAsync(order.Cart.GetLineItems()).ConfigureAwait(false) }; var getVmOrderParam = new CreateOrderDetailViewModelParam { Order = order, CultureInfo = param.CultureInfo, OrderStatuses = orderStatuses, OrderDetailBaseUrl = OrderUrlProvider.GetOrderDetailsBaseUrl(param.CultureInfo), BaseUrl = param.BaseUrl, ProductImageInfo = productImageInfo, }; var orderViewModel = OrderDetailsViewModelFactory.CreateLightViewModel(getVmOrderParam); var completeCheckoutViewModel = new CompleteCheckoutViewModel { OrderNumber = order.OrderNumber, Order = orderViewModel, CustomerEmail = order.Cart.Customer.Email, CustomerFirstName = order.Cart.Customer.FirstName, CustomerLastName = order.Cart.Customer.LastName, Affiliation = order.Cart.OrderLocation?.Name, Revenu = order.Cart.Total, Tax = order.Cart.TaxTotal, Shipping = order.Cart.FulfillmentCost, ShippingOptions = order.Cart.Shipments?.FirstOrDefault()?.FulfillmentMethod.FulfillmentMethodType.ToString().ToLowerInvariant(), BillingCurrency = order.Cart.BillingCurrency, Coupons = MapCoupons(order, param.CultureInfo), LineItems = orderViewModel?.Shipments.FirstOrDefault()?.LineItems }; return(completeCheckoutViewModel); }