Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }