public void GetAvailableTablesShould_CallTableServiceMethodGetTablesCount_WhenModelIsValid(int peoplePerTable) { var bookingsServiceMock = new Mock <IBookingService>(); var placeServiceMock = new Mock <IPlaceService>(); var consumableServiceMock = new Mock <IConsumableService>(); var tableServiceMock = new Mock <ITablesService>(); var bookedTableServiceMock = new Mock <IBookedTablesService>(); var authProviderMock = new Mock <IAuthenticationProvider>(); var factoryMock = new Mock <IViewModelFactory>(); var controller = new Web.Controllers.BookingsController(authProviderMock.Object, placeServiceMock.Object, bookingsServiceMock.Object, factoryMock.Object, consumableServiceMock.Object, bookedTableServiceMock.Object, tableServiceMock.Object); var model = new BookingViewModel() { DateTime = DateTime.Now, PlaceId = Guid.NewGuid() }; var booking = new Booking() { Id = Guid.NewGuid() }; var list = new List <Booking>() { booking }; var table = new Table() { Id = Guid.NewGuid(), NumberOfPeople = peoplePerTable }; var bookedTable = new BookedTables() { BookingId = booking.Id, TableId = table.Id, Table = table, TablesCount = 3 }; bookingsServiceMock.Setup(s => s.FindAllOn(model.DateTime, model.PlaceId)).Returns(list.AsQueryable()); bookedTableServiceMock.Setup(s => s.GetBookedTable(booking.Id)).Returns(bookedTable); tableServiceMock.Setup(s => s.GetTablesCount(model.PlaceId, peoplePerTable)).Returns(10); controller.GetAvailableTables(model); tableServiceMock.Verify(s => s.GetTablesCount(model.PlaceId, 2), Times.Once); tableServiceMock.Verify(s => s.GetTablesCount(model.PlaceId, 4), Times.Once); tableServiceMock.Verify(s => s.GetTablesCount(model.PlaceId, 6), Times.Once); }
public void GetAvailableTablesShould_CallBookingServiceMethodFindAllOn_WhenModelIsValid() { var bookingsServiceMock = new Mock <IBookingService>(); var placeServiceMock = new Mock <IPlaceService>(); var consumableServiceMock = new Mock <IConsumableService>(); var tableServiceMock = new Mock <ITablesService>(); var bookedTableServiceMock = new Mock <IBookedTablesService>(); var authProviderMock = new Mock <IAuthenticationProvider>(); var factoryMock = new Mock <IViewModelFactory>(); var controller = new Web.Controllers.BookingsController(authProviderMock.Object, placeServiceMock.Object, bookingsServiceMock.Object, factoryMock.Object, consumableServiceMock.Object, bookedTableServiceMock.Object, tableServiceMock.Object); var model = new BookingViewModel() { DateTime = DateTime.Now, PlaceId = Guid.NewGuid() }; controller.GetAvailableTables(model); bookingsServiceMock.Verify(s => s.FindAllOn(model.DateTime, model.PlaceId), Times.Once); }