private void TariffWindowsTest(DateTime rentTime, DateTime returnTime, decimal tariff) { var price = RentPriceTool.CalculatePrice(rentTime, returnTime); var expectedPrice = (int)Math.Round((decimal)(returnTime - rentTime).TotalSeconds * tariff); Assert.AreEqual(expectedPrice, price); }
public void NotReturnedTest() { var rentTime = DateTime.Now.AddDays(-1); var returnTime = (DateTime?)null; var price = RentPriceTool.CalculatePrice(rentTime, returnTime); Assert.AreEqual(null, price); }
public void PartHourTest() { var rentTime = new DateTime(2000, 1, 1, 0, 0, 0, 0); var returnTime = new DateTime(2000, 1, 1, 1, 0, 1, 0); var price = RentPriceTool.CalculatePrice(rentTime, returnTime); var expectedPrice = (int)Math.Round(2 * 3600 * RentPriceTool.Tariff1PerSecond); Assert.AreEqual(expectedPrice, price); }
public void NextDaySpanTest() { var rentTime = new DateTime(2000, 1, 1, 23, 0, 0, 0); var returnTime = new DateTime(2000, 1, 2, 8, 0, 0, 0); var price = RentPriceTool.CalculatePrice(rentTime, returnTime); var expectedPrice = (int)Math.Round(8 * 3600 * RentPriceTool.Tariff1PerSecond) + (int)Math.Round(3600 * RentPriceTool.Tariff2PerSecond); Assert.AreEqual(expectedPrice, price); }
public IHttpActionResult Post(Models.CarRent carRent) { if (!ModelState.IsValid) { return(BadRequest()); } if (!ValidateCarRent(carRent)) { return(BadRequest()); } carRent.Price = RentPriceTool.CalculatePrice(carRent.RentTime, carRent.ReturnTime); var carRentEntity = carRent.ToDataModel(); var db = new DataContext(); db.CarRents.Add(carRentEntity); db.SaveChanges(); return(Ok(Models.CarRent.FromDataModel(carRentEntity))); }
public IHttpActionResult Put(Models.CarRent carRent) { if (!ModelState.IsValid) { return(BadRequest()); } if (!ValidateCarRent(carRent)) { return(BadRequest()); } var db = new DataContext(); var carRentEntity = db.CarRents.Find(carRent.Id); if (carRentEntity == null) { return(NotFound()); } carRent.Price = RentPriceTool.CalculatePrice(carRent.RentTime, carRent.ReturnTime); carRent.FillDataModel(carRentEntity); db.Entry(carRentEntity).State = EntityState.Modified; db.SaveChanges(); return(Ok(Models.CarRent.FromDataModel(carRentEntity))); }