public void EFRepository_MarkIdForDelete_IdNotFound() { try { using (var repo = new TestBlogEFRepository()) { Assert.Throws <InvalidOperationException>(() => repo.MarkIdForDelete(Guid.NewGuid())); } } finally { DeleteAll(); } }
public async Task EFRepository_Logical_Deletion_ById() { try { Guid?id = null; using (var ctx = new TestDbContext()) { var entity = new WebSite { Url = "http://dotnet.microsoft.com/" }; ctx.Add(entity); await ctx.SaveChangesAsync().ConfigureAwait(false); id = entity.Id; } using (var repo = new TestBlogEFRepository()) { repo.Get().Count().Should().Be(1); repo.Get(includeDeleted: true).Count().Should().Be(1); } using (var repo = new TestBlogEFRepository()) { var entity = repo.Get().FirstOrDefault(); entity.Should().NotBeNull(); repo.MarkIdForDelete(id); await repo.SaveAsync().ConfigureAwait(false); } using (var repo = new TestBlogEFRepository()) { repo.Get(includeDeleted: true).Count().Should().Be(1); var entity = repo.Get(includeDeleted: true).FirstOrDefault(); entity.DeletionDate.Should().BeSameDateAs(DateTime.Today); repo.Get().Count().Should().Be(0); } } finally { DeleteAll(); } }