Пример #1
0
        public void Should_validate_command_and_update_page()
        {
            var command = new UpdatePageDetails
            {
                SiteId          = Guid.NewGuid(),
                Id              = Guid.NewGuid(),
                Name            = "Name",
                Url             = "url",
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            };

            var repositoryMock = new Mock <IPageRepository>();

            repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns(new Page());

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

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

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

            createPageHandler.Handle(command);

            validatorMock.Verify(x => x.Validate(command));
            repositoryMock.Verify(x => x.Update(It.IsAny <Page>()));
        }
Пример #2
0
        public async Task <IActionResult> UpdateDetails([FromBody] UpdatePageDetails model)
        {
            model.SiteId = SiteId;
            await Task.Run(() => _commandSender.Send <UpdatePageDetails, Page>(model));

            return(new NoContentResult());
        }
Пример #3
0
        public void Should_throw_validation_exception_when_validation_fails()
        {
            var command = new UpdatePageDetails
            {
                SiteId          = Guid.NewGuid(),
                Id              = Guid.NewGuid(),
                Name            = "Name",
                Url             = string.Empty,
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            };

            var repositoryMock = new Mock <IPageRepository>();

            repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns(new Page());

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

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

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

            Assert.Throws <ValidationException>(() => createPageHandler.Handle(command));
        }
Пример #4
0
        public void UpdateDetails(UpdatePageDetails cmd, IValidator <UpdatePageDetails> validator)
        {
            validator.ValidateCommand(cmd);

            AddEvent(new PageDetailsUpdated
            {
                SiteId            = SiteId,
                AggregateRootId   = Id,
                Name              = cmd.Name,
                Url               = cmd.Url,
                Title             = cmd.Title,
                MetaDescription   = cmd.MetaDescription,
                MetaKeywords      = cmd.MetaKeywords,
                PageLocalisations = cmd.PageLocalisations,
                PagePermissions   = cmd.PagePermissions
            });
        }
        public void Setup()
        {
            var pageId = Guid.NewGuid();

            _command = new UpdatePageDetails
            {
                SiteId            = Guid.NewGuid(),
                Id                = pageId,
                Name              = "Name",
                Url               = "url",
                Title             = "Title",
                MetaDescription   = "Meta Description",
                MetaKeywords      = "Meta Keywords",
                PageLocalisations = new List <PageLocalisation>
                {
                    new PageLocalisation
                    {
                        LanguageId      = Guid.NewGuid(),
                        Url             = "url",
                        Title           = "Title",
                        MetaDescription = "Meta Description",
                        MetaKeywords    = "Meta Keywords"
                    }
                },
                PagePermissions = new List <PagePermission>
                {
                    new PagePermission
                    {
                        RoleId = Guid.NewGuid(),
                        Type   = PermissionType.View
                    }
                }
            };
            _validatorMock = new Mock <IValidator <UpdatePageDetails> >();
            _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());
            _page = new Page();
            _page.UpdateDetails(_command, _validatorMock.Object);
            _event = _page.Events.OfType <PageDetailsUpdated>().SingleOrDefault();
        }
Пример #6
0
 public IActionResult UpdateDetails([FromBody] UpdatePageDetails model)
 {
     model.SiteId = SiteId;
      _commandSender.Send<UpdatePageDetails, Page>(model);
     return new NoContentResult();
 }
Пример #7
0
 public IActionResult UpdateDetails([FromBody] UpdatePageDetails model)
 {
     model.SiteId = SiteId;
     _dispatcher.SendAndPublish <UpdatePageDetails, Page>(model);
     return(new NoContentResult());
 }