diff --git a/ShippingRates.Tests/Helpers/DHLServicesValidatorTests.cs b/ShippingRates.Tests/Helpers/DHLServicesValidatorTests.cs index 5f8ecef..1bb8949 100644 --- a/ShippingRates.Tests/Helpers/DHLServicesValidatorTests.cs +++ b/ShippingRates.Tests/Helpers/DHLServicesValidatorTests.cs @@ -1,7 +1,8 @@ using NUnit.Framework; +using ShippingRates.Helpers; using System.Linq; -namespace ShippingRates.Helpers.Tests +namespace ShippingRates.Tests.Helpers { [TestFixture()] public class DHLServicesValidatorTests diff --git a/ShippingRates.Tests/Helpers/Extensions/AddressExtensionsTests.cs b/ShippingRates.Tests/Helpers/Extensions/AddressExtensionsTests.cs index 0f6fa6a..b2dcf2f 100644 --- a/ShippingRates.Tests/Helpers/Extensions/AddressExtensionsTests.cs +++ b/ShippingRates.Tests/Helpers/Extensions/AddressExtensionsTests.cs @@ -1,6 +1,7 @@ using NUnit.Framework; +using ShippingRates.Helpers.Extensions; -namespace ShippingRates.Helpers.Extensions.Tests +namespace ShippingRates.Tests.Helpers.Extensions { [TestFixture()] public class AddressExtensionsTests diff --git a/ShippingRates.Tests/Models/ShipmentTests.cs b/ShippingRates.Tests/Models/ShipmentTests.cs index 6770fee..d7e5f62 100644 --- a/ShippingRates.Tests/Models/ShipmentTests.cs +++ b/ShippingRates.Tests/Models/ShipmentTests.cs @@ -1,12 +1,7 @@ using NUnit.Framework; -using ShippingRates; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace ShippingRates.Tests +namespace ShippingRates.Tests.Models { [TestFixture()] public class ShipmentTests @@ -26,9 +21,12 @@ public void ShipmentTest_HasDocumentsOnly() var shipmentWithSomeDocs = new Shipment(from, to, new List() { package1, docsPackage1, package2 }); var shipmentAllDocs = new Shipment(from, to, new List() { docsPackage1, docsPackage2 }); - Assert.IsFalse(shipmentNoDocs.HasDocumentsOnly); - Assert.IsFalse(shipmentWithSomeDocs.HasDocumentsOnly); - Assert.IsTrue(shipmentAllDocs.HasDocumentsOnly); + Assert.Multiple(() => + { + Assert.That(shipmentNoDocs.HasDocumentsOnly, Is.False); + Assert.That(shipmentWithSomeDocs.HasDocumentsOnly, Is.False); + Assert.That(shipmentAllDocs.HasDocumentsOnly, Is.True); + }); } } } diff --git a/ShippingRates.Tests/ShippingProviders/FedExShipRates.cs b/ShippingRates.Tests/ShippingProviders/FedExShipRates.cs index 3121c3a..88fdf53 100644 --- a/ShippingRates.Tests/ShippingProviders/FedExShipRates.cs +++ b/ShippingRates.Tests/ShippingProviders/FedExShipRates.cs @@ -58,12 +58,15 @@ public void FedExReturnsRates() var r = _rateManager.GetRates(from, to, package); var fedExRates = r.Rates.ToList(); - Assert.NotNull(r); - Assert.True(fedExRates.Any()); + Assert.Multiple(() => + { + Assert.That(r, Is.Not.Null); + Assert.That(fedExRates, Is.Not.Empty); + }); foreach (var rate in fedExRates) { - Assert.True(rate.TotalCharges > 0); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); } } @@ -74,18 +77,23 @@ public void FedExReturnsErrors() var to = new Address("", "", "30404", "US"); var package = new Package(7, 7, 7, 6, 1); - var r = _rateManager.GetRates(from, to, package); - var fedExRates = r.Rates.ToList(); + var rates = _rateManager.GetRates(from, to, package); - Assert.NotNull(r); - Assert.False(fedExRates.Any()); - Assert.AreEqual(r.Errors.Count, 1); + Assert.Multiple(() => + { + Assert.That(rates, Is.Not.Null); + Assert.That(rates.Rates, Is.Empty); + }); + Assert.That(rates.Errors, Has.Count.EqualTo(1)); - var error = r.Errors.FirstOrDefault(); - Assert.NotNull(error); - Assert.AreEqual(error.Number, "521"); - Assert.NotNull(error.Description); - Assert.AreEqual(error.Description[..42], "Destination postal code missing or invalid"); + var error = rates.Errors.FirstOrDefault(); + Assert.That(error, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(error.Number, Is.EqualTo("521")); + Assert.That(error.Description, Is.Not.Null); + }); + Assert.That(error.Description[..42], Is.EqualTo("Destination postal code missing or invalid")); } @@ -149,28 +157,40 @@ public void FedExFreight() var rates = _rateManager.GetRates(from, to, package); - Assert.True(rates.Rates.Any()); - Assert.True(!rates.Rates.Any(r => !r.Name.Contains("Freight"))); + Assert.Multiple(() => + { + Assert.That(rates.Rates, Is.Not.Empty); + Assert.That(rates.Rates.All(r => r.Name.Contains("Freight")), Is.True); + }); } private static void AssertRatesAreNotEqual(Shipment r1, Shipment r2, string methodCode = null) { - Assert.NotNull(r1?.Rates); - Assert.NotNull(r2?.Rates); - Assert.True(r1.Rates.Any()); - Assert.True(r2.Rates.Any()); + Assert.Multiple(() => + { + Assert.That(r1?.Rates, Is.Not.Null); + Assert.That(r2?.Rates, Is.Not.Null); + }); + Assert.Multiple(() => + { + Assert.That(r1.Rates, Is.Not.Empty); + Assert.That(r2.Rates, Is.Not.Empty); + }); var commonCode = methodCode ?? r1.Rates .Select(r => r.ProviderCode) .Where(c => r2.Rates.Select(r => r.ProviderCode).Contains(c)) .FirstOrDefault(); - Assert.NotNull(commonCode); + Assert.That(commonCode, Is.Not.Null); var rate1 = r1.Rates.FirstOrDefault(r => r.ProviderCode == commonCode); var rate2 = r2.Rates.FirstOrDefault(r => r.ProviderCode == commonCode); - Assert.NotNull(rate1); - Assert.NotNull(rate2); - Assert.AreNotEqual(rate1.TotalCharges, rate2.TotalCharges); + Assert.Multiple(() => + { + Assert.That(rate1, Is.Not.Null); + Assert.That(rate2, Is.Not.Null); + }); + Assert.That(rate2.TotalCharges, Is.Not.EqualTo(rate1.TotalCharges)); } [Test] @@ -188,11 +208,10 @@ public async Task FedExSaturdayDelivery() ShippingDate = nextFriday, SaturdayDelivery = true }); - var fedExRates = r.Rates.ToList(); - Assert.NotNull(r); - Assert.True(fedExRates.Any()); - Assert.True(fedExRates.Any(r => r.Options.SaturdayDelivery)); + Assert.That(r, Is.Not.Null); + Assert.That(r.Rates, Is.Not.Empty); + Assert.That(r.Rates.Any(r => r.Options.SaturdayDelivery), Is.True); } [Test] @@ -203,11 +222,10 @@ public async Task FedExCurrency() var package = new Package(1, 1, 1, 5, 1); var r = await _rateManager.GetRatesAsync(from, to, package); - var fedExRates = r.Rates.ToList(); - Assert.NotNull(r); - Assert.True(fedExRates.Any()); - Assert.False(fedExRates.Any(r => r.TotalCharges > 1000)); + Assert.That(r, Is.Not.Null); + Assert.That(r.Rates, Is.Not.Empty); + Assert.That(r.Rates.Any(r => r.TotalCharges > 1000), Is.False); } [Test] @@ -221,11 +239,10 @@ public async Task FedExPreferredCurrency() { PreferredCurrencyCode = "USD" }); - var fedExRates = r.Rates.ToList(); - Assert.NotNull(r); - Assert.True(fedExRates.Any()); - Assert.False(fedExRates.Any(r => r.CurrencyCode != "USD")); + Assert.That(r, Is.Not.Null); + Assert.That(r.Rates, Is.Not.Empty); + Assert.That(r.Rates.Any(r => r.CurrencyCode != "USD"), Is.False); var rEuro = await _rateManager.GetRatesAsync(from, to, package, new ShipmentOptions() { @@ -233,9 +250,9 @@ public async Task FedExPreferredCurrency() }); var fedExEuroRates = rEuro.Rates.ToList(); - Assert.NotNull(rEuro); - Assert.True(fedExEuroRates.Any()); - Assert.False(fedExEuroRates.Any(r => r.CurrencyCode != "EUR")); + Assert.That(rEuro, Is.Not.Null); + Assert.That(rEuro.Rates, Is.Not.Empty); + Assert.That(rEuro.Rates.Any(r => r.CurrencyCode != "EUR"), Is.False); } /* @@ -293,8 +310,8 @@ public void CanGetFedExServiceCodes() { var serviceCodes = _provider.GetServiceCodes(); - Assert.NotNull(serviceCodes); - Assert.IsNotEmpty(serviceCodes); + Assert.That(serviceCodes, Is.Not.Null); + Assert.That(serviceCodes, Is.Not.Empty); } } } diff --git a/ShippingRates.Tests/ShippingProviders/UPSRates.cs b/ShippingRates.Tests/ShippingProviders/UPSRates.cs index 70e11ae..dd115a5 100644 --- a/ShippingRates.Tests/ShippingProviders/UPSRates.cs +++ b/ShippingRates.Tests/ShippingProviders/UPSRates.cs @@ -11,12 +11,12 @@ namespace ShippingRates.Tests.ShippingProviders [TestFixture] public class UPSRates { - private Address InternationalAddress2; - private Package Package2; private readonly Address DomesticAddress1; private readonly Address DomesticAddress2; private readonly Address InternationalAddress1; + private readonly Address InternationalAddress2; private readonly Package Package1; + private readonly Package Package2; private readonly Package Package1SignatureRequired; private readonly string UPSAccountNumber; private readonly string UPSClientId; @@ -50,14 +50,17 @@ public void UPS_Domestic_Returns_Rates_When_Using_International_Addresses_For_Si Debug.WriteLine($"Rates returned: {(response.Rates.Any() ? response.Rates.Count.ToString() : "0")}"); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -73,14 +76,17 @@ public void UPS_Returns_Multiple_Rates_When_Using_Valid_Addresses_For_All_Servic Debug.WriteLine($"Rates returned: {(response.Rates.Any() ? response.Rates.Count.ToString() : "0")}"); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -96,14 +102,17 @@ public void UPS_Returns_Multiple_Rates_When_Using_Valid_Addresses_For_All_Servic Debug.WriteLine($"Rates returned: {(response.Rates.Any() ? response.Rates.Count.ToString() : "0")}"); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -170,14 +179,17 @@ public void UPS_Returns_Rates_When_Using_International_Destination_Addresses_For Debug.WriteLine($"Rates returned: {(response.Rates.Any() ? response.Rates.Count.ToString() : "0")}"); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -196,13 +208,16 @@ public void UPS_Returns_Single_Rate_When_Using_Domestic_Addresses_For_Single_Ser Debug.WriteLine($"Rates returned: {(response.Rates.Any() ? response.Rates.Count.ToString() : "0")}"); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); - Assert.AreEqual(response.Rates.Count, 1); - Assert.Greater(response.Rates.First().TotalCharges, 0); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); + Assert.That(response.Rates, Has.Count.EqualTo(1)); + Assert.That(response.Rates.First().TotalCharges, Is.GreaterThan(0)); // Expect something around $25, not $2500 - Assert.Less(response.Rates.First().TotalCharges, 100); + Assert.That(response.Rates.First().TotalCharges, Is.LessThan(100)); Debug.WriteLine(response.Rates.First().Name + ": " + response.Rates.First().TotalCharges); } @@ -212,8 +227,8 @@ public void CanGetUpsServiceCodes() { var serviceCodes = UPSProvider.GetServiceCodes(); - Assert.NotNull(serviceCodes); - Assert.IsNotEmpty(serviceCodes); + Assert.That(serviceCodes, Is.Not.Null); + Assert.That(serviceCodes, Is.Not.Empty); } [Test] @@ -227,19 +242,25 @@ public void Can_Get_Different_Rates_For_Signature_Required_Lookup() Debug.WriteLine(string.Format("Rates returned: {0}", nonSignatureResponse.Rates.Any() ? nonSignatureResponse.Rates.Count.ToString() : "0")); - Assert.NotNull(nonSignatureResponse); - Assert.IsNotEmpty(nonSignatureResponse.Rates); - Assert.IsEmpty(nonSignatureResponse.Errors); - Assert.AreEqual(nonSignatureResponse.Rates.Count, 1); - Assert.True(nonSignatureResponse.Rates.First().TotalCharges > 0); + Assert.That(nonSignatureResponse, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(nonSignatureResponse.Rates, Is.Not.Empty); + Assert.That(nonSignatureResponse.Errors, Is.Empty); + }); + Assert.That(nonSignatureResponse.Rates, Has.Count.EqualTo(1)); + Assert.That(nonSignatureResponse.Rates.First().TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(string.Format("Rates returned: {0}", signatureResponse.Rates.Any() ? signatureResponse.Rates.Count.ToString() : "0")); - Assert.NotNull(signatureResponse); - Assert.IsNotEmpty(signatureResponse.Rates); - Assert.IsEmpty(signatureResponse.Errors); - Assert.AreEqual(signatureResponse.Rates.Count, 1); - Assert.True(signatureResponse.Rates.First().TotalCharges > 0); + Assert.That(signatureResponse, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(signatureResponse.Rates, Is.Not.Empty); + Assert.That(signatureResponse.Errors, Is.Empty); + }); + Assert.That(signatureResponse.Rates, Has.Count.EqualTo(1)); + Assert.That(signatureResponse.Rates.First().TotalCharges, Is.GreaterThan(0)); // Now compare prices foreach (var signatureRate in signatureResponse.Rates) @@ -250,7 +271,7 @@ public void Can_Get_Different_Rates_For_Signature_Required_Lookup() { var signatureTotalCharges = signatureRate.TotalCharges; var nonSignatureTotalCharges = nonSignatureRate.TotalCharges; - Assert.AreNotEqual(signatureTotalCharges, nonSignatureTotalCharges); + Assert.That(nonSignatureTotalCharges, Is.Not.EqualTo(signatureTotalCharges)); } } } @@ -275,9 +296,12 @@ public async Task UPSSaturdayDelivery() }); var fedExRates = r.Rates.ToList(); - Assert.NotNull(r); - Assert.True(fedExRates.Any()); - Assert.True(fedExRates.Any(r => r.Options.SaturdayDelivery)); + Assert.Multiple(() => + { + Assert.That(r, Is.Not.Null); + Assert.That(fedExRates.Any(), Is.True); + Assert.That(fedExRates.Any(r => r.Options.SaturdayDelivery), Is.True); + }); } //// Euro rates for shipping in Europe diff --git a/ShippingRates.Tests/ShippingProviders/USPSInternationalRates.cs b/ShippingRates.Tests/ShippingProviders/USPSInternationalRates.cs index e1d956d..a4699a8 100644 --- a/ShippingRates.Tests/ShippingProviders/USPSInternationalRates.cs +++ b/ShippingRates.Tests/ShippingProviders/USPSInternationalRates.cs @@ -61,14 +61,17 @@ public void USPS_Intl_Returns_Multiple_Rates_When_Using_Multiple_Packages_For_Al Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -85,14 +88,17 @@ public void USPS_Intl_Returns_Multiple_Rates_When_Using_Valid_Addresses_For_All_ Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -109,8 +115,8 @@ public void USPS_Intl_Returns_No_Rates_When_Using_Invalid_Addresses_For_All_Serv Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsEmpty(response.Rates); + Assert.That(response, Is.Not.Null); + Assert.That(response.Rates, Is.Empty); } [Test] @@ -126,8 +132,8 @@ public void USPS_Intl_Returns_No_Rates_When_Using_Invalid_Addresses_For_Single_S Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsEmpty(response.Rates); + Assert.That(response, Is.Not.Null); + Assert.That(response.Rates, Is.Empty); } [Test] @@ -141,11 +147,13 @@ public void USPS_Intl_Returns_Single_Rate_When_Using_Valid_Addresses_For_Single_ Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); - Assert.AreEqual(response.Rates.Count, 1); - Assert.True(response.Rates.First().TotalCharges > 0); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Errors, Is.Empty); + Assert.That(response.Rates, Has.Count.EqualTo(1)); + }); + Assert.That(response.Rates.First().TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(response.Rates.First().Name + ": " + response.Rates.First().TotalCharges); } @@ -158,7 +166,7 @@ public void USPS_Intl_Returns_First_Class_Mail_Rates_For_FirstClassLetterWithNoV rateManager.AddProvider(new USPSInternationalProvider(GetConfiguration(), httpClient)); var response = rateManager.GetRates(_domesticAddress1, _internationalAddress2, _firstClassLetterWithNoValue); - Assert.True(response.Rates.Any(IsFirstClassMailRate)); + Assert.That(response.Rates.Any(IsFirstClassMailRate), Is.True); } [Test] @@ -169,7 +177,7 @@ public void USPS_Intl_Returns_No_First_Class_Mail_Rates_For_FirstClassLetterWith rateManager.AddProvider(new USPSInternationalProvider(GetConfiguration(), httpClient)); var response = rateManager.GetRates(_domesticAddress1, _internationalAddress2, _firstClassLetterWithValue); - Assert.False(response.Rates.Any(IsFirstClassMailRate)); + Assert.That(response.Rates.Any(IsFirstClassMailRate), Is.False); } [Test] @@ -182,7 +190,7 @@ public void USPS_Intl_Returns_No_First_Class_Mail_Rates_For_Package() var package = new Package(7m, 5m, 0.1m, FirstClassLetterMaxWeight, 0); var response = rateManager.GetRates(_domesticAddress1, _internationalAddress2, package); - Assert.False(response.Rates.Any(IsFirstClassMailRate)); + Assert.That(response.Rates.Any(IsFirstClassMailRate), Is.False); } [Test] @@ -191,8 +199,8 @@ public void CanGetUspsInternationalServiceCodes() var provider = new USPSInternationalProvider(GetConfiguration()); var serviceCodes = provider.GetServiceCodes(); - Assert.NotNull(serviceCodes); - Assert.IsNotEmpty(serviceCodes); + Assert.That(serviceCodes, Is.Not.Null); + Assert.That(serviceCodes, Is.Not.Empty); } [Test] @@ -205,9 +213,12 @@ public async Task USPSCurrency() var response = await rateManager.GetRatesAsync(_domesticAddress1, _internationalAddress2, _package1); var rates = response.Rates; - Assert.NotNull(response); - Assert.True(rates.Any()); - Assert.False(rates.Any(r => r.CurrencyCode != "USD")); + Assert.Multiple(() => + { + Assert.That(response, Is.Not.Null); + Assert.That(rates.Any(), Is.True); + Assert.That(rates.Any(r => r.CurrencyCode != "USD"), Is.False); + }); } private bool IsFirstClassMailRate(Rate rate) diff --git a/ShippingRates.Tests/ShippingProviders/USPSProviderTests.cs b/ShippingRates.Tests/ShippingProviders/USPSProviderTests.cs index b4c4098..a2186cc 100644 --- a/ShippingRates.Tests/ShippingProviders/USPSProviderTests.cs +++ b/ShippingRates.Tests/ShippingProviders/USPSProviderTests.cs @@ -51,15 +51,18 @@ public void USPS_Domestic_Returns_Multiple_Rates_When_Using_Valid_Addresses_For_ Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); - Assert.IsEmpty(response.InternalErrors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + Assert.That(response.InternalErrors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -76,14 +79,17 @@ public void USPS_Domestic_Returns_Multiple_Rates_When_Using_Valid_Addresses_For_ Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -100,9 +106,12 @@ public void USPS_Domestic_Returns_No_Rates_When_Using_Invalid_Addresses_For_All_ Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Empty); + Assert.That(response.Errors, Is.Empty); + }); } [Test] @@ -116,9 +125,12 @@ public void USPS_Domestic_Returns_No_Rates_When_Using_Invalid_Addresses_For_Sing Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsEmpty(response.Rates); - Assert.IsEmpty(response.Errors); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Empty); + Assert.That(response.Errors, Is.Empty); + }); } [Test] @@ -132,11 +144,14 @@ public void USPS_Domestic_Returns_Single_Rate_When_Using_Valid_Addresses_For_Sin Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); - Assert.IsEmpty(response.Errors); - Assert.AreEqual(response.Rates.Count, 1); - Assert.True(response.Rates.First().TotalCharges > 0); + Assert.That(response, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(response.Rates, Is.Not.Empty); + Assert.That(response.Errors, Is.Empty); + }); + Assert.That(response.Rates, Has.Count.EqualTo(1)); + Assert.That(response.Rates.First().TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(response.Rates.First().Name + ": " + response.Rates.First().TotalCharges); } @@ -147,8 +162,8 @@ public void CanGetUspsServiceCodes() var provider = new USPSProvider(GetConfiguration()); var serviceCodes = provider.GetServiceCodes(); - Assert.NotNull(serviceCodes); - Assert.IsNotEmpty(serviceCodes); + Assert.That(serviceCodes, Is.Not.Null); + Assert.That(serviceCodes, Is.Not.Empty); } [Test] @@ -229,10 +244,13 @@ public void USPSDiscountedRates() private static void AssertIsValidNonEmptyResponse(Shipment shipment) { - Assert.NotNull(shipment); - Assert.IsNotEmpty(shipment.Rates); - Assert.IsEmpty(shipment.Errors); - Assert.True(shipment.Rates.First().TotalCharges > 0); + Assert.That(shipment, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(shipment.Rates, Is.Not.Empty); + Assert.That(shipment.Errors, Is.Empty); + }); + Assert.That(shipment.Rates.First().TotalCharges, Is.GreaterThan(0)); } private static void AssertRatesAreDifferent(List ratesA, List ratesB) @@ -249,7 +267,7 @@ private static void AssertRatesAreDifferent(List ratesA, List ratesB break; } - Assert.IsTrue(hasDifference); + Assert.That(hasDifference, Is.True); } [Test] @@ -272,8 +290,8 @@ public async Task USPS_Domestic_Saturday_Delivery() SaturdayDelivery = true }); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); + Assert.That(response, Is.Not.Null); + Assert.That(response.Rates, Is.Not.Empty); // Sometimes only Priority Mail Express 2-Day works and we have to try it on Thursday if (!response.Rates.Any(r => r.Options.SaturdayDelivery)) @@ -284,19 +302,22 @@ public async Task USPS_Domestic_Saturday_Delivery() SaturdayDelivery = true }); - Assert.NotNull(response); - Assert.IsNotEmpty(response.Rates); + Assert.That(response, Is.Not.Null); + Assert.That(response.Rates, Is.Not.Empty); } Debug.WriteLine(string.Format("Rates returned: {0}", response.Rates.Any() ? response.Rates.Count.ToString() : "0")); - Assert.IsEmpty(response.Errors); - Assert.True(response.Rates.Any(r => r.Options.SaturdayDelivery)); + Assert.Multiple(() => + { + Assert.That(response.Errors, Is.Empty); + Assert.That(response.Rates, Has.Some.Matches(r => r.Options.SaturdayDelivery)); + }); foreach (var rate in response.Rates) { - Assert.NotNull(rate); - Assert.True(rate.TotalCharges > 0); + Assert.That(rate, Is.Not.Null); + Assert.That(rate.TotalCharges, Is.GreaterThan(0)); Debug.WriteLine(rate.Name + ": " + rate.TotalCharges); } @@ -317,7 +338,7 @@ public async Task USPS_ThreeAndAHalfOunceLetter_Qualifies_For_First_Class_Mail_L var response = await rateManager.GetRatesAsync(origin, destination, firstClassLetter); - Assert.True(response.Rates.Any(r => + Assert.That(response.Rates, Has.Some.Matches(r => r.ProviderCode is "First-Class Mail Stamped Letter" or "First-Class Mail Metered Letter")); } } diff --git a/ShippingRates.Tests/ShippingRates.Tests.csproj b/ShippingRates.Tests/ShippingRates.Tests.csproj index 8ab8fc2..02f4328 100644 --- a/ShippingRates.Tests/ShippingRates.Tests.csproj +++ b/ShippingRates.Tests/ShippingRates.Tests.csproj @@ -10,14 +10,10 @@ - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive