public void resetCars()
        {
            var  distanceManager = new Mock <IDistanceManager>();
            var  timeManager     = new Mock <ITimeManager>();
            var  bookingManager  = new BookingManager(distanceManager.Object, timeManager.Object);
            bool flag            = false;

            BookCarRequestModel bookCarRequestModel = new BookCarRequestModel(1, "C1", new DestinationOrigin(1, 1, false), new DestinationOrigin(2, 2, false));

            bookingManager.bookCar(bookCarRequestModel);
            bookingManager.incrementTimeStamp();


            bookingManager.reset();

            BookingManager.lstCars.ForEach(c =>
            {
                if (c.isBooked == true)
                {
                    flag = true;
                }
            });


            Assert.True(flag == false);
        }
        public void BookCarTest()
        {
            var distanceManager           = new Mock <IDistanceManager>();
            var timeManager               = new Mock <ITimeManager>();
            var bookingManagerBookCarTest = new BookingManager(distanceManager.Object, timeManager.Object);

            bookingManagerBookCarTest.reset();
            BookCarRequestModel bookCarRequestModel = new BookCarRequestModel(1, "C1", new DestinationOrigin(1, 1, false), new DestinationOrigin(2, 2, false));

            Assert.True(bookingManagerBookCarTest.bookCar(bookCarRequestModel).isBooked == true);
        }
        public void IncrementTimeStampForBookedCars()
        {
            var distanceManager = new Mock <IDistanceManager>();
            var timeManager     = new Mock <ITimeManager>();
            var bookingManager  = new BookingManager(distanceManager.Object, timeManager.Object);

            BookCarRequestModel bookCarRequestModel = new BookCarRequestModel(1, "C1", new DestinationOrigin(1, 1, false), new DestinationOrigin(2, 2, false));

            bookingManager.bookCar(bookCarRequestModel);


            bookingManager.incrementTimeStamp();

            Car car = BookingManager.lstCars.Where(c => c.isBooked == true).FirstOrDefault();

            Assert.True(car.currentPosition.x == 1);
        }
        public void AvailableCarsAfterBooking()
        {
            var distanceManager = new Mock <IDistanceManager>();
            var timeManager     = new Mock <ITimeManager>();
            var bookingManager  = new BookingManager(distanceManager.Object, timeManager.Object);

            BookCarRequestModel bookCarRequestModel = new BookCarRequestModel(1, "C1", new DestinationOrigin(1, 1, false), new DestinationOrigin(2, 2, false));

            bookingManager.bookCar(bookCarRequestModel);

            CarRequestModel bookCarRequestModel1 = new CarRequestModel();

            bookCarRequestModel1.customerPosition = new Origin(1, 1);
            bookCarRequestModel1.destination      = new Origin(2, 2);

            Assert.True(bookingManager.getAvailableCars(bookCarRequestModel1).car_id == 2);
        }
        public BookCarResponseModel bookCar(BookCarRequestModel bookCarRequestModel)
        {
            if (lstCars.Where(lc => lc.bookedBy == bookCarRequestModel.customerId).Count() != 0)
            {
                return(new BookCarResponseModel(string.Format("{0} is already booked", bookCarRequestModel.car_id), false));
            }
            Car car = lstCars.Find(c => c.id == bookCarRequestModel.car_id && c.isBooked == false);

            if (car != null)
            {
                car.isBooked = true;
                car.bookedBy = bookCarRequestModel.customerId;
                car.lstDestinationPosition.Clear();

                DestinationOrigin dOrigin  = new DestinationOrigin(bookCarRequestModel.customerCurrentPosition.x, bookCarRequestModel.customerCurrentPosition.y, false);
                DestinationOrigin dOrigin1 = new DestinationOrigin(bookCarRequestModel.customerDestinationPosition.x, bookCarRequestModel.customerDestinationPosition.y, false);

                car.lstDestinationPosition.Add(dOrigin);
                car.lstDestinationPosition.Add(dOrigin1);
                return(new BookCarResponseModel(string.Format("{0} is booked for {1}", bookCarRequestModel.car_id, bookCarRequestModel.customerId), true));
            }
            return(new BookCarResponseModel(string.Format("{0} is already booked", bookCarRequestModel.car_id), false));
        }
Exemplo n.º 6
0
 public dynamic BookCar([FromBody] BookCarRequestModel request)
 {
     return(_bookingManager.bookCar(request));
 }