public void TestPremium() { IInvoiceCalculator calc = new InvoiceCalculator(); Client client = new PremiumClient(); client.Id = 1; var parkingTimeList = new[] { new ParkingTimeInfo() { StartTime = DateTime.Today.AddHours(8).AddMinutes(12), EndTime = DateTime.Today.AddHours(10).AddMinutes(45), }, new ParkingTimeInfo() { StartTime = DateTime.Today.AddHours(7).AddMinutes(2), EndTime = DateTime.Today.AddHours(11).AddMinutes(56), }, new ParkingTimeInfo() { StartTime = DateTime.Today.AddHours(22).AddMinutes(10), EndTime = DateTime.Today.AddHours(22).AddMinutes(35), }, new ParkingTimeInfo() { StartTime = DateTime.Today.AddHours(19).AddMinutes(40), EndTime = DateTime.Today.AddHours(20).AddMinutes(35), }, }; var invoice = calc.CalculateInvoice(client, parkingTimeList); Assert.AreEqual(invoice.Price,38.25m); Assert.IsTrue(invoice.ClientId > 0); }
private Invoice CalculateInvoice(PremiumClient premiumClient, IList<ParkingTimeInfo> parkingTimes) { decimal MaxInvoice = 300.0m; decimal monthlyFee = 20.0m; decimal timeRangePriceDay = 1.0m; decimal timeRangePriceNight = 0.75m; var invoice = new Invoice(premiumClient.Id); Calculate(invoice, parkingTimes, timeRangePriceDay, timeRangePriceNight); invoice.Price += monthlyFee; if (invoice.Price > MaxInvoice) invoice.Price = MaxInvoice; return invoice; }
static void Main(string[] args) { BasicClient basic = new BasicClient("Christina", "Nastevska", "15/05/2016", 60); BusinessType1Client businessType1Client = new BusinessType1Client("Mark", "Markson", "14/05/2016", 70); BusinessType2Client businessType2Client = new BusinessType2Client("Homer", "Simpson", "15/05/2016", 80); FamilyClient famulyClient = new FamilyClient("Marge", "Simpson", "14/05/2016", 100, 5); PremiumClient premiumClient = new PremiumClient("Bart", "Simpson", "15/05/2016", 150); basic.displayInfo(); basic.set(new PromotionType1()); basic.promotions(); basic.services(); Console.Out.WriteLine("\n"); businessType1Client.displayInfo(); businessType1Client.services(); businessType1Client.promote(); Console.Out.WriteLine("\n"); premiumClient.displayInfo(); premiumClient.promote(); premiumClient.services(); Console.Out.WriteLine("\n"); famulyClient.displayInfo(); famulyClient.promote(); famulyClient.services(); Console.Out.WriteLine("\n"); businessType2Client.displayInfo(); businessType2Client.services(); businessType2Client.promote(); }