public async Task Get_Priority_Mail_Small_Flat_Rate_Box_Successfully(decimal weight) { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); // USPS Priority Mail 2-Day Small Flat Rate Box- $8.45 stamps.com is $7.90 var destination = new Address("5204 E BROADWAY AVE", "SPOKANE Valley", "WA", "99212", "US", isResidential: true); var package = UspsRateConfigurator.GetSmallFlatBox(weight); var config = new UspsRateConfigurator(_origin, destination, package, DateTime.Now); var(shipment, rateOptions) = config.Shipments[0]; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); // usps rate Assert.Equal(8.45m, rate?.TotalCharges); // stamps.com rate Assert.Equal(7.90m, config.StampsRate); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.TotalCharges2} - {rate?.GuaranteedDelivery}"); }
public async Task Get_Priority_Mail_Medium_Flat_Rate_Box_Successfully(decimal weight) { // use case for this shipment can be: // https://easykeys.com/1749_LAB_Mini_DUR-X_Schlage_Rekeying_Kit_LMDSCH.aspx var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); // 9405511298370116099860 Flat Rate Box 3 lbs. 12 oz. $13.75 // USPS Priority Mail 2-Day Medium Flat Rate Box- $15.50 var destination = new Address("5204 E BROADWAY AVE", "SPOKANE Valley", "WA", "99212", "US", isResidential: true); var package = UspsRateConfigurator.GetMediumFlatBox(weight); var config = new UspsRateConfigurator(_origin, destination, package, DateTime.Now); var(shipment, rateOptions) = config.Shipments[0]; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); Assert.Equal(15.50m, rate?.TotalCharges); Assert.Equal(13.75m, config.StampsRate); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.TotalCharges2} - {rate?.GuaranteedDelivery}"); }
public async Task Get_First_Class_International_Package_Successfully(string w, string c) { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); var weight = Convert.ToDecimal(w); var charge = Convert.ToDecimal(c); // dest: "1/2495 Big River Way, ULMARRA, AU" var destination = new Address("1/2495 Big River Way", "ULMARRA", string.Empty, string.Empty, "AU", isResidential: true); // CASE: $25.05 // USPS Priority Mail International - $61.40 // 1 lbs 6oz (25.60oz) var package = UspsRateConfigurator.GetIntlBox(weight); var config = new UspsRateConfigurator(_origin, destination, package, DateTime.Now); var(shipment, rateOptions) = config.Shipments[0]; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); // Assert.Equal(29.75m, rate.TotalCharges); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.GuaranteedDelivery}"); }
public async Task Get_First_Class_Package_2oz_Successfully() { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); // https://www.stamps.com/usps/first-class-package-service/ // USPS First-Class Package Service - Retail- $4.15 weight .0125M var destination = new Address(" 6828 ARJAY DR", "INDIANAPOLIS", "IN", "46217 - 3001", "US", isResidential: true); // USPS First-Class Package Service - Retail-6.40- PACKAGE_SERVICE_RETAIL // USPS First-Class Mail Large Envelope - 3.40 - FLAT var weight = 2.00m / 16; var package = UspsRateConfigurator.GetFirstClassPackage(weight); var config = new UspsRateConfigurator(_origin, destination, package, DateTime.Now); var(shipment, rateOptions) = config.Shipments[0]; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); Assert.Equal(4.15m, rate?.TotalCharges); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.GuaranteedDelivery}"); }
public async Task Get_First_Class_And_Priority_Mail_Successfully(decimal weightInOz, decimal charge) { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); // https://www.stamps.com/usps/first-class-package-service/ // USPS First-Class Package Service - Retail- $4.15 weight .0125M var destination = new Address("229 S GREEN ST", "HENDERSON", "KY", "42420-3540", "US", isResidential: true); var weight = weightInOz / 16; var package = UspsRateConfigurator.GetFirstClassPackage(weight); var configs = new UspsRateConfigurator(_origin, destination, package, DateTime.Now); foreach (var(shipment, rateOptions) in configs.Shipments) { var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); // Assert.Equal(charge, rate.TotalCharges); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.GuaranteedDelivery}"); } }
public async Task Get_First_Class_International_Mail_Successfully(string w, string c) { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); var weight = Convert.ToDecimal(w); var charge = Convert.ToDecimal(c); var destination = new Address("1851, BUR JUMAN BUSINESS TOWER,MAKHOOL ", "Dubai", string.Empty, string.Empty, "AE", isResidential: true); // CASE: UM606525025US First Class International (R) Large Envelope or Flat $36.56 weight 2 lbs 4 oz var packages = new List <Package> { // weight from 1 oz to 4lbs for First-Class Package International Service UspsRateConfigurator.GetIntlBox(weight) }; var shipOptions = new ShipmentOptions { PackagingType = nameof(IntlPackageType.ALL), ShippingDate = DateTime.Now.AddBusinessDays(1), }; var shipment = new Shipment(_origin, destination, packages, shipOptions); var rateOptions = new UspsRateOptions { ServiceName = "First-Class Package International Service" }; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); // expectable rate for this package due to the weight Assert.Equal(charge, rate?.TotalCharges); Assert.Null(rate?.GuaranteedDelivery); _output.WriteLine($"{rate?.ServiceName} - ${rate?.TotalCharges} - {rate?.GuaranteedDelivery}"); }
public async Task Get_Priority_Mail_International_Package_5lbs_Successfully() { var sp = GetServices(); var provider = sp.GetRequiredService <IUspsRateProvider>(); Assert.NotNull(provider); var destination = new Address("FLAT 22 TOLBUT COURT", "ROMFORD", string.Empty, string.Empty, "GB", isResidential: true); var packages = new List <Package> { // https://www.usps.com/international/priority-mail-international.htm // Maximum weight for Priority Mail International Flat Rate Envelopes and small Flat Rate Boxes is 4 lbs. // Fast international delivery time: 6–10 business days // new Package(11M, 5M, 1M, 5M, 0.0M), UspsRateConfigurator.GetIntlBox(5m) }; var shipOptions = new ShipmentOptions { PackagingType = nameof(IntlPackageType.PACKAGE), ShippingDate = DateTime.Now.AddBusinessDays(1), }; var shipment = new Shipment(_origin, destination, packages, shipOptions); var rateOptions = new UspsRateOptions { ServiceName = "Priority Mail International" }; var result = await provider.GetRatesAsync(shipment, rateOptions); var rate = result.Rates.FirstOrDefault(); Assert.NotNull(rate); Assert.Equal(77.60m, rate?.TotalCharges); _output.WriteLine($"{rate?.ServiceName}- ${rate?.TotalCharges} - {rate?.GuaranteedDelivery}"); }