public void CalculateTotalTest()
        {
            DateTime entry = DateTime.Parse("08:00:00 AM");
            DateTime exit  = entry.AddHours(60);

            Rate rt = cpManager.GetCorrectRate(entry, exit);

            rt.CalculateTotal(entry, exit);

            Assert.AreEqual(40.0M, rt.Price);
        }
        public void RateManagerCalculateTest()
        {
            DateTime entry = DateTime.Parse("12:00:00 PM");
            DateTime exit  = entry.AddHours(2);

            Rate currentRate = cpManager.GetCorrectRate(entry, exit);

            currentRate.CalculateTotal(entry, exit);

            Assert.AreEqual("Standard Rate", currentRate.Name);
            Assert.AreEqual("Hourly Rate", currentRate.Type);
            Assert.AreEqual(10.0M, currentRate.Price);
        }
        /// <summary>
        /// Main Calculate method
        /// </summary>
        /// <param name="enter">Entry Time</param>
        /// <param name="exit">Exit Time</param>
        public void Calculate(DateTime enter, DateTime exit)
        {
            //Ideally should use tryparse!
            if (enter != null && exit != null)
            {
                Rate patronRate = GetCorrectRate(enter, exit);
                patronRate.CalculateTotal(enter, exit);

                Console.WriteLine("Welcome to the Car Park!");
                Console.WriteLine("------------------------");
                Console.WriteLine("");
                Console.WriteLine("Your Rate is: {0} ", patronRate.Name);
                Console.WriteLine("Your Total Price is: ${0} ", patronRate.Price);

                Console.WriteLine("Thank you for using the car park!");
                Console.ReadLine();
            }
        }