示例#1
0
        public void TestCreateMenuInteractorLookupFail()
        {
            var menuDate                = DateTime.Now.Date;
            var mockMenuRepo            = new Mock <IMenuRepo>();
            var moclLunchMenuLookupRepo = new Mock <ILunchMenuLookupRepo>();

            mockMenuRepo.Setup(a => a.GetById(It.IsAny <int>())).Returns(() => new Menu(menuDate));
            moclLunchMenuLookupRepo.Setup(a => a.GetByDate(It.IsAny <DateTime>())).ReturnsAsync(new MenuResponse()
            {
                Menu = null, Result = false
            });
            var interactor = new CreateMenuInteractor(mockMenuRepo.Object, moclLunchMenuLookupRepo.Object);
            var response   = interactor.Handle(new Contracts.Dtos.CreateMenuRequest(menuDate));

            Assert.False(response.Result);
        }
示例#2
0
        public void TestCreateMenuInteractorMenuCourceDublicates()
        {
            var menuDate                = DateTime.Now.Date;
            var mockMenuRepo            = new Mock <IMenuRepo>();
            var moclLunchMenuLookupRepo = new Mock <ILunchMenuLookupRepo>();

            mockMenuRepo.Setup(a => a.GetById(It.IsAny <int>())).Returns(() => new Menu(menuDate));

            moclLunchMenuLookupRepo.Setup(a => a.GetByDate(It.IsAny <DateTime>())).ReturnsAsync(new MenuResponse()
            {
                Menu = new ExternalMenu()
                {
                    Date = menuDate, Course = new string[] { "Text cource", "Text cource" }
                }, Result = true
            });
            var interactor = new CreateMenuInteractor(mockMenuRepo.Object, moclLunchMenuLookupRepo.Object);
            var response   = interactor.Handle(new Contracts.Dtos.CreateMenuRequest(menuDate));

            Assert.False(response.Result);
        }
示例#3
0
        public IActionResult Index()
        {
            var date        = DateTime.Now.Date;
            var reviewToken = DateTime.Now.GetHashCode();
            var model       = new MenuViewModel()
            {
                SelectedDate = date, ReviewToken = reviewToken.GetHashCode()
            };
            var menu = lunchMenuRepo.GetById(date.GetHashCode());


            if (menu == null)
            {
                var interactor = new CreateMenuInteractor(lunchMenuRepo, lunchMenuLookupRepo);
                var response   = interactor.Handle(new Core.Contracts.Dtos.CreateMenuRequest(date));
                if (response.Result)
                {
                    menu = lunchMenuRepo.GetById(response.MenuId.Value);
                }
                else
                {
                    model.Errors = response.Messages;
                }
            }
            if (menu != null)
            {
                model.NumberOfReviews = reviewRepo.GetAllMenuReviews(menu.Id).Count();
                model.Id         = menu.Id;
                model.MenuRating = menu.AverageMenuReviewScore;
                model.Courses    = menu.Courses.Select(ld =>
                                                       new CourseViewModel()
                {
                    Id   = ld.Id,
                    Name = ld.Name,
                    ReviewScoreAverage = ld.AverageCourseReviewScore,
                }
                                                       ).ToList();
            }
            return(View(model));
        }