Esempio n. 1
0
        public static async Task <Group> BuildAsync(IAsyncRepository <Group, Guid> repository, int index)
        {
            var validator = new DefaultGroupValidator();
            var group     = Group.Build(validator, $"Name {index}");

            group = await repository.AddAsync(group);

            return(group);
        }
Esempio n. 2
0
        public async Task <ActionResult <GroupDto> > AddAsync(GroupDto dto)
        {
            var validator = new DefaultGroupValidator();
            var entry     = Group.Build(validator, dto.Name);

            if (entry.HasErrors)
            {
                return(BadRequest(entry.ErrorsStrings));
            }

            entry = await _groupCrudService.AddAsync(entry);

            return(Ok(entry.ToDto()));
        }
Esempio n. 3
0
        public void SetNameTest()
        {
            // No valid value
            {
                var value     = new string(Enumerable.Range(1, NameLengthUpperBoundary + 1).Select(x => 'x').ToArray());
                var validator = new DefaultGroupValidator();
                var group     = Group.Build(validator, value);
                Assert.AreEqual(null, group.Name);
            }

            // Valid value
            {
                var value     = "ValidGroupName";
                var validator = new DefaultGroupValidator();
                var group     = Group.Build(validator, value);
                Assert.AreEqual(value, group.Name);
            }
        }
Esempio n. 4
0
        public async Task <ActionResult <GroupDto> > UpdateAsync(GroupDto dto)
        {
            var entry = await _groupCrudService.GetByIdAsync(dto.Id);

            if (entry is null)
            {
                return(NotFound());
            }

            var validator = new DefaultGroupValidator();

            entry.SelectValidator(validator);
            entry.SetName(dto.Name);

            if (entry.HasErrors)
            {
                return(BadRequest(entry.ErrorsStrings));
            }

            await _groupCrudService.UpdateAsync(entry);

            return(Ok(entry.ToDto()));
        }
Esempio n. 5
0
        public void NameTest()
        {
            const string propertyName  = nameof(GroupValidator.Name);
            const int    upperBoundary = NameUpperBoundary;

            // Check for null
            {
                var    validator = new DefaultGroupValidator();
                string value     = null;
                validator.Name(ref value);

                var errors = ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 1);
                ValidationsTestHelper.CheckErrorType <NullValidationError>(errors);
            }

            // Check is empty
            {
                var validator = new DefaultGroupValidator();
                var value     = "";
                validator.Name(ref value);

                var errors = ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 1);
                ValidationsTestHelper.CheckErrorType <EmptyValidationError <IEnumerable <char> > >(errors);
            }

            // Whitespaces check without boundary crossing
            {
                var validator = new DefaultGroupValidator();
                var value     = new string(Enumerable.Range(1, upperBoundary).Select(x => ' ').ToArray());
                validator.Name(ref value);

                var errors = ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 1);
                ValidationsTestHelper.CheckErrorType <WhitespacesValidationError>(errors);
            }

            // Whitespaces check with boundary crossing
            {
                var validator = new DefaultGroupValidator();
                var value     = new string(Enumerable.Range(1, upperBoundary + 1).Select(x => ' ').ToArray());
                validator.Name(ref value);

                var errors = ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 1);
                ValidationsTestHelper.CheckErrorType <WhitespacesValidationError>(errors);
            }

            // Upper boundary check without crossing
            {
                var validator = new DefaultGroupValidator();
                var value     = new string(Enumerable.Range(1, upperBoundary).Select(x => 'x').ToArray());
                validator.Name(ref value);

                ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 0);
            }

            // Upper boundary check with crossing
            {
                var validator = new DefaultGroupValidator();
                var value     = new string(Enumerable.Range(1, upperBoundary + 1).Select(x => 'x').ToArray());
                validator.Name(ref value);

                var errors = ValidationsTestHelper.CheckErrorsCount(validator, propertyName, 1);
                ValidationsTestHelper.CheckErrorType <LengthComparisonValidationError>(errors);
                ValidationsTestHelper.CheckUpperBoundaryCross(
                    (LengthComparisonValidationError)validator.Errors[propertyName][0],
                    upperBoundary);
            }
        }