public void Should_validate_command_and_save_new_language()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRepositoryMock = new Mock <ILanguageRepository>();

            languageRepositoryMock.Setup(x => x.Create(It.IsAny <Language>()));

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

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

            var sortOrderGeneratorMock = new Mock <ILanguageSortOrderGenerator>();

            var createLanguageHandler = new CreateLanguageHandler(languageRepositoryMock.Object, validatorMock.Object, sortOrderGeneratorMock.Object);

            createLanguageHandler.Handle(command);

            validatorMock.Verify(x => x.Validate(command));
            languageRepositoryMock.Verify(x => x.Create(It.IsAny <Language>()));
        }
Пример #2
0
        public void Setup()
        {
            _languageId   = Guid.NewGuid();
            _newSortOrder = 1;

            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = _languageId,
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

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

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

            var sortOrderGeneratorMock = new Mock <ILanguageSortOrderGenerator>();

            sortOrderGeneratorMock.Setup(x => x.GenerateNextSortOrder(command.SiteId)).Returns(2);

            _language = Language.CreateNew(command, validatorMock.Object, sortOrderGeneratorMock.Object);

            _language.Reorder(_newSortOrder);

            _event = _language.Events.OfType <LanguageReordered>().SingleOrDefault();
        }
        public void CreateLanguage_Action_Fails()
        {
            // Arrange
            var languageDto = TestHelper.LanguageDto();

            GenericServiceResponse <bool> fakeResponse = null;

            mockClientServicesProvider.Setup(x => x.Logger).Returns(mockLogger.Object).Verifiable();
            mockClientServicesProvider.Setup(x => x.LanguageService.CreateLanguage(languageDto)).Returns(fakeResponse).Verifiable();

            var viewModel = new GenericViewModel();

            var action = new CreateLanguage <GenericViewModel>(mockClientServicesProvider.Object)
            {
                OnComplete = model => viewModel = model
            };

            // Act
            var result = action.Invoke(languageDto);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(GenericViewModel));
            Assert.IsNotNull(result.Notifications);
            Assert.IsInstanceOfType(result.Notifications, typeof(NotificationCollection));
            Assert.IsTrue(result.Notifications.Count() == 1);
            Assert.IsTrue(result.HasErrors);
            Assert.IsNotNull(result.Success);
            Assert.IsInstanceOfType(result.Success, typeof(bool));
            Assert.IsFalse(result.Success);
        }
Пример #4
0
        public Language Add(CreateLanguage CreateLanguage)
        {
            Language language = new Language();

            language.Name = CreateLanguage.Name;
            return(_languageRepo.Create(language));
        }
Пример #5
0
        public async Task <IActionResult> Post([FromBody] CreateLanguage model)
        {
            model.SiteId = SiteId;
            await _commandSender.SendAsync <CreateLanguage, Language>(model);

            return(new NoContentResult());
        }
        public void Should_throw_validation_exception_when_validation_fails()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRepositoryMock = new Mock <ILanguageRepository>();

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

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

            var sortOrderGeneratorMock = new Mock <ILanguageSortOrderGenerator>();

            var createLanguageHandler = new CreateLanguageHandler(languageRepositoryMock.Object, validatorMock.Object, sortOrderGeneratorMock.Object);

            Assert.Throws <ValidationException>(() => createLanguageHandler.Handle(command));
        }
Пример #7
0
        public async Task <IActionResult> Post([FromBody] CreateLanguage model)
        {
            model.SiteId = SiteId;
            model.Id     = Guid.NewGuid();
            await Task.Run(() => _commandSender.Send <CreateLanguage, Language>(model));

            return(new NoContentResult());
        }
Пример #8
0
        public static Language CreateNew(CreateLanguage cmd,
                                         IValidator <CreateLanguage> validator,
                                         ILanguageSortOrderGenerator sortOrderGenerator)
        {
            validator.ValidateCommand(cmd);

            return(new Language(cmd, sortOrderGenerator));
        }
Пример #9
0
 public ActionResult Create(CreateLanguage createLanguage)
 {
     if (ModelState.IsValid)
     {
         _languageService.Add(createLanguage);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(createLanguage));
 }
Пример #10
0
        public Language Add(CreateLanguage createLanguage)
        {
            Language language = new Language()
            {
                LanguangeName = createLanguage.LanguangeName
            };

            return(_languageRepo.Create(language));
        }
Пример #11
0
        public Language Edit(int id, CreateLanguage language)
        {
            Language l = FindbyId(id);

            if (l == null)
            {
                return(null);
            }

            l.Name = language.Name;
            l      = _languageRepo.Update(l);

            return(l);
        }
Пример #12
0
 private Language(CreateLanguage cmd, ILanguageSortOrderGenerator languageSortOrderGenerator)
     : base(cmd.Id)
 {
     AddEvent(new LanguageCreated
     {
         SiteId          = cmd.SiteId,
         AggregateRootId = Id,
         Name            = cmd.Name,
         CultureName     = cmd.CultureName,
         Url             = cmd.Url,
         SortOrder       = languageSortOrderGenerator.GenerateNextSortOrder(cmd.SiteId),
         Status          = LanguageStatus.Hidden
     });
 }
Пример #13
0
    static Promise<long> createLanguage()
    {
        Promise<long> promise = new Promise<long>();
        CreateLanguage request = new CreateLanguage();
        builder.Build(request);
        while (!request.Process().isDone) { }

        if (request.Successful()) {
            request.ParseResult();
            promise.Resolve(request.Model.id);
        }
        else {
            promise.Reject(new Exception(request.GetErrorMessage()));
        }
        return promise;
    }
Пример #14
0
 public void Setup()
 {
     _command = new CreateLanguage
     {
         SiteId      = Guid.NewGuid(),
         Id          = Guid.NewGuid(),
         Name        = "My Language",
         CultureName = "aa-bb",
         Url         = "url"
     };
     _validatorMock = new Mock <IValidator <CreateLanguage> >();
     _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());
     _sortOrderGeneratorMock = new Mock <ILanguageSortOrderGenerator>();
     _sortOrderGeneratorMock.Setup(x => x.GenerateNextSortOrder(_command.SiteId)).Returns(4);
     _language = Language.CreateNew(_command, _validatorMock.Object, _sortOrderGeneratorMock.Object);
     _event    = _language.Events.OfType <LanguageCreated>().SingleOrDefault();
 }
        public void Should_have_validation_error_when_language_name_is_too_short()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "A",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Name, command);
        }
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.Empty,
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
        public void Should_have_validation_error_when_language_id_already_exists()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsLanguageIdUnique(command.Id)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();
            var validator     = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Id, command);
        }
Пример #18
0
        public static Language Language(Guid siteId, Guid id, string name, string cultureName, string url)
        {
            var command = new CreateLanguage
            {
                SiteId      = siteId,
                Id          = id,
                Name        = name,
                CultureName = cultureName,
                Url         = url
            };

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

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

            var sortOrderGeneratorMock = new Mock <ILanguageSortOrderGenerator>();

            sortOrderGeneratorMock.Setup(x => x.GenerateNextSortOrder(command.SiteId)).Returns(2);

            return(Domain.Languages.Language.CreateNew(command, validatorMock.Object, sortOrderGeneratorMock.Object));
        }
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
        public void Should_have_validation_error_when_url_is_not_valid()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "a@b"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsLanguageUrlValid(command.Url)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, command);
        }
        public void Should_have_validation_error_when_culture_name_is_not_unique()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsCultureNameUnique(command.SiteId, command.CultureName, Guid.Empty)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.CultureName, command);
        }
        public void Should_have_validation_error_when_url_is_too_long()
        {
            var url = "";

            for (int i = 0; i < 101; i++)
            {
                url += i;
            }

            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = url
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, command);
        }
Пример #23
0
 public async Task <CreatedEntity <int> > CreateLanguageAsync([FromBody] CreateLanguage createLanguage)
 {
     return(await _mediator.Send(createLanguage));
 }
 public Language Edit(int id, CreateLanguage language)
 {
     throw new NotImplementedException();
 }