Example #1
0
        public void RideFrom0To12()
        {
            var scheduler = new Scheduler(_rideRepository, _taxiRepository, _ridePriceCalculator, _logger);
            var ride      = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 23, 0, 0));

            scheduler.AcceptRide(ride);
            ride = scheduler.OrderInnerCityRide(0, 12, new DateTime(2018, 1, 1, 9, 0, 0));
            scheduler.AcceptRide(ride);

            Assert.Equal(240, ride.Price);
            Assert.Equal("Nenad", ride.Taxi.DriverName);
        }
Example #2
0
        public static void Main(string[] args)
        {
            var rideRepo       = new RideRepository();
            var ridePriceCalc  = new RidePriceCalculator();
            var logger         = new Logger();
            var taxiRepository = new TaxiRepository(new List <Taxi>()
            {
                new Taxi(1, "Predrag", new TaxiCompany("Naxi", 10), 1),
                new Taxi(2, "Nenad", new TaxiCompany("Naxi", 10), 4),
                new Taxi(3, "Dragan", new TaxiCompany("Alfa", 15), 6),
                new Taxi(4, "Goran", new TaxiCompany("Gold", 13), 7)
            });


            var scheduler = new Scheduler(rideRepo, taxiRepository, ridePriceCalc, logger);

            Console.WriteLine("Ordering ride from 5 to 0...");
            var ride1 = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 23, 0, 0));

            scheduler.AcceptRide(ride1);
            Console.WriteLine("");


            Console.WriteLine("Ordering ride from 0 to 12...");
            var ride2 = scheduler.OrderInnerCityRide(0, 12, new DateTime(2018, 1, 1, 9, 0, 0));

            scheduler.AcceptRide(ride2);
            Console.WriteLine("");


            Console.WriteLine("Ordering ride from 5 to 0...");
            var ride3 = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 11, 0, 0));

            scheduler.AcceptRide(ride3);
            Console.WriteLine("");


            Console.WriteLine("Ordering ride from 35 to 12...");
            var ride4 = scheduler.OrderCityRide(35, 12, new DateTime(2018, 1, 1, 11, 0, 0));

            scheduler.AcceptRide(ride4);
            Console.WriteLine("");

            Console.WriteLine("Driver with ID = 2 earned today:");
            foreach (var r in scheduler.RidesOfTaxiDriver(2))
            {
                Console.WriteLine("Price: " + r.Price);
            }
            Console.WriteLine("Total: " + scheduler.EarningsOfTaxiDriver(2));
        }
Example #3
0
        public void DailyEarningsOfDriver2()
        {
            var scheduler = new Scheduler(_rideRepository, _taxiRepository, _ridePriceCalculator, _logger);

            //  setup
            var ride = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 23, 0, 0));

            scheduler.AcceptRide(ride);
            ride = scheduler.OrderInnerCityRide(0, 12, new DateTime(2018, 1, 1, 9, 0, 0));
            scheduler.AcceptRide(ride);
            ride = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 11, 0, 0));
            scheduler.AcceptRide(ride);


            Assert.Equal(340, scheduler.EarningsOfTaxiDriver(2));
        }
Example #4
0
        public void RideFrom5To0WhileFirstDriverIsBusy()
        {
            var scheduler = new Scheduler(_rideRepository, _taxiRepository, _ridePriceCalculator, _logger);

            //  setup (make a driver busy)
            var ride = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 23, 0, 0));

            scheduler.AcceptRide(ride);


            ride = scheduler.OrderCityRide(5, 0, new DateTime(2018, 1, 1, 11, 0, 0));
            scheduler.AcceptRide(ride);

            Assert.Equal(75, ride.Price);
            Assert.Equal("Dragan", ride.Taxi.DriverName);
        }
        public void AcceptRideNewLocation()
        {
            var scheduler = new Scheduler();
            var ride      = scheduler.OrderRide(5, 0, Constants.City, new DateTime(2018, 1, 1, 23, 0, 0));

            scheduler.AcceptRide(ride);

            Assert.AreEqual(scheduler.GetTaxi(2).Location, 0);
        }
Example #6
0
        private static void ScheduleRide(Scheduler scheduler, int locationFrom, int locationTo, int rideType, DateTime time)
        {
            Console.WriteLine(string.Format("Ordering ride from {0} to {1} ...", locationFrom.ToString(), locationTo.ToString()));
            Ride ride = scheduler.OrderRide(locationFrom, locationTo, rideType, time);

            if (ride == null)
            {
                Console.WriteLine("There are no available taxi vehicles!");
            }
            else
            {
                scheduler.AcceptRide(ride);
            }
            Console.WriteLine("");
        }
Example #7
0
        static void Main(string[] args)
        {
            Scheduler scheduler = new Scheduler();

            try
            {
                Console.WriteLine("Ordering ride from 5 to 0...");
                Ride ride = scheduler.OrderRide(5, 0, RideType.City, new DateTime(2018, 1, 1, 23, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                if (e.Message == "There are no available taxi vehicles!")
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine("");
                }
                else
                {
                    throw;
                }
            }

            try
            {
                Console.WriteLine("Ordering ride from 0 to 12...");
                Ride ride = scheduler.OrderRide(0, 12, RideType.InterCity, new DateTime(2018, 1, 1, 9, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                if (e.Message == "There are no available taxi vehicles!")
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine("");
                }
                else
                {
                    throw;
                }
            }

            try
            {
                Console.WriteLine("Ordering ride from 5 to 0...");
                Ride ride = scheduler.OrderRide(5, 0, RideType.City, new DateTime(2018, 1, 1, 11, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                if (e.Message == "There are no available taxi vehicles!")
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine("");
                }
                else
                {
                    throw;
                }
            }

            try
            {
                Console.WriteLine("Ordering ride from 35 to 12...");
                Ride ride = scheduler.OrderRide(35, 12, RideType.City, new DateTime(2018, 1, 1, 11, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                if (e.Message == "There are no available taxi vehicles!")
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine("");
                }
                else
                {
                    throw;
                }
            }

            Console.WriteLine("Driver with ID = 2 earned today:");
            int total = 0;

            foreach (Ride r in InMemoryRideDataBase.GetRideList(2))
            {
                total += r.Price;
                Console.WriteLine("Price: " + r.Price);
            }
            Console.WriteLine("Total: " + total);

            Console.ReadLine();
        }
Example #8
0
        static void Main(string[] args)
        {
            Scheduler scheduler = new Scheduler();

            try
            {
                Console.WriteLine("Ordering ride from 5 to 0...");
                Scheduler.Ride ride = scheduler.OrderRide(5, 0, Constants.City, new DateTime(2018, 1, 1, 23, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                OrderRideExceptionHandler(e);
            }

            try
            {
                Console.WriteLine("Ordering ride from 0 to 12...");
                Scheduler.Ride ride = scheduler.OrderRide(0, 12, Constants.InterCity, new DateTime(2018, 1, 1, 9, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                OrderRideExceptionHandler(e);
            }

            try
            {
                Console.WriteLine("Ordering ride from 5 to 0...");
                Scheduler.Ride ride = scheduler.OrderRide(5, 0, Constants.City, new DateTime(2018, 1, 1, 11, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                OrderRideExceptionHandler(e);
            }

            try
            {
                Console.WriteLine("Ordering ride from 35 to 12...");
                Scheduler.Ride ride = scheduler.OrderRide(35, 12, Constants.City, new DateTime(2018, 1, 1, 11, 0, 0));
                scheduler.AcceptRide(ride);
                Console.WriteLine("");
            }
            catch (Exception e)
            {
                OrderRideExceptionHandler(e);
            }

            Console.WriteLine("Driver with ID = 2 earned today:");
            int total = 0;

            foreach (Scheduler.Ride r in scheduler.GetRideList(2))
            {
                total += r.Price;
                Console.WriteLine("Price: " + r.Price);
            }
            Console.WriteLine("Total: " + total);

            Console.ReadLine();
        }