Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 private bool IncludeAllSupportedLanguages(MenuItemDetails cmd, IEnumerable <MenuItemDetails.MenuItemLocalisation> localisations)
 {
     return(_languageRules.AreAllSupportedLanguagesIncluded(cmd.SiteId, localisations.Select(x => x.LanguageId)));
 }
Beispiel #10
0
 private bool BeAnExistingPage(MenuItemDetails cmd, Guid pageId)
 {
     return(_pageRules.DoesPageExist(cmd.SiteId, pageId));
 }