Merge branch 'attach1-10' into dev

This commit is contained in:
Hao Kung 2015-01-12 12:38:59 -08:00
commit 41806a6067
1 changed files with 49 additions and 0 deletions

View File

@ -301,6 +301,30 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
}
}
[Fact]
public async Task ConcurrentUpdatesWillFailWithDetachedUser()
{
var user = CreateTestUser();
using (var db = CreateContext())
{
var manager = CreateManager(db);
IdentityResultAssert.IsSuccess(await manager.CreateAsync(user));
}
using (var db = CreateContext())
using (var db2 = CreateContext())
{
var manager1 = CreateManager(db);
var manager2 = CreateManager(db2);
var user2 = await manager2.FindByIdAsync(user.Id);
Assert.NotNull(user2);
Assert.NotSame(user, user2);
user.UserName = Guid.NewGuid().ToString();
user2.UserName = Guid.NewGuid().ToString();
IdentityResultAssert.IsSuccess(await manager1.UpdateAsync(user));
IdentityResultAssert.IsFailure(await manager2.UpdateAsync(user2), IdentityErrorDescriber.Default.ConcurrencyFailure());
}
}
[Fact]
public async Task DeleteAModifiedUserWillFail()
{
@ -352,6 +376,31 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
}
}
[Fact]
public async Task ConcurrentRoleUpdatesWillFailWithDetachedRole()
{
var role = new IdentityRole(Guid.NewGuid().ToString());
using (var db = CreateContext())
{
var manager = CreateRoleManager(db);
IdentityResultAssert.IsSuccess(await manager.CreateAsync(role));
}
using (var db = CreateContext())
using (var db2 = CreateContext())
{
var manager1 = CreateRoleManager(db);
var manager2 = CreateRoleManager(db2);
var role2 = await manager2.FindByIdAsync(role.Id);
Assert.NotNull(role);
Assert.NotNull(role2);
Assert.NotSame(role, role2);
role.Name = Guid.NewGuid().ToString();
role2.Name = Guid.NewGuid().ToString();
IdentityResultAssert.IsSuccess(await manager1.UpdateAsync(role));
IdentityResultAssert.IsFailure(await manager2.UpdateAsync(role2), IdentityErrorDescriber.Default.ConcurrencyFailure());
}
}
[Fact]
public async Task DeleteAModifiedRoleWillFail()
{