Ejemplo n.º 1
0
        public void Should_validate_command_and_save_new_textModule()
        {
            var command = new CreateTextModule
            {
                SiteId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid(),
                Id       = Guid.NewGuid(),
                Content  = "Content"
            };

            var textModuleRepositoryMock = new Mock <ITextModuleRepository>();

            textModuleRepositoryMock.Setup(x => x.Create(It.IsAny <TextModule>()));

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

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

            var createTextModuleHandler = new CreateTextModuleHandler(textModuleRepositoryMock.Object, validatorMock.Object);

            createTextModuleHandler.Handle(command);

            validatorMock.Verify(x => x.Validate(command));
            textModuleRepositoryMock.Verify(x => x.Create(It.IsAny <TextModule>()));
        }
Ejemplo n.º 2
0
 public IActionResult Post([FromBody] CreateTextModule model)
 {
     model.SiteId = SiteId;
     model.Id     = Guid.NewGuid();
     _commandSender.Send <CreateTextModule, TextModule>(model);
     return(Ok(string.Empty));
 }
Ejemplo n.º 3
0
 public IActionResult Post([FromBody] CreateTextModule model)
 {
     model.SiteId = SiteId;
     model.Id     = Guid.NewGuid();
     _dispatcher.SendAndPublish <CreateTextModule, TextModule>(model);
     return(Ok(string.Empty));
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> Post([FromBody] CreateTextModule model)
        {
            model.SiteId = SiteId;
            model.Id     = Guid.NewGuid();
            await Task.Run(() => _commandSender.Send <CreateTextModule, TextModule>(model));

            return(Ok(string.Empty));
        }
Ejemplo n.º 5
0
 private TextModule(CreateTextModule cmd) : base(cmd.Id)
 {
     AddEvent(new TextModuleCreated
     {
         SiteId          = cmd.SiteId,
         AggregateRootId = Id,
         ModuleId        = cmd.ModuleId,
         VersionId       = Guid.NewGuid(),
         Content         = cmd.Content,
         Status          = TextModuleStatus.Active,
         VersionStatus   = TextVersionStatus.Published
     });
 }
Ejemplo n.º 6
0
 public void Setup()
 {
     _command = new CreateTextModule
     {
         SiteId   = Guid.NewGuid(),
         ModuleId = Guid.NewGuid(),
         Id       = Guid.NewGuid(),
         Content  = "Content"
     };
     _validatorMock = new Mock <IValidator <CreateTextModule> >();
     _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());
     _textModule = TextModule.CreateNew(_command, _validatorMock.Object);
     _event      = _textModule.Events.OfType <TextModuleCreated>().SingleOrDefault();
 }
Ejemplo n.º 7
0
        public void Should_have_error_when_site_id_is_empty()
        {
            var command = new CreateTextModule
            {
                SiteId   = Guid.Empty,
                ModuleId = Guid.NewGuid(),
                Id       = Guid.NewGuid(),
                Content  = "Content"
            };

            var textModuleRulesMock = new Mock <ITextModuleRules>();
            var moduleRulesMock     = new Mock <IModuleRules>();
            var siteRulesMock       = new Mock <ISiteRules>();
            var validator           = new CreateTextModuleValidator(textModuleRulesMock.Object, moduleRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Id, command);
        }
Ejemplo n.º 8
0
        public static TextModule Get()
        {
            var siteId = Guid.NewGuid();

            var createCommand = new CreateTextModule
            {
                SiteId   = siteId,
                ModuleId = Guid.NewGuid(),
                Id       = Guid.NewGuid(),
                Content  = "Content"
            };

            var createValidatorMock = new Mock <IValidator <CreateTextModule> >();

            createValidatorMock.Setup(x => x.Validate(createCommand)).Returns(new ValidationResult());

            var textModule = TextModule.CreateNew(createCommand, createValidatorMock.Object);

            var addVersionCommand = new AddVersion
            {
                SiteId               = siteId,
                ModuleId             = textModule.ModuleId,
                Id                   = textModule.Id,
                VersionId            = Guid.NewGuid(),
                Content              = "Content",
                Description          = "Description",
                Status               = TextVersionStatus.Published,
                VersionLocalisations = new List <AddVersion.VersionLocalisation>()
                {
                    new AddVersion.VersionLocalisation
                    {
                        LanguageId = Guid.NewGuid(),
                        Content    = "Localised content"
                    }
                }
            };

            _addVersionValidatorMock = new Mock <IValidator <AddVersion> >();
            _addVersionValidatorMock.Setup(x => x.Validate(addVersionCommand)).Returns(new ValidationResult());

            textModule.AddVersion(addVersionCommand, _addVersionValidatorMock.Object);

            textModule.Events.Clear();

            return(textModule);
        }
Ejemplo n.º 9
0
        public void Should_have_error_when_module_does_not_exist()
        {
            var command = new CreateTextModule
            {
                SiteId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid(),
                Id       = Guid.NewGuid(),
                Content  = "Content"
            };

            var textModuleRulesMock = new Mock <ITextModuleRules>();
            var moduleRulesMock     = new Mock <IModuleRules>();

            moduleRulesMock.Setup(x => x.DoesModuleExist(command.SiteId, command.ModuleId)).Returns(false);
            var siteRulesMock = new Mock <ISiteRules>();
            var validator     = new CreateTextModuleValidator(textModuleRulesMock.Object, moduleRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.ModuleId, command);
        }
Ejemplo n.º 10
0
        public void Should_have_error_when_text_module_id_already_exists()
        {
            var command = new CreateTextModule
            {
                SiteId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid(),
                Id       = Guid.NewGuid(),
                Content  = "Content"
            };

            var textModuleRulesMock = new Mock <ITextModuleRules>();

            textModuleRulesMock.Setup(x => x.IsTextModuleIdUnique(command.Id)).Returns(false);
            var moduleRulesMock = new Mock <IModuleRules>();
            var siteRulesMock   = new Mock <ISiteRules>();
            var validator       = new CreateTextModuleValidator(textModuleRulesMock.Object, moduleRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Id, command);
        }
Ejemplo n.º 11
0
        public void Should_throw_validation_exception_when_validation_fails()
        {
            var command = new CreateTextModule
            {
                SiteId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid(),
                Id       = Guid.Empty,
                Content  = "Content"
            };

            var textModuleRepositoryMock = new Mock <ITextModuleRepository>();

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

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

            var createTextModuleHandler = new CreateTextModuleHandler(textModuleRepositoryMock.Object, validatorMock.Object);

            Assert.Throws <ValidationException>(() => createTextModuleHandler.Handle(command));
        }
Ejemplo n.º 12
0
        private TextModule(CreateTextModule cmd) : base(cmd.Id)
        {
            ModuleId = cmd.ModuleId;
            Status   = TextModuleStatus.Active;

            var versionId = Guid.NewGuid();

            TextVersions.Add(new TextVersion(versionId,
                                             Id,
                                             cmd.Content,
                                             string.Empty,
                                             TextVersionStatus.Published,
                                             new List <TextLocalisation>()));

            AddEvent(new TextModuleCreated
            {
                SiteId          = cmd.SiteId,
                AggregateRootId = Id,
                ModuleId        = ModuleId,
                VersionId       = versionId,
                Content         = cmd.Content
            });
        }
Ejemplo n.º 13
0
        public static TextModule CreateNew(CreateTextModule cmd, IValidator <CreateTextModule> validator)
        {
            validator.ValidateCommand(cmd);

            return(new TextModule(cmd));
        }