public void BookRoom_WhenOverlapsForTheSameRoom_ReturnsFalse2() { var currentBooking1 = new BookingSchedule() { Id = 1, StartTime = new DateTime(2016, 10, 15, 13, 0, 0), DurationInMinuts = 30, RoomId = 1 }; var currentBookings = new List <BookingSchedule>() { currentBooking1 }; var bookingService = CreateServiceBasedOnCurrentBookingScheduleList(currentBookings); var newBooking = new BookingSchedule() { Id = 100, StartTime = new DateTime(2016, 10, 15, 12, 30, 0), DurationInMinuts = 60, RoomId = 1 }; var result = bookingService.BookRoom(newBooking); Assert.That(result, Is.EqualTo(false)); }
public void BookRoom(BookingSchedule bookingSchedule) { var booking = _bookingContext.BookingSchedules.Create(); _bookingContext.BookingSchedules.Add(booking); _bookingContext.SaveChanges(); }
public void BookRoom_SavesToContext() { var bookingSchedule = new BookingSchedule() { Id = 1, StartTime = new DateTime(2016, 5, 5), RoomId = 1, DurationInMinuts = 30, PersonId = 1, Room = new Room(), Person = new Person() }; var mockBookingScheduleSet = new Mock <DbSet <BookingSchedule> >(); var mockContext = new Mock <BookingContext>(); mockContext.Setup(x => x.BookingSchedules).Returns(mockBookingScheduleSet.Object); var repository = new RoomRepository(mockContext.Object); repository.BookRoom(bookingSchedule); // Though it's not recommended to assert against more than 1 mock object // here we have to do so as we need to make sure both Add() and SaveChanges() methods // are called mockBookingScheduleSet.Verify(b => b.Add(It.IsAny <BookingSchedule>()), Times.Once()); mockContext.Verify(ctx => ctx.SaveChanges(), Times.Once()); }
private bool BookingIsAllowed(BookingSchedule bookingSchedule) { var bookings = GetRoomBookings(bookingSchedule.RoomId, bookingSchedule.StartTime.Date); var overlap = bookings.Any(b => b.StartTime <bookingSchedule.EndTime && b.EndTime> bookingSchedule.StartTime); return(!overlap); }
public bool BookRoom(BookingSchedule bookingSchedule) { if (!BookingIsAllowed(bookingSchedule)) { return(false); } _roomRepository.BookRoom(bookingSchedule); return(true); }
public void RemoveBooking(int bookingId) { var bookingSchedule = new BookingSchedule() { Id = bookingId }; _bookingContext.BookingSchedules.Attach(bookingSchedule); _bookingContext.BookingSchedules.Remove(bookingSchedule); _bookingContext.SaveChanges(); }
public HttpResponseMessage AddBooking(BookingSchedule model) { try { db.BookingSchedules.Add(model); db.SaveChanges(); return(new HttpResponseMessage(HttpStatusCode.Created)); } catch (Exception ex) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } }
public HttpResponseMessage UpdateBooking(int id, BookingSchedule model) { try { if (id == model.TicketID) { db.Entry(model).State = EntityState.Modified; db.SaveChanges(); return(new HttpResponseMessage(HttpStatusCode.OK)); } else { return(new HttpResponseMessage(HttpStatusCode.NotFound)); } } catch (Exception ex) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } }
public HttpResponseMessage DeleteBooking(int id) { try { BookingSchedule model = db.BookingSchedules.Find(id); if (model != null) { db.BookingSchedules.Remove(model); db.SaveChanges(); return(new HttpResponseMessage(HttpStatusCode.OK)); } else { return(new HttpResponseMessage(HttpStatusCode.NotFound)); } } catch (Exception ex) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } }
public void RemoveBooking_SavesToContext() { var bookingSchedule = new BookingSchedule() { Id = 1, StartTime = new DateTime(2016, 5, 5), RoomId = 1, DurationInMinuts = 30, PersonId = 1, Room = new Room(), Person = new Person() }; var mockBookingScheduleSet = new Mock <DbSet <BookingSchedule> >(); var mockContext = new Mock <BookingContext>(); mockContext.Setup(x => x.BookingSchedules).Returns(mockBookingScheduleSet.Object); var repository = new RoomRepository(mockContext.Object); repository.RemoveBooking(bookingSchedule.Id); mockBookingScheduleSet.Verify(b => b.Remove(It.IsAny <BookingSchedule>()), Times.Once()); mockContext.Verify(ctx => ctx.SaveChanges(), Times.Once()); }