Beispiel #1
0
        public void Should_throw_exception_when_page_is_not_found()
        {
            var command = new UpdatePageModuleDetails
            {
                SiteId   = Guid.NewGuid(),
                PageId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid(),
                Title    = "Title",
                PageModuleLocalisations = new List <PageModuleLocalisation>
                {
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    },
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    }
                }
            };

            var repositoryMock = new Mock <IPageRepository>();

            repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns((Page)null);

            var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >();

            var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object);

            Assert.Throws <Exception>(() => createPageHandler.Handle(command));
        }
Beispiel #2
0
        public void UpdateDetails(UpdatePageModuleDetails cmd)
        {
            Title = cmd.Title;
            InheritPermissions = cmd.InheritPermissions;

            SetLocalisations(cmd.PageModuleLocalisations);
            SetPermissions(cmd.PageModulePermissions);
        }
Beispiel #3
0
        public void Should_validate_command_and_update_page()
        {
            var page = new Page();

            var siteId   = Guid.NewGuid();
            var pageId   = Guid.NewGuid();
            var moduleId = Guid.NewGuid();

            var addPageModuleCommand = new AddPageModule
            {
                SiteId       = siteId,
                PageId       = pageId,
                ModuleId     = moduleId,
                PageModuleId = Guid.NewGuid(),
                Title        = "Title",
                Zone         = "Zone"
            };
            var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >();

            addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult());
            page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object);

            var command = new UpdatePageModuleDetails
            {
                SiteId   = siteId,
                PageId   = pageId,
                ModuleId = moduleId,
                Title    = "New Title",
                PageModuleLocalisations = new List <PageModuleLocalisation>
                {
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    },
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    }
                }
            };

            var repositoryMock = new Mock <IPageRepository>();

            repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page);

            var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >();

            validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult());

            var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object);

            createPageHandler.Handle(command);

            validatorMock.Verify(x => x.Validate(command));
            repositoryMock.Verify(x => x.Update(page));
        }
Beispiel #4
0
        public void Should_throw_validation_exception_when_validation_fails()
        {
            var page = new Page();

            var siteId   = Guid.NewGuid();
            var pageId   = Guid.NewGuid();
            var moduleId = Guid.NewGuid();

            var addPageModuleCommand = new AddPageModule
            {
                SiteId       = siteId,
                PageId       = pageId,
                ModuleId     = moduleId,
                PageModuleId = Guid.NewGuid(),
                Title        = "Title",
                Zone         = "Zone"
            };
            var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >();

            addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult());
            page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object);

            var command = new UpdatePageModuleDetails
            {
                SiteId   = siteId,
                PageId   = pageId,
                ModuleId = moduleId,
                Title    = "New Title",
                PageModuleLocalisations = new List <PageModuleLocalisation>
                {
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    },
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    }
                }
            };

            var repositoryMock = new Mock <IPageRepository>();

            repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page);

            var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >();

            validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> {
                new ValidationFailure("Title", "Title Error")
            }));

            var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object);

            Assert.Throws <ValidationException>(() => createPageHandler.Handle(command));
        }
Beispiel #5
0
        public void Setup()
        {
            _page = new Page();

            var siteId   = Guid.NewGuid();
            var pageId   = Guid.NewGuid();
            var moduleId = Guid.NewGuid();

            var addPageModuleCommand = new AddPageModule
            {
                SiteId       = siteId,
                PageId       = pageId,
                ModuleId     = moduleId,
                PageModuleId = Guid.NewGuid(),
                Title        = "Title",
                Zone         = "Zone"
            };
            var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >();

            addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult());
            _page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object);

            _command = new UpdatePageModuleDetails
            {
                SiteId                  = siteId,
                PageId                  = pageId,
                ModuleId                = moduleId,
                Title                   = "New Title",
                InheritPermissions      = true,
                PageModuleLocalisations = new List <PageModuleLocalisation>
                {
                    new PageModuleLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Title      = "Title"
                    }
                },
                PageModulePermissions = new List <PageModulePermission>
                {
                    new PageModulePermission
                    {
                        RoleId = Everyone.Id,
                        Type   = PermissionType.View
                    }
                }
            };
            _validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >();
            _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());
            _page.UpdateModule(_command, _validatorMock.Object);
            _pageModule = _page.PageModules.FirstOrDefault(x => x.ModuleId == moduleId);
            _event      = _page.Events.OfType <PageModuleDetailsUpdated>().SingleOrDefault();
        }
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new UpdatePageModuleDetails
            {
                SiteId = Guid.Empty
            };

            var siteRulesMock         = new Mock <ISiteRules>();
            var localisationValidator = new Mock <IValidator <PageModuleLocalisation> >();
            var validator             = new UpdatePageModuleDetailsValidator(siteRulesMock.Object, localisationValidator.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new UpdatePageModuleDetails
            {
                SiteId = Guid.NewGuid()
            };

            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);
            var localisationValidator = new Mock <IValidator <PageModuleLocalisation> >();
            var validator             = new UpdatePageModuleDetailsValidator(siteRulesMock.Object, localisationValidator.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
Beispiel #8
0
        public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator)
        {
            validator.ValidateCommand(cmd);

            var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId);

            if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted)
            {
                throw new Exception("Page module not found.");
            }

            pageModule.UpdateDetails(cmd);

            AddEvent(new PageModuleDetailsUpdated
            {
                SiteId          = SiteId,
                AggregateRootId = Id,
                PageModule      = pageModule
            });
        }
Beispiel #9
0
        public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator)
        {
            validator.ValidateCommand(cmd);

            var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId);

            if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted)
            {
                throw new Exception("Page module not found.");
            }

            AddEvent(new PageModuleDetailsUpdated
            {
                AggregateRootId         = Id,
                SiteId                  = SiteId,
                PageId                  = cmd.PageId,
                PageModuleId            = pageModule.Id,
                Title                   = cmd.Title,
                InheritPermissions      = cmd.InheritPermissions,
                PageModuleLocalisations = cmd.PageModuleLocalisations,
                PageModulePermissions   = cmd.PageModulePermissions
            });
        }