public async Task UpdateSucceedsIfChangeTokenMatches() { DbContextDataProvider <DefaultDataProvider, TestContext> provider = CreateProvider(); string changeToken = Guid.NewGuid().ToString("N"); ITokenGenerator generator = CreateTokenGenerator(changeToken); TestContext testContext = provider.GetContext(); var dbEntity = new DbEntityWithChangeToken() { ChangeToken = changeToken }; testContext.ChangeTokenEntities.Add(dbEntity); await testContext.SaveChangesAsync(); TestContextChangeTokenRepository repository = CreateChangeTokenRepository(provider, generator); await repository.UpdateAsync( new EntityWithChangeToken { Id = dbEntity.Id, ChangeToken = changeToken }, CancellationToken.None); }
public async Task UpdateThrowsIfChangeTokenDoesNotMatch() { DbContextDataProvider <DefaultDataProvider, TestContext> provider = CreateProvider(); string changeToken = Guid.NewGuid().ToString("N"); ITokenGenerator generator = CreateTokenGenerator(changeToken); TestContext testContext = provider.GetContext(); var dbEntity = new DbEntityWithChangeToken() { ChangeToken = changeToken }; testContext.ChangeTokenEntities.Add(dbEntity); await testContext.SaveChangesAsync(); TestContextChangeTokenRepository repository = CreateChangeTokenRepository(provider, generator); await Assert.ThrowsAsync <EntityConcurrencyException>( () => repository.UpdateAsync( new EntityWithChangeToken { Id = dbEntity.Id, ChangeToken = "abc" }, CancellationToken.None)); }