using ShippingCosts.Contracts; using ShippingCosts.Implementations; namespace ShippingCosts.Test; public sealed class SelfPickupTests { [Fact] public void InterfaceAndClassHierarchy() { var calculator = new SelfPickup(); calculator.Should() .NotBeAssignableTo("independent class") .And.BeAssignableTo("but implements interface"); } [Fact] public void CarrierName() { new SelfPickup().CarrierName.Should().Be("Self Pickup"); } [Theory] [InlineData("Italy", 5, 10, 15, 20)] [InlineData("Israel", 10, 20, 30, 40)] [InlineData("Malaysia", 1, 2, 3, 4)] public void CalculateShippingCosts_AlwaysZero(string targetCountry, int width, int height, int depth, double weight) { var box = Substitute.For(); box.Width.Returns(width); box.Height.Returns(height); box.Depth.Returns(depth); box.Weight.Returns(weight); new SelfPickup().CalculateShippingCosts(targetCountry, box).Should() .Be(0M, "shipping cost is always zero if picking the item up yourself"); } }