public void Calculate_ReturnsCorrectCharge_ForExtraCharges() { // Arrange IFee sut = new TruckFee(); // Act int actual = sut.Calculate(); // Assert Assert.AreEqual(10, actual); }
public T Create <T>() where T : IFee { if (typeof(T) == typeof(IStandardCarFee)) { IFee fee = new StandardCarFee(); return(( T )fee); } if (typeof(T) == typeof(ILuxuryCarFee)) { IFee fee = new LuxuryCarFee(new StandardCarFee()); return(( T )fee); } if (typeof(T) == typeof(IMotorbikeFee)) { IFee fee = new MotorbikeFee(); return(( T )fee); } if (typeof(T) == typeof(ITruckFee)) { IFee fee = new TruckFee(); return(( T )fee); } if (typeof(T) == typeof(IWeightFee)) { IFee fee = new WeightFee(); return(( T )fee); } if (typeof(T) == typeof(IVehicleFee)) { IFee fee = new VehicleFee(); return(( T )fee); } throw new ArgumentException("Unknown vehicle type '{0}'!".Inject(typeof(T))); }