private FeesForVehicleFactory CreateSut(IFeeFactory factory = null) { if (factory == null) { factory = Substitute.For <IFeeFactory>(); } var sut = new FeesForVehicleFactory(factory); return(sut); }
public void Create_ReturnsVehicleWithVehicleFee_ForVehicleTypeLuxuryCar() { // Arrange var vehicle = Substitute.For <ILuxuryCar>(); FeesForVehicleFactory sut = CreateSut(); // Act IEnumerable <IFee> actual = sut.Create(vehicle); // Assert Assert.True(actual.Any(x => x is IVehicleFee)); }
public void ThrowsException_ForUnknowVehicleType() { // Arrange var vehicle = Substitute.For <IVehicle>(); vehicle.WeightInKilogram.Returns(MinWeightInKilogramToForceWeightFee); FeesForVehicleFactory sut = CreateSut(); // Act // Assert Assert.Throws <ArgumentException>(() => sut.Create(vehicle)); }
public void Create_ReturnsVehicleWithWeightFee_ForTruckAndHeavyVehicle() { // Arrange var vehicle = Substitute.For <ITruck>(); vehicle.WeightInKilogram.Returns(MinWeightInKilogramToForceWeightFee); FeesForVehicleFactory sut = CreateSut(); // Act IEnumerable <IFee> actual = sut.Create(vehicle); // Assert Assert.True(actual.Any(x => x is IWeightFee)); }
private static VehicleAndFeeFactory CreateSut(IVehicleFactory vehicleFactory = null, IFeesForVehicleFactory feeFactory = null) { if (vehicleFactory == null) { vehicleFactory = new TestIVehicleFactory(); } if (feeFactory == null) { feeFactory = new FeesForVehicleFactory(new TestIFeeFactory()); } var sut = new VehicleAndFeeFactory(vehicleFactory, feeFactory); return(sut); }
public void Release_CallsFactory_ForFees() { // Arrange var truckFee = Substitute.For <ITruckFee>(); var vehicleFee = Substitute.For <IVehicleFee>(); var vehicle = Substitute.For <ITruck>(); var factory = Substitute.For <IFeeFactory>(); factory.Create <IVehicleFee>().Returns(vehicleFee); factory.Create <ITruckFee>().Returns(truckFee); FeesForVehicleFactory sut = CreateSut(factory); IEnumerable <IFee> fees = sut.Create(vehicle); // Act sut.Release(fees); // Assert factory.Received(2).Release(Arg.Any <IFee>()); }