public void GetBookedTableShould_ReturnCorrectResult() { var repositoryMock = new Mock <IRepository <BookedTables> >(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var factoryMock = new Mock <IBookedTablesFactory>(); var id = Guid.NewGuid(); var bookedTable = new BookedTables() { BookingId = id }; var list = new List <BookedTables>() { bookedTable }; repositoryMock.Setup(r => r.All).Returns(list.AsQueryable()); var service = new Services.BookedTablesService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object); var result = service.GetBookedTable(id); Assert.AreSame(bookedTable, result); }
public void GetAvailableTablesShould_ReturnViewWithCorrectModel_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); var returnModel = new BookingFormViewModel() { TwoPeopleTablesCount = 7, FourPeopleTablesCount = 0, SixPeopleTablesCount = 0, DateTime = model.DateTime, PlaceId = model.PlaceId }; factoryMock.Setup(f => f.CreateBookingFormViewModel(7, 0, 0, model.PlaceId, model.DateTime)).Returns(returnModel); controller .WithCallTo(c => c.GetAvailableTables(model)) .ShouldRenderPartialView("_AvailableTables") .WithModel(returnModel); }
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 CreateBookingShould_CallRepositoryMethodAdd(int tablesCount) { var repositoryMock = new Mock <IRepository <BookedTables> >(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var factoryMock = new Mock <IBookedTablesFactory>(); var service = new Services.BookedTablesService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object); var bookingId = Guid.NewGuid(); var tableId = Guid.NewGuid(); var bookedTable = new BookedTables() { BookingId = bookingId, TableId = tableId, TablesCount = tablesCount }; factoryMock.Setup(f => f.CreateBookedTable(bookingId, tableId, tablesCount)).Returns(bookedTable); service.AddBookedTables(bookingId, tableId, tablesCount); repositoryMock.Verify(r => r.Add(bookedTable), Times.Once); }
public void RemoveBookedTablesShould_CallUnitOfWorkMethodCommitForEachBooking(string bookingId) { var repositoryMock = new Mock <IRepository <BookedTables> >(); var unitOfWorkMock = new Mock <IUnitOfWork>(); var factoryMock = new Mock <IBookedTablesFactory>(); var bookingIdGuid = new Guid(bookingId); var bookedTable = new BookedTables() { BookingId = bookingIdGuid }; var list = new List <BookedTables>() { bookedTable }; repositoryMock.Setup(r => r.All).Returns(list.AsQueryable()); var service = new Services.BookedTablesService(repositoryMock.Object, unitOfWorkMock.Object, factoryMock.Object); service.RemoveBookedTables(bookingIdGuid); unitOfWorkMock.Verify(r => r.Commit(), Times.Once); }