public async Task CreateAnnouncementShouldReturnFalseIfAnnouncementWithSameTitleAndContentAlreadyExists() { var input = new CreateAnnouncementInputModel { Creator = "creator1", Title = "title1", Content = "content1", ImageLink = "image1", OfficialArticleLink = "article1", }; await dbContext.Announcements.AddAsync(new Announcement { Creator = "creator1", Title = "title1", Content = "content1", ImageLink = "image1", OfficialArticleLink = "article1", Date = DateTime.UtcNow, }); await dbContext.SaveChangesAsync(); var announcementService = new AnnouncementService(dbContext, mapper); Assert.False(await announcementService.CreateAnnouncementAsync(input)); Assert.True(dbContext.Announcements.Count() == 1); }
public async Task <IActionResult> Create(CreateAnnouncementInputModel input) { if (!ModelState.IsValid) { return(View(input)); } if (!await announcementService.CreateAnnouncementAsync(input)) { return(View(input)); } return(Redirect(redirectAnnuncementsAllAndOrder)); }
public async Task <bool> CreateAnnouncementAsync(CreateAnnouncementInputModel input) { if (await dbContext.Announcements.AnyAsync(announcement => announcement.Title == input.Title && announcement.Content == input.Content)) { return(false); } var announcementFromDb = mapper.Map <CreateAnnouncementInputModel, Announcement>(input); await dbContext.Announcements.AddAsync(announcementFromDb); await dbContext.SaveChangesAsync(); return(true); }
public async Task CreateAnnouncementShouldSetImageLinkIfNoneIsProvided(string imageLink) { var input = new CreateAnnouncementInputModel { Creator = "creator1", Title = "title1", Content = "content1", ImageLink = imageLink, OfficialArticleLink = "article1", }; var announcementService = new AnnouncementService(dbContext, mapper); Assert.True(await announcementService.CreateAnnouncementAsync(input)); Assert.True(dbContext.Announcements.Count() == 1); Assert.True(dbContext.Announcements.First().ImageLink == GlobalConstants.noImageLink); }
public async Task CreateAnnouncementShouldAddAnnouncementToDbIfInputIsValid() { var input = new CreateAnnouncementInputModel { Creator = "creator1", Title = "title1", Content = "content1", ImageLink = "image1", OfficialArticleLink = "article1", }; var announcementService = new AnnouncementService(dbContext, mapper); Assert.True(await announcementService.CreateAnnouncementAsync(input)); Assert.True(dbContext.Announcements.Count() == 1); Assert.True(dbContext.Announcements.First().Date != null); }