Beispiel #1
0
        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);
        }
Beispiel #2
0
        public void NotReturnedTest()
        {
            var rentTime   = DateTime.Now.AddDays(-1);
            var returnTime = (DateTime?)null;
            var price      = RentPriceTool.CalculatePrice(rentTime, returnTime);

            Assert.AreEqual(null, price);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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)));
        }
Beispiel #6
0
        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)));
        }