public async Task AddCommentToThem_ShouldAddNewThemComment_Correctly() { var themsRepoBuilder = new ThemsRepositoryBuilder(); var themsRepo = themsRepoBuilder .WithAll() .Build(); var themCommentRepoBuilder = new ThemCommentsRepositoryBuilder(); var themCommentsRepo = themCommentRepoBuilder .WithAll() .Build(); var sut = new ThemService(themsRepo, null, themCommentsRepo, Mapper); var model = new CreateThemViewModel { Description = "TraLaLA" }; var user = new GoUser { Id = "7" }; await sut.AddCommentToThem("3", "New themComment", user); themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.AddAsync(It.IsAny <ThemComment>()), Times.Once); themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once); }
public async Task AddCommentToThem_ShouldThrow_IfThemNotExist() { var themsRepoBuilder = new ThemsRepositoryBuilder(); var themsRepo = themsRepoBuilder .WithAll() .Build(); var themCommentRepoBuilder = new ThemCommentsRepositoryBuilder(); var themCommentsRepo = themCommentRepoBuilder .WithAll() .Build(); var sut = new ThemService(themsRepo, null, themCommentsRepo, Mapper); var model = new CreateThemViewModel { Description = "TraLaLA" }; var user = new GoUser { Id = "7" }; var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddCommentToThem("5", "New themComment", user)); Assert.Equal("Theme not exist!", ex.Message); themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.AddAsync(It.IsAny <ThemComment>()), Times.Never); themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never); }
public async Task <IActionResult> Create(CreateThemViewModel model) { if (!ModelState.IsValid) { return(this.View()); } var user = await userManager.GetUserAsync(HttpContext.User); await this.themService.AddThem(model, user); return(Redirect($"/Thems/All")); }
public async Task AddThem(CreateThemViewModel model, GoUser user) { var them = new Theme { Description = model.Description, Date = DateTime.Now, Author = user, AuthorId = user.Id }; await this.themsRepository.AddAsync(them); await this.themsRepository.SaveChangesAsync(); }