public void Should_set_language_status_to_activated() { var language = new Language(); var command = new ActivateLanguage(); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); language.Activate(command, validatorMock.Object); Assert.AreEqual(true, language.Status == LanguageStatus.Active); }
public void Should_call_validator() { var language = new Language(); var command = new ActivateLanguage(); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); language.Activate(command, validatorMock.Object); validatorMock.Verify(x => x.Validate(command)); }
public void Should_throw_exception_when_already_activated() { var language = new Language(); var command = new ActivateLanguage(); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); language.Activate(command, validatorMock.Object); Assert.Throws <Exception>(() => language.Activate(command, validatorMock.Object)); }
public void Should_have_validation_error_when_site_id_is_empty() { var command = new ActivateLanguage { SiteId = Guid.Empty, Id = Guid.NewGuid() }; var siteRulesMock = new Mock <ISiteRules>(); var validator = new ActivateLanguageValidator(siteRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_set_site_id_in_language_activated_event() { var language = new Language(); var command = new ActivateLanguage(); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); language.Activate(command, validatorMock.Object); var @event = language.Events.OfType <LanguageActivated>().SingleOrDefault(); Assert.AreEqual(language.SiteId, @event.SiteId); }
public void Should_add_language_activated_event() { var language = new Language(); var command = new ActivateLanguage(); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); language.Activate(command, validatorMock.Object); var @event = language.Events.OfType <LanguageActivated>().SingleOrDefault(); Assert.IsNotNull(@event); }
public void Activate(ActivateLanguage cmd, IValidator <ActivateLanguage> validator) { validator.ValidateCommand(cmd); if (Status == LanguageStatus.Active) { throw new Exception("Language already active."); } AddEvent(new LanguageActivated { SiteId = SiteId, AggregateRootId = Id }); }
public void Should_have_validation_error_when_site_does_not_exist() { var command = new ActivateLanguage { SiteId = Guid.NewGuid(), Id = Guid.NewGuid() }; var siteRulesMock = new Mock <ISiteRules>(); siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false); var validator = new ActivateLanguageValidator(siteRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_throw_exception_when_language_is_not_found() { var command = new ActivateLanguage { SiteId = Guid.NewGuid(), Id = Guid.NewGuid() }; var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns((Language)null); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var activateLanguageHandler = new ActivateLanguageHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => activateLanguageHandler.Handle(command)); }
public void Should_update_language() { var command = new ActivateLanguage { SiteId = Guid.NewGuid(), Id = Guid.NewGuid() }; var languageMock = new Mock <Language>(); var repositoryMock = new Mock <ILanguageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns(languageMock.Object); var validatorMock = new Mock <IValidator <ActivateLanguage> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var activateLanguageHandler = new ActivateLanguageHandler(repositoryMock.Object, validatorMock.Object); activateLanguageHandler.Handle(command); repositoryMock.Verify(x => x.Update(It.IsAny <Language>())); }