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)); }
public dynamic BookCar([FromBody] BookCarRequestModel request) { return(_bookingManager.bookCar(request)); }