public async Task TestDelete() { using (var container = Fixture.CreateScope()) using (var db = container.Resolve <DatabaseContext>()) { var result = await db.Contracts.ToListAsync(); var toDelete = result.First(); toDelete.PersistChange = Data.PersistChange.Delete; db.ChangeTracker.TrackGraph(toDelete, e => ChangeGraphTracker.Tracker(e)); await db.SaveChangesAsync(CancellationToken.None).ConfigureAwait(false); result = await db.Contracts.ToListAsync(); Assert.True(9 == result.Count()); } }
public async Task TestTrackerInsertData() { var fixture = new Fixture(); using (var container = Fixture.CreateScope()) using (var db = container.Resolve <DatabaseContext>()) { for (int i = 0; i < 10; i++) { var contract = fixture.Create <Contract>(); contract.PersistChange = Data.PersistChange.Insert; db.ChangeTracker.TrackGraph(contract, e => ChangeGraphTracker.Tracker(e)); await db.SaveChangesAsync(CancellationToken.None).ConfigureAwait(false); } var result = await db.Contracts.ToListAsync(); Assert.True(10 == result.Count()); } }
public async Task TestInsertAndUpdate() { var fixture = new Fixture(); using (var container = Fixture.CreateScope()) using (var db = container.Resolve <DatabaseContext>()) { var contract = fixture.Create <Contract>(); contract.PersistChange = Data.PersistChange.Insert; var id = contract.Id; db.ChangeTracker.TrackGraph(contract, e => ChangeGraphTracker.Tracker(e)); db.ChangeTracker.Clear(); await db.SaveChangesAsync(CancellationToken.None).ConfigureAwait(false); contract = null; contract = db.Contracts.First(c => c.Id == id); Assert.Equal(Data.PersistChange.None, contract.PersistChange); contract.PersistChange = Data.PersistChange.Update; contract.Name = "Updated"; Assert.Equal(EntityState.Detached, db.Entry(contract).State); db.ChangeTracker.TrackGraph(contract, e => ChangeGraphTracker.Tracker(e)); await db.SaveChangesAsync(CancellationToken.None).ConfigureAwait(false); db.ChangeTracker.Clear(); } }