public void ValidateCreateForum_FormIsValid_ValidationReturnsTrue() { var request = new CreateForum { Description = "Description", Title = "Test1" }; var context = new ValidationContext(request); var result = Validator.TryValidateObject(request, context, null, true); Assert.True(result); }
public async Task <ActionResult <ForumResponse> > Create([FromBody] CreateForum create) { var forum = await _forumService.Create(create); if (forum == null) { return(Unauthorized()); } var response = _mapper.Map <ForumResponse>(forum); response.Owner = _userService.Auth().Username; return(Created($"/api/forum/{response.Id}", response)); }
public void MapToForum_FromCreateForum_FillsContentAndTitle() { var request = new CreateForum { Description = "A test forum", Title = "Test" }; var forum = Mapper.Map <Forum>(request); Assert.Equal(request.Description, forum.Description); Assert.Equal(request.Title, forum.Title); Assert.True(forum.CreatedAt > DateTime.Now.AddMilliseconds(-10)); Assert.True(forum.UpdatedAt > DateTime.Now.AddMilliseconds(-10)); }
public void ValidateCreateForum_NoTitle_ValidationReturnsFalse() { var request = new CreateForum { Description = "Description" }; var context = new ValidationContext(request) { MemberName = nameof(request.Title) }; var result = Validator.TryValidateProperty(request.Title, context, null); Assert.False(result); }
public void ValidateCreateForum_DescriptionTooLong_ValidationReturnsFalse() { var request = new CreateForum { Description = new string('a', 1024), Title = "Test" }; var context = new ValidationContext(request) { MemberName = nameof(request.Description) }; var result = Validator.TryValidateProperty(request.Description, context, null); Assert.False(result); }
public void ValidateCreateForum_TitleContainsInvalidCharacters_ValidationReturnsFalse() { var request = new CreateForum { Description = "Description", Title = "illegal space" }; var context = new ValidationContext(request) { MemberName = nameof(request.Title) }; var result = Validator.TryValidateProperty(request.Title, context, null); Assert.False(result); }
public async Task <Forum> Create(CreateForum create) { _logger.LogInformation($"Creating forum {JsonConvert.SerializeObject(create)}"); if (!_user.Exists()) { _logger.LogInformation("User is not authenticated"); return(null); } var forum = _mapper.Map <Forum>(create); forum.UserId = _user.Id(); await _forumRepository.Create(forum); _logger.LogInformation($"Created forum with ID {forum.Id}"); return(forum); }
public async Task Create_UserIsAuthenticated_CreatesForum() { var create = new CreateForum(); var forum = new Forum { Title = "title", Description = "description" }; A.CallTo(() => UserService.Exists()).Returns(true); A.CallTo(() => Mapper.Map <Forum>(create)).Returns(forum); A.CallTo(() => UserService.Id()).Returns(UserId); await ForumService.Create(create); A.CallTo(() => ForumRepository.Create(A <Forum> .That.Matches(f => f.Title == forum.Title && f.Description == forum.Description && f.UserId == UserId ))).MustHaveHappenedOnceExactly(); }
public async Task <ActionResult> Save(FormComponentModel.ForumModel model) { var site = await _contextService.CurrentSiteAsync(); var user = await _contextService.CurrentUserAsync(); var command = new CreateForum { CategoryId = model.CategoryId, Name = model.Name, Slug = model.Slug, Description = model.Description, PermissionSetId = model.PermissionSetId == Guid.Empty ? (Guid?)null : model.PermissionSetId, SiteId = site.Id, UserId = user.Id }; await _forumService.CreateAsync(command); return(Ok()); }
public async Task CreateAsync(CreateForum command) { await _createValidator.ValidateCommandAsync(command); var forumsCount = await _dbContext.Forums .Where(x => x.CategoryId == command.CategoryId && x.Status != ForumStatusType.Deleted) .CountAsync(); var sortOrder = forumsCount + 1; var forum = new Forum(command.Id, command.CategoryId, command.Name, command.Slug, command.Description, sortOrder, command.PermissionSetId); _dbContext.Forums.Add(forum); _dbContext.Events.Add(new Event(command.SiteId, command.UserId, EventType.Created, typeof(Forum), forum.Id, new { forum.Name, forum.Slug, forum.Description, forum.CategoryId, forum.PermissionSetId, forum.SortOrder })); await _dbContext.SaveChangesAsync(); _cacheManager.Remove(CacheKeys.Categories(command.SiteId)); _cacheManager.Remove(CacheKeys.CurrentForums(command.SiteId)); }