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); }
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)); }
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)); }
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); }
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(""); }
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(); }
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(); }