public void Should_have_validation_error_if_title_is_too_long() { var title = string.Empty; for (int i = 0; i < 101; i++) { title += i.ToString(); } var updateMenuItem = new MenuItemDetails { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.Empty, Link = "Link", Text = "Text", Title = title, MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>() }; var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Title, updateMenuItem); }
public void Should_have_validation_error_if_page_does_not_exist() { var updateMenuItem = new MenuItemDetails { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>() }; var pageRulesMock = new Mock <IPageRules>(); pageRulesMock.Setup(x => x.DoesPageExist(updateMenuItem.SiteId, updateMenuItem.PageId)).Returns(false); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.PageId, updateMenuItem); }
public ICollection <MenuItemDetails> GetMealsByDate() { var reader = this.ExecuteReader( @"select mealCounts.OrderDate, mealCounts.MealName, mealCounts.MealsCount, c.Username, c.Name as ClientName from ( select o.OrderDate, o.ClientId, m.Name as MealName, count(o.ClientId) as MealsCount from Meals as m join OrderMeals as om on om.MealId = m.Id join Orders as o on om.OrderId = o.Id where o.IsCancelled = 0 group by o.OrderDate, m.Name, o.ClientId) as mealCounts join Clients as c on mealCounts.ClientId = c.Id order by mealCounts.OrderDate, mealCounts.MealName, mealCounts.ClientId"); var meals = new Dictionary <Tuple <DateTime, string>, MenuItemDetails>(); using (reader) { while (reader.Read()) { DateTime orderDate = reader.GetDateTime(0); string mealName = reader.GetString(1); int mealsCount = reader.GetInt32(2); string username = reader.GetString(3); string clientName = reader.GetString(4); string clientNameRepresentation = string.Format("{0} ({1})", string.IsNullOrEmpty(clientName) ? "[no name]" : clientName, username); var key = new Tuple <DateTime, string>(orderDate, mealName); if (!meals.ContainsKey(key)) { meals[key] = new MenuItemDetails(orderDate, mealName); } meals[key].ClientNames.Add(clientNameRepresentation); meals[key].MealsCount += mealsCount; } } return(meals.Values); }
public MenuItem(MenuItemDetails cmd, int sortOrder) : base(cmd.MenuItemId) { MenuId = cmd.MenuId; SortOrder = sortOrder; Type = cmd.Type; PageId = cmd.PageId; Link = cmd.Link; Text = cmd.Text; Title = cmd.Title; Status = MenuItemStatus.Active; SetLocalisations(cmd.MenuItemLocalisations); SetPermisisons(cmd.MenuItemPermissions); }
public void Should_have_validation_error_when_site_id_is_empty() { var command = new MenuItemDetails { SiteId = Guid.Empty }; var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_have_validation_error_when_site_does_not_exist() { var command = new MenuItemDetails { SiteId = Guid.NewGuid() }; var siteRulesMock = new Mock <ISiteRules>(); siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false); var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_set_localisation_validator_when_validate_add_menu_item_command() { var updateMenuItem = new MenuItemDetails { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveChildValidator(x => x.MenuItemLocalisations, typeof(MenuItemLocalisationValidator)); }
public void Should_have_validation_error_if_page_id_is_empty() { var updateMenuItem = new MenuItemDetails { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = Guid.Empty, Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>() }; var pageRulesMock = new Mock <IPageRules>(); var languageRulesMock = new Mock <ILanguageRules>(); var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >(); var siteRulesMock = new Mock <ISiteRules>(); var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object); validator.ShouldHaveValidationErrorFor(x => x.PageId, updateMenuItem); }
private bool IncludeAllSupportedLanguages(MenuItemDetails cmd, IEnumerable <MenuItemDetails.MenuItemLocalisation> localisations) { return(_languageRules.AreAllSupportedLanguagesIncluded(cmd.SiteId, localisations.Select(x => x.LanguageId))); }
private bool BeAnExistingPage(MenuItemDetails cmd, Guid pageId) { return(_pageRules.DoesPageExist(cmd.SiteId, pageId)); }