public async Task WithCorrectModel_ShouldReturnTrue() { var unitOfWork = this.GetRedditCloneUnitOfWork(); var model = new SubredditCreationBindingModel(); var result = await this.CallCreateSubredditAsync(unitOfWork, model); Assert.True(result); }
private async Task <bool> CallCreateSubredditAsync( IRedditCloneUnitOfWork unitOfWork, SubredditCreationBindingModel model) { var mockedUserManager = CommonTestMethods.GetMockedUserManager(); var mockedClaimsPrincipal = new Mock <ClaimsPrincipal>(); var service = this.GetService(unitOfWork, mockedUserManager.Object); var result = await service.CreateSubredditAsync(model, mockedClaimsPrincipal.Object); return(result); }
public async Task WithModelAndUserWithId_ShouldCreateNewSubredditWithCorrectAuthorId() { var unitOfWork = this.GetRedditCloneUnitOfWork(); var dbUser = new User(); unitOfWork.Users.Add(dbUser); unitOfWork.Complete(); var model = new SubredditCreationBindingModel(); await this.CallCreateSubredditAsyncWithUser(unitOfWork, model, dbUser.Id); var dbSubreddits = await unitOfWork.Subreddits.FindAsync(s => s.AuthorId == dbUser.Id); var dbFirstSubreddit = dbSubreddits.First(); var modelAuthorId = dbFirstSubreddit.AuthorId; Assert.Equal(dbUser.Id, modelAuthorId); }
public async Task <IActionResult> Create(SubredditCreationBindingModel model) { if (ModelState.IsValid == false) { this.AddStatusMessage(ModelState); return(this.Redirect("/")); } var result = await this.userSubredditService.CreateSubredditAsync(model, this.User); if (result == false) { this.AddStatusMessage(AlertConstants.ErrorMessageSubredditNameTaken, AlertConstants.AlertTypeDanger); return(this.RedirectToAction("Create")); } this.AddStatusMessage(AlertConstants.MessageSubredditCreated, AlertConstants.AlertTypeSuccess); return(this.Redirect("/")); }
public async Task <bool> CreateSubredditAsync(SubredditCreationBindingModel model, ClaimsPrincipal user) { var subredditsWithName = await this.redditCloneUnitOfWork.Subreddits.FindAsync(s => s.Name == model.Name); if (subredditsWithName.Count() > 0) { return(false); } var dbSubreddit = this.mapper.Map <Subreddit>(model); var dbUserId = this.userManager.GetUserId(user); dbSubreddit.AuthorId = dbUserId; this.redditCloneUnitOfWork.Subreddits.Add(dbSubreddit); int rowsAffected = await this.redditCloneUnitOfWork.CompleteAsync(); return(UnitOfWorkValidator.IsUnitOfWorkCompletedSuccessfully(rowsAffected)); }
public async Task WithModelWithAlreadyExistingName_ShouldReturnFalse() { const string subredditName = "SubredditName"; var unitOfWork = this.GetRedditCloneUnitOfWork(); var dbSubreddit = new Subreddit() { Name = subredditName }; unitOfWork.Subreddits.Add(dbSubreddit); unitOfWork.Complete(); var model = new SubredditCreationBindingModel() { Name = subredditName }; var result = await this.CallCreateSubredditAsync(unitOfWork, model); Assert.False(result); }
public IActionResult Create() { var model = new SubredditCreationBindingModel(); return(View(model)); }