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); }
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); }
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)); }