public async Task DeleteMethodShouldChangeIsDeletedAndDeletedOn(string description, int postId) { var options = new DbContextOptionsBuilder <ForumDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new ForumDbContext(options); var dateTimeProvider = new Mock <IDateTimeProvider>(); dateTimeProvider.Setup(dtp => dtp.Now()).Returns(new DateTime(2020, 3, 27)); await db.PostReports.AddAsync(new PostReport { Description = description, PostId = postId, AuthorId = Guid.NewGuid().ToString(), CreatedOn = dateTimeProvider.Object.Now() }); await db.SaveChangesAsync(); var postReportsService = new PostReportsService(db, null, dateTimeProvider.Object); await postReportsService.DeleteAsync(1); var actual = await db.PostReports.FirstOrDefaultAsync(); actual.IsDeleted.Should().BeTrue(); actual.DeletedOn.Should().Be(dateTimeProvider.Object.Now()); }
public async Task DeleteMethodShouldReturnFalseIfReportIsNotFound() { var options = new DbContextOptionsBuilder <ForumDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new ForumDbContext(options); var dateTimeProvider = new Mock <IDateTimeProvider>(); dateTimeProvider.Setup(dtp => dtp.Now()).Returns(new DateTime(2020, 3, 27)); var postReportsService = new PostReportsService(db, null, dateTimeProvider.Object); var deleted = await postReportsService.DeleteAsync(1); deleted.Should().BeFalse(); }