public async Task Commit_UOWHasChild_CallCommitCore() { Func <DbContext> dbContextFactory = () => new Mock <DbContext>().Object; var unitOfWorkRegistryStub = new ThreadLocalUnitOfWorkRegistry(); var unitOfWorkProvider = new EntityFrameworkUnitOfWorkProvider(unitOfWorkRegistryStub, dbContextFactory); var unitOfWorkParentMock = new Mock <EntityFrameworkUnitOfWork>(unitOfWorkProvider, dbContextFactory, DbContextOptions.ReuseParentContext) { CallBase = true }; using (var unitOfWorkParent = unitOfWorkParentMock.Object) { unitOfWorkRegistryStub.RegisterUnitOfWork(unitOfWorkParent); using (var unitOfWorkChild = new EntityFrameworkUnitOfWork(unitOfWorkProvider, dbContextFactory, DbContextOptions.ReuseParentContext)) { await unitOfWorkChild.CommitAsync(); } await unitOfWorkParent.CommitAsync(); } unitOfWorkParentMock.Protected().Verify("CommitAsyncCore", Times.Once(), new CancellationToken()); }
public async Task CanRemove() { using (var unitOfWork = new EntityFrameworkUnitOfWork(new TestDbContext())) { var countFish = (await unitOfWork.Repository.QueryAsync <Fish>()).Count(); await unitOfWork.Repository.RemoveAsync((await unitOfWork.Repository.QueryAsync <Fish>()).First()); await unitOfWork.CommitAsync(); var newCountFish = (await unitOfWork.Repository.QueryAsync <Fish>()).Count(); newCountFish.Should().Be.EqualTo(countFish - 1); } }
public async Task CanUpdate() { using (var unitOfWork = new EntityFrameworkUnitOfWork(new TestDbContext())) { var fish = (await unitOfWork.Repository.QueryAsync <Fish>()).First(); fish.Name.Should().Not.Be.EqualTo("NewName"); fish.Name = "NewName"; await unitOfWork.Repository.UpdateAsync(fish); await unitOfWork.CommitAsync(); var updatedFish = (await unitOfWork.Repository.QueryAsync <Fish>()).First(x => x.Id == fish.Id); updatedFish.Name.Should().Be.EqualTo("NewName"); } }