public void TestUPSShippingIs425(ShippingOptions shippingMethod, double expectedCost) { IShippingCostStrategy shippingCostStrategy; switch (shippingMethod) { case ShippingOptions.FedEx: shippingCostStrategy = new ShippingCostStrategyFedEx(); break; case ShippingOptions.UPS: shippingCostStrategy = new ShippingCostStrategyUPS(); break; case ShippingOptions.USPS: shippingCostStrategy = new ShippingCostStrategyUSPS(); break; default: throw new ArgumentException($"Unknown shipping method: {shippingMethod}"); } var shippingCalculator = new ShippingCostCalculatorService(shippingCostStrategy); var order = TestHelpers.CreateOrder(shippingMethod); var cost = shippingCalculator.CalculateShippingCost(order); Assert.AreEqual((decimal)expectedCost, cost); }
public static Order CreateOrder(ShippingOptions shippingMethod) { return(new Order { ShippingMethod = shippingMethod, Destination = CreateAddress_Destination(), Origin = CreateAddress_Origin() }); }
public void GetHtmlTest() { IOptions options = new ShippingOptions(); string result = options.GetOptionString(); Assert.IsNotNull(result); Assert.IsTrue(result.Contains("\"shipping\":{")); }
public CheckoutResponse() { GiftCard = new GiftCard(); AppliedGiftCards = new List <GiftCard>(); BillingInfo = new Address(); ShippingInfo = new Address(); Cart = new Cart(); SavedAddresses = new List <SavedAddressOption>(); ShippingOptions = new ShippingOptions(); SavedCards = new List <Option>(); ReviewInfo = new ReviewInfo(); PayPalInfo = new PayPalInfo(); PaymentMethods = new List <Option>(); }
public void GetHtmlWithOptionsTest() { IOptions options = new ShippingOptions { AcceptedRegions = new List <string>() { "US" }, CollectShipping = true }; string result = options.GetOptionString(); Assert.IsNotNull(result); Assert.IsTrue(result.Contains("\"shipping\":{")); Assert.IsTrue(result.Contains("\"acceptedRegions\":[\"US\"]")); Assert.IsTrue(result.Contains("\"collectShipping\":\"true\"")); }
public Order(ShippingOptions shippingMethod, double weight = 0d, ProductType product = ProductType.Electronic) { ShippingMethod = shippingMethod; Product = product; Weight = weight; }
public OrderEditViewModel(IUnitOfWork db, ILogService log, DTOOrder order, IList <ShipmentProviderDTO> shipmentProviders, bool isFulfilmentUser) { EntityId = order.Id; Market = (MarketType)order.Market; MarketplaceId = order.MarketplaceId; BatchId = order.BatchId; OrderStatus = order.OrderStatus; OrderId = order.OrderId; ExpectedShipDate = order.EarliestShipDate; OnHold = order.OnHold; OnHoldUpdateDate = order.OnHoldUpdateDate; IsRefundLocked = order.IsRefundLocked ?? false; AddressValidationStatus = order.AddressValidationStatus; IsDismissAddressValidation = order.IsDismissAddressValidation; AddressVerifyRequestDate = order.AddressVerifyRequestDate; AttachedToOrderId = order.AttachedToOrderString; PersonName = order.PersonName; BuyerEmail = order.BuyerEmail; ShippingAddress1 = order.ShippingAddress1; ShippingAddress2 = order.ShippingAddress2; ShippingCity = order.ShippingCity; ShippingState = order.ShippingState; ShippingCountry = order.ShippingCountry; ShippingZip = order.ShippingZip; ShippingZipAddon = order.ShippingZipAddon; ShippingPhone = order.ShippingPhone; SourceShippingName = order.InitialServiceType; log.Info("OnEditOrder, Id=" + order.Id + " Before GetByOrderIdDto"); Comments = db.OrderComments.GetByOrderIdDto(order.Id).OrderBy(c => c.CreateDate) .Select(c => new CommentViewModel { Id = c.Id, Comment = c.Message, Type = c.Type, LinkedEmailId = c.LinkedEmailId, CommentDate = c.CreateDate, CommentByName = c.CreatedByName }).ToList(); Comments.ForEach(c => { c.OrderNumber = OrderId; //NOTE: for View Email Url (reply button) }); log.Info("OnEditOrder, Id=" + order.Id + " Before GetByOrderIdDto"); var addressGoogleValidationMessage = db.OrderNotifies.GetAll() .OrderByDescending(n => n.CreateDate) .FirstOrDefault(n => n.Type == (int)OrderNotifyType.AddressCheckGoogleGeocode && n.OrderId == order.Id); if (addressGoogleValidationMessage != null) { AddressGoogleValidationMessage = AddressHelper.GeocodeMessageToDisplay(addressGoogleValidationMessage.Message, false); } log.Info("OnEditOrder, Id=" + order.Id + " Before GetShippingOptions"); ShippingOptions = OrderViewModel.GetShippingOptions(order.ShippingInfos, (MarketType)order.Market, order.IsSignConfirmation, order.IsInsured, isFulfilmentUser, showOptionsPrices: false, showProviderName: false); ShippingProviders = OrderViewModel.GetShippingProviders(shipmentProviders, (MarketType)order.Market, order.MarketplaceId, order.ShippingCountry, order.SourceShippingService, order.OrderType); Shippings = order.ShippingInfos.Select(sh => new OrderShippingViewModel(sh)).ToList(); Packages = Shippings .Where(sh => sh.IsActive) .OrderBy(sh => sh.ShippingInfoId) .Select(p => new PackageViewModel() { ShippingId = p.ShippingInfoId, PackageLength = p.PackageLength, PackageWidth = p.PackageWidth, PackageHeight = p.PackageHeight, }) .ToList(); ManuallyShipmentProviderType = order.ShipmentProviderType; var shippingGroup = ShippingOptions.FirstOrDefault(x => x.Selected); ManuallyShippingGroupId = shippingGroup == null ? null : shippingGroup.Value; RequiredPackageSize = shippingGroup != null && shippingGroup.RequiredPackageSize; if (order.IsManuallyUpdated) { ManuallyPersonName = order.ManuallyPersonName; ManuallyShippingAddress1 = order.ManuallyShippingAddress1; ManuallyShippingAddress2 = order.ManuallyShippingAddress2; ManuallyShippingCity = order.ManuallyShippingCity; ManuallyShippingState = order.ManuallyShippingState; ManuallyShippingUSState = order.ManuallyShippingState; ManuallyShippingCountry = order.ManuallyShippingCountry; ManuallyShippingZip = order.ManuallyShippingZip; ManuallyShippingZipAddon = order.ManuallyShippingZipAddon; ManuallyShippingPhone = order.ManuallyShippingPhone; } else { ManuallyPersonName = order.PersonName; ManuallyShippingAddress1 = order.ShippingAddress1; ManuallyShippingAddress2 = order.ShippingAddress2; ManuallyShippingCity = order.ShippingCity; ManuallyShippingState = order.ShippingState; ManuallyShippingUSState = order.ShippingState; ManuallyShippingCountry = order.ShippingCountry; ManuallyShippingZip = order.ShippingZip; ManuallyShippingZipAddon = order.ShippingZipAddon; ManuallyShippingPhone = order.ShippingPhone; } IsManuallyUpdated = order.IsManuallyUpdated; IsPrime = order.OrderType == (int)OrderTypeEnum.Prime; //InsuredValue = order.TotalPrice; InsuredValue = order.Items.Sum(i => i.ItemPrice); IsInsured = order.IsInsured; IsSignConfirmation = order.IsSignConfirmation; HasBatchLabel = order.ShippingInfos.Any(sh => !String.IsNullOrEmpty(sh.TrackingNumber)); Items = SplitItems(order.Items).ToList(); if (order.Notifies != null) { var cancelationRequest = order.Notifies.FirstOrDefault(n => n.Type == (int)OrderNotifyType.CancellationRequest); if (cancelationRequest != null) { HasCancelationRequest = true; } var oversoldNotify = order.Notifies.FirstOrDefault(n => n.Type == (int)OrderNotifyType.OversoldItem || n.Type == (int)OrderNotifyType.OversoldOnHoldItem); if (oversoldNotify != null) { IsOversold = true; } } log.Info("OnEditOrder, Id=" + order.Id + " End OrderEditViewModel"); }