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>())); }
public IActionResult Post([FromBody] CreateTextModule model) { model.SiteId = SiteId; model.Id = Guid.NewGuid(); _commandSender.Send <CreateTextModule, TextModule>(model); return(Ok(string.Empty)); }
public IActionResult Post([FromBody] CreateTextModule model) { model.SiteId = SiteId; model.Id = Guid.NewGuid(); _dispatcher.SendAndPublish <CreateTextModule, TextModule>(model); return(Ok(string.Empty)); }
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)); }
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 }); }
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(); }
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); }
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); }
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); }
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); }
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)); }
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 }); }
public static TextModule CreateNew(CreateTextModule cmd, IValidator <CreateTextModule> validator) { validator.ValidateCommand(cmd); return(new TextModule(cmd)); }