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); }
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())); }
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); } }
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())); }
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); } }