Reenable tests / Opt into cascading delete support

This commit is contained in:
Hao Kung 2015-10-16 12:44:18 -07:00
parent 68e4a0e666
commit c847f9c50d
6 changed files with 224 additions and 222 deletions

View File

@ -20,22 +20,22 @@ namespace Microsoft.AspNet.Identity.EntityFramework
{ {
public IdentityDbContext(DbContextOptions options) : base(options) public IdentityDbContext(DbContextOptions options) : base(options)
{ {
} }
public IdentityDbContext(IServiceProvider serviceProvider) : base(serviceProvider) public IdentityDbContext(IServiceProvider serviceProvider) : base(serviceProvider)
{ {
} }
public IdentityDbContext(IServiceProvider serviceProvider, DbContextOptions options) : base(serviceProvider, options) public IdentityDbContext(IServiceProvider serviceProvider, DbContextOptions options) : base(serviceProvider, options)
{ {
} }
protected IdentityDbContext() protected IdentityDbContext()
{ {
} }
public DbSet<TUser> Users { get; set; } public DbSet<TUser> Users { get; set; }
@ -48,62 +48,59 @@ namespace Microsoft.AspNet.Identity.EntityFramework
protected override void OnModelCreating(ModelBuilder builder) protected override void OnModelCreating(ModelBuilder builder)
{ {
builder.Entity<TUser>(b => builder.Entity<TUser>(b =>
{ {
b.HasKey(u => u.Id); b.HasKey(u => u.Id);
b.HasIndex(u => u.NormalizedUserName).HasName("UserNameIndex"); b.HasIndex(u => u.NormalizedUserName).HasName("UserNameIndex");
b.HasIndex(u => u.NormalizedEmail).HasName("EmailIndex"); b.HasIndex(u => u.NormalizedEmail).HasName("EmailIndex");
b.ToTable("AspNetUsers"); b.ToTable("AspNetUsers");
b.Property(u => u.ConcurrencyStamp).IsConcurrencyToken(); b.Property(u => u.ConcurrencyStamp).IsConcurrencyToken();
b.Property(u => u.UserName).HasMaxLength(256); b.Property(u => u.UserName).HasMaxLength(256);
b.Property(u => u.NormalizedUserName).HasMaxLength(256); b.Property(u => u.NormalizedUserName).HasMaxLength(256);
b.Property(u => u.Email).HasMaxLength(256); b.Property(u => u.Email).HasMaxLength(256);
b.Property(u => u.NormalizedEmail).HasMaxLength(256); b.Property(u => u.NormalizedEmail).HasMaxLength(256);
b.HasMany(u => u.Claims).WithOne().HasForeignKey(uc => uc.UserId); b.HasMany(u => u.Claims).WithOne().HasForeignKey(uc => uc.UserId).IsRequired();
b.HasMany(u => u.Logins).WithOne().HasForeignKey(ul => ul.UserId); b.HasMany(u => u.Logins).WithOne().HasForeignKey(ul => ul.UserId).IsRequired();
b.HasMany(u => u.Roles).WithOne().HasForeignKey(ur => ur.UserId); b.HasMany(u => u.Roles).WithOne().HasForeignKey(ur => ur.UserId).IsRequired();
}); });
builder.Entity<TRole>(b => builder.Entity<TRole>(b =>
{ {
b.HasKey(r => r.Id); b.HasKey(r => r.Id);
b.HasIndex(r => r.NormalizedName).HasName("RoleNameIndex"); b.HasIndex(r => r.NormalizedName).HasName("RoleNameIndex");
b.ToTable("AspNetRoles"); b.ToTable("AspNetRoles");
b.Property(r => r.ConcurrencyStamp).IsConcurrencyToken(); b.Property(r => r.ConcurrencyStamp).IsConcurrencyToken();
b.Property(u => u.Name).HasMaxLength(256); b.Property(u => u.Name).HasMaxLength(256);
b.Property(u => u.NormalizedName).HasMaxLength(256); b.Property(u => u.NormalizedName).HasMaxLength(256);
b.HasMany(r => r.Users).WithOne().HasForeignKey(ur => ur.RoleId); b.HasMany(r => r.Users).WithOne().HasForeignKey(ur => ur.RoleId).IsRequired();
b.HasMany(r => r.Claims).WithOne().HasForeignKey(rc => rc.RoleId); b.HasMany(r => r.Claims).WithOne().HasForeignKey(rc => rc.RoleId).IsRequired();
}); });
builder.Entity<IdentityUserClaim<TKey>>(b => builder.Entity<IdentityUserClaim<TKey>>(b =>
{ {
b.HasKey(uc => uc.Id); b.HasKey(uc => uc.Id);
b.ToTable("AspNetUserClaims"); b.ToTable("AspNetUserClaims");
}); });
builder.Entity<IdentityRoleClaim<TKey>>(b => builder.Entity<IdentityRoleClaim<TKey>>(b =>
{ {
b.HasKey(rc => rc.Id); b.HasKey(rc => rc.Id);
b.ToTable("AspNetRoleClaims"); b.ToTable("AspNetRoleClaims");
}); });
builder.Entity<IdentityUserRole<TKey>>(b => builder.Entity<IdentityUserRole<TKey>>(b =>
{ {
b.HasKey(r => new { r.UserId, r.RoleId }); b.HasKey(r => new { r.UserId, r.RoleId });
b.ToTable("AspNetUserRoles"); b.ToTable("AspNetUserRoles");
}); });
// Blocks delete currently without cascade
//.ForeignKeys(fk => fk.ForeignKey<TUser>(f => f.UserId))
//.ForeignKeys(fk => fk.ForeignKey<TRole>(f => f.RoleId));
builder.Entity<IdentityUserLogin<TKey>>(b => builder.Entity<IdentityUserLogin<TKey>>(b =>
{ {
b.HasKey(l => new { l.LoginProvider, l.ProviderKey }); b.HasKey(l => new { l.LoginProvider, l.ProviderKey });
b.ToTable("AspNetUserLogins"); b.ToTable("AspNetUserLogins");
}); });
} }
} }
} }

View File

@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(-1000)] [TestPriority(-1000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseStart() public void DropDatabaseStart()
{ {
@ -53,7 +53,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(10000)] [TestPriority(10000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseDone() public void DropDatabaseDone()
{ {
@ -66,7 +66,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
db.Database.EnsureDeleted(); db.Database.EnsureDeleted();
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateNameGuid() public async Task CanUpdateNameGuid()
{ {
@ -84,7 +84,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateNameString() public async Task CanUpdateNameString()
{ {
@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserInt() public async Task CanCreateUserInt()
{ {
@ -118,7 +118,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserIntViaSet() public async Task CanCreateUserIntViaSet()
{ {
@ -135,7 +135,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateNameInt() public async Task CanUpdateNameInt()
{ {
@ -153,7 +153,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateNameIntWithSet() public async Task CanUpdateNameIntWithSet()
{ {

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(-1000)] [TestPriority(-1000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseStart() public void DropDatabaseStart()
{ {
@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
return builder; return builder;
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task EnsureStartupUsageWorks() public async Task EnsureStartupUsageWorks()
{ {
@ -79,7 +79,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
IdentityResultAssert.IsSuccess(await userManager.DeleteAsync(user)); IdentityResultAssert.IsSuccess(await userManager.DeleteAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanIncludeUserClaimsTest() public async Task CanIncludeUserClaimsTest()
{ {
@ -107,7 +107,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.Equal(10, user.Claims.Count()); Assert.Equal(10, user.Claims.Count());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanIncludeUserLoginsTest() public async Task CanIncludeUserLoginsTest()
{ {
@ -135,7 +135,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.Equal(10, user.Logins.Count()); Assert.Equal(10, user.Logins.Count());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanIncludeUserRolesTest() public async Task CanIncludeUserRolesTest()
{ {
@ -177,7 +177,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanIncludeRoleClaimsTest() public async Task CanIncludeRoleClaimsTest()
{ {
@ -206,7 +206,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(10000)] [TestPriority(10000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseDone() public void DropDatabaseDone()
{ {

View File

@ -54,7 +54,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
[TestPriority(-1000)] [TestPriority(-1000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseStart() public void DropDatabaseStart()
{ {
@ -62,7 +62,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(10000)] [TestPriority(10000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseDone() public void DropDatabaseDone()
{ {
@ -111,7 +111,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
CreateContext(); CreateContext();
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void EnsureDefaultSchema() public void EnsureDefaultSchema()
{ {
@ -180,7 +180,58 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task DeleteRoleNonEmptySucceedsTest()
{
// Need fail if not empty?
var context = CreateTestContext();
var userMgr = CreateManager(context);
var roleMgr = CreateRoleManager(context);
var roleName = "delete" + Guid.NewGuid().ToString();
var role = CreateTestRole(roleName, useRoleNamePrefixAsRoleName: true);
Assert.False(await roleMgr.RoleExistsAsync(roleName));
IdentityResultAssert.IsSuccess(await roleMgr.CreateAsync(role));
var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await userMgr.CreateAsync(user));
IdentityResultAssert.IsSuccess(await userMgr.AddToRoleAsync(user, roleName));
var roles = await userMgr.GetRolesAsync(user);
Assert.Equal(1, roles.Count());
IdentityResultAssert.IsSuccess(await roleMgr.DeleteAsync(role));
Assert.Null(await roleMgr.FindByNameAsync(roleName));
Assert.False(await roleMgr.RoleExistsAsync(roleName));
// REVIEW: We should throw if deleteing a non empty role?
roles = await userMgr.GetRolesAsync(user);
Assert.Equal(0, roles.Count());
}
[ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task DeleteUserRemovesFromRoleTest()
{
// Need fail if not empty?
var userMgr = CreateManager();
var roleMgr = CreateRoleManager();
var roleName = "deleteUserRemove" + Guid.NewGuid().ToString();
var role = CreateTestRole(roleName, useRoleNamePrefixAsRoleName: true);
Assert.False(await roleMgr.RoleExistsAsync(roleName));
IdentityResultAssert.IsSuccess(await roleMgr.CreateAsync(role));
var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await userMgr.CreateAsync(user));
IdentityResultAssert.IsSuccess(await userMgr.AddToRoleAsync(user, roleName));
var roles = await userMgr.GetRolesAsync(user);
Assert.Equal(1, roles.Count());
IdentityResultAssert.IsSuccess(await userMgr.DeleteAsync(user));
roles = await userMgr.GetRolesAsync(user);
Assert.Equal(0, roles.Count());
}
[ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void CanCreateUserUsingEF() public void CanCreateUserUsingEF()
{ {
@ -194,7 +245,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUsingManager() public async Task CanCreateUsingManager()
{ {
@ -228,7 +279,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LoadFromDbFindByIdTest() public async Task LoadFromDbFindByIdTest()
{ {
@ -245,7 +296,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.Equal(2, (await manager.GetRolesAsync(userById)).Count); Assert.Equal(2, (await manager.GetRolesAsync(userById)).Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LoadFromDbFindByNameTest() public async Task LoadFromDbFindByNameTest()
{ {
@ -261,7 +312,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.Equal(2, (await manager.GetRolesAsync(userByName)).Count); Assert.Equal(2, (await manager.GetRolesAsync(userByName)).Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LoadFromDbFindByLoginTest() public async Task LoadFromDbFindByLoginTest()
{ {
@ -277,7 +328,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.Equal(2, (await manager.GetRolesAsync(userByLogin)).Count); Assert.Equal(2, (await manager.GetRolesAsync(userByLogin)).Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LoadFromDbFindByEmailTest() public async Task LoadFromDbFindByEmailTest()
{ {

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
private readonly string ConnectionString = @"Server=(localdb)\mssqllocaldb;Database=SqlUserStoreTest" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" + DateTime.Now.Year + ";Trusted_Connection=True;"; private readonly string ConnectionString = @"Server=(localdb)\mssqllocaldb;Database=SqlUserStoreTest" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" + DateTime.Now.Year + ";Trusted_Connection=True;";
[TestPriority(-1000)] [TestPriority(-1000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseStart() public void DropDatabaseStart()
{ {
@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
[TestPriority(10000)] [TestPriority(10000)]
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void DropDatabaseDone() public void DropDatabaseDone()
{ {
@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
db.Database.EnsureDeleted(); db.Database.EnsureDeleted();
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public void CanCreateUserUsingEF() public void CanCreateUserUsingEF()
{ {
@ -93,7 +93,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
services.AddInstance<IRoleStore<IdentityRole>>(new RoleStore<IdentityRole, IdentityDbContext>((IdentityDbContext)context)); services.AddInstance<IRoleStore<IdentityRole>>(new RoleStore<IdentityRole, IdentityDbContext>((IdentityDbContext)context));
} }
[ConditionalTheory] [ConditionalFact]
public async Task SqlUserStoreMethodsThrowWhenDisposedTest() public async Task SqlUserStoreMethodsThrowWhenDisposedTest()
{ {
var store = new UserStore(new IdentityDbContext()); var store = new UserStore(new IdentityDbContext());
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
async () => await store.GetPhoneNumberConfirmedAsync(null)); async () => await store.GetPhoneNumberConfirmedAsync(null));
} }
[ConditionalTheory] [ConditionalFact]
public async Task UserStorePublicNullCheckTest() public async Task UserStorePublicNullCheckTest()
{ {
Assert.Throws<ArgumentNullException>("context", () => new UserStore(null)); Assert.Throws<ArgumentNullException>("context", () => new UserStore(null));
@ -192,7 +192,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
await Assert.ThrowsAsync<ArgumentException>("roleName", async () => await store.IsInRoleAsync(new IdentityUser("fake"), "")); await Assert.ThrowsAsync<ArgumentException>("roleName", async () => await store.IsInRoleAsync(new IdentityUser("fake"), ""));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUsingManager() public async Task CanCreateUsingManager()
{ {
@ -203,7 +203,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
IdentityResultAssert.IsSuccess(await manager.DeleteAsync(user)); IdentityResultAssert.IsSuccess(await manager.DeleteAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task TwoUsersSamePasswordDifferentHash() public async Task TwoUsersSamePasswordDifferentHash()
{ {
@ -216,7 +216,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
Assert.NotEqual(userA.PasswordHash, userB.PasswordHash); Assert.NotEqual(userA.PasswordHash, userB.PasswordHash);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddUserToUnknownRoleFails() public async Task AddUserToUnknownRoleFails()
{ {
@ -227,7 +227,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
async () => await manager.AddToRoleAsync(u, "bogus")); async () => await manager.AddToRoleAsync(u, "bogus"));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConcurrentUpdatesWillFail() public async Task ConcurrentUpdatesWillFail()
{ {
@ -254,7 +254,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConcurrentUpdatesWillFailWithDetachedUser() public async Task ConcurrentUpdatesWillFailWithDetachedUser()
{ {
@ -279,7 +279,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task DeleteAModifiedUserWillFail() public async Task DeleteAModifiedUserWillFail()
{ {
@ -305,7 +305,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConcurrentRoleUpdatesWillFail() public async Task ConcurrentRoleUpdatesWillFail()
{ {
@ -332,7 +332,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConcurrentRoleUpdatesWillFailWithDetachedRole() public async Task ConcurrentRoleUpdatesWillFailWithDetachedRole()
{ {
@ -358,7 +358,7 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task DeleteAModifiedRoleWillFail() public async Task DeleteAModifiedRoleWillFail()
{ {

View File

@ -98,7 +98,7 @@ namespace Microsoft.AspNet.Identity.Test
protected abstract Expression<Func<TRole, bool>> RoleNameEqualsPredicate(string roleName); protected abstract Expression<Func<TRole, bool>> RoleNameEqualsPredicate(string roleName);
protected abstract Expression<Func<TRole, bool>> RoleNameStartsWithPredicate(string roleName); protected abstract Expression<Func<TRole, bool>> RoleNameStartsWithPredicate(string roleName);
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanDeleteUser() public async Task CanDeleteUser()
{ {
@ -110,7 +110,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Null(await manager.FindByIdAsync(userId)); Assert.Null(await manager.FindByIdAsync(userId));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateUserName() public async Task CanUpdateUserName()
{ {
@ -126,7 +126,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Null(await manager.FindByNameAsync(name)); Assert.Null(await manager.FindByNameAsync(name));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CheckSetUserNameValidatesUser() public async Task CheckSetUserNameValidatesUser()
{ {
@ -151,7 +151,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(newUser)} validation failed: {error.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(newUser)} validation failed: {error.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task SetUserNameUpdatesSecurityStamp() public async Task SetUserNameUpdatesSecurityStamp()
{ {
@ -166,7 +166,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CheckSetEmailValidatesUser() public async Task CheckSetEmailValidatesUser()
{ {
@ -186,7 +186,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.IsFailure(await manager.SetEmailAsync(newUser, ""), _errorDescriber.InvalidEmail("")); IdentityResultAssert.IsFailure(await manager.SetEmailAsync(newUser, ""), _errorDescriber.InvalidEmail(""));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdatePasswordUsingHasher() public async Task CanUpdatePasswordUsingHasher()
{ {
@ -203,7 +203,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(await manager.CheckPasswordAsync(user, "New")); Assert.True(await manager.CheckPasswordAsync(user, "New"));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanFindById() public async Task CanFindById()
{ {
@ -213,7 +213,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotNull(await manager.FindByIdAsync(await manager.GetUserIdAsync(user))); Assert.NotNull(await manager.FindByIdAsync(await manager.GetUserIdAsync(user)));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task UserValidatorCanBlockCreate() public async Task UserValidatorCanBlockCreate()
{ {
@ -225,7 +225,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task UserValidatorCanBlockUpdate() public async Task UserValidatorCanBlockUpdate()
{ {
@ -238,7 +238,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChainUserValidators() public async Task CanChainUserValidators()
{ {
@ -279,7 +279,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
#endif #endif
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task PasswordValidatorCanBlockAddPassword() public async Task PasswordValidatorCanBlockAddPassword()
{ {
@ -293,7 +293,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChainPasswordValidators() public async Task CanChainPasswordValidators()
{ {
@ -308,7 +308,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(2, result.Errors.Count()); Assert.Equal(2, result.Errors.Count());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task PasswordValidatorCanBlockChangePassword() public async Task PasswordValidatorCanBlockChangePassword()
{ {
@ -322,7 +322,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task PasswordValidatorCanBlockCreateUser() public async Task PasswordValidatorCanBlockCreateUser()
{ {
@ -334,7 +334,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} password validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserNoPassword() public async Task CanCreateUserNoPassword()
{ {
@ -350,7 +350,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, logins.Count()); Assert.Equal(0, logins.Count());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserAddLogin() public async Task CanCreateUserAddLogin()
{ {
@ -369,7 +369,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(display, logins.First().ProviderDisplayName); Assert.Equal(display, logins.First().ProviderDisplayName);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserLoginAndAddPassword() public async Task CanCreateUserLoginAndAddPassword()
{ {
@ -389,7 +389,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(await manager.CheckPasswordAsync(user, "password")); Assert.True(await manager.CheckPasswordAsync(user, "password"));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddPasswordFailsIfAlreadyHave() public async Task AddPasswordFailsIfAlreadyHave()
{ {
@ -402,7 +402,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} already has a password."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"User {await manager.GetUserIdAsync(user)} already has a password.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateUserAddRemoveLogin() public async Task CanCreateUserAddRemoveLogin()
{ {
@ -430,7 +430,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanRemovePassword() public async Task CanRemovePassword()
{ {
@ -447,7 +447,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChangePassword() public async Task CanChangePassword()
{ {
@ -464,7 +464,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanAddRemoveUserClaim() public async Task CanAddRemoveUserClaim()
{ {
@ -490,7 +490,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, userClaims.Count); Assert.Equal(0, userClaims.Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task RemoveClaimOnlyAffectsUser() public async Task RemoveClaimOnlyAffectsUser()
{ {
@ -520,7 +520,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(3, userClaims2.Count); Assert.Equal(3, userClaims2.Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanReplaceUserClaim() public async Task CanReplaceUserClaim()
{ {
@ -540,7 +540,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(claim.Value, newClaim.Value); Assert.Equal(claim.Value, newClaim.Value);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ReplaceUserClaimOnlyAffectsUser() public async Task ReplaceUserClaimOnlyAffectsUser()
{ {
@ -570,7 +570,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal("a", oldClaim2.Value); Assert.Equal("a", oldClaim2.Value);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ChangePasswordFallsIfPasswordWrong() public async Task ChangePasswordFallsIfPasswordWrong()
{ {
@ -582,7 +582,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Change password failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Change password failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddDupeUserNameFails() public async Task AddDupeUserNameFails()
{ {
@ -594,7 +594,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.IsFailure(await manager.CreateAsync(user2), _errorDescriber.DuplicateUserName(username)); IdentityResultAssert.IsFailure(await manager.CreateAsync(user2), _errorDescriber.DuplicateUserName(username));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddDupeEmailAllowedByDefault() public async Task AddDupeEmailAllowedByDefault()
{ {
@ -606,7 +606,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.IsSuccess(await manager.SetEmailAsync(user2, await manager.GetEmailAsync(user))); IdentityResultAssert.IsSuccess(await manager.SetEmailAsync(user2, await manager.GetEmailAsync(user)));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddDupeEmailFailsWhenUniqueEmailRequired() public async Task AddDupeEmailFailsWhenUniqueEmailRequired()
{ {
@ -618,7 +618,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.IsFailure(await manager.CreateAsync(user2), _errorDescriber.DuplicateEmail("FooUser@yup.com")); IdentityResultAssert.IsFailure(await manager.CreateAsync(user2), _errorDescriber.DuplicateEmail("FooUser@yup.com"));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task UpdateSecurityStampActuallyChanges() public async Task UpdateSecurityStampActuallyChanges()
{ {
@ -632,7 +632,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddDupeLoginFails() public async Task AddDupeLoginFails()
{ {
@ -647,7 +647,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
// Email tests // Email tests
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanFindByEmail() public async Task CanFindByEmail()
{ {
@ -659,7 +659,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(user, fetch); Assert.Equal(user, fetch);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanFindUsersViaUserQuerable() public async Task CanFindUsersViaUserQuerable()
{ {
@ -676,7 +676,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConfirmEmailFalseByDefaultTest() public async Task ConfirmEmailFalseByDefaultTest()
{ {
@ -714,7 +714,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanResetPasswordWithStaticTokenProvider() public async Task CanResetPasswordWithStaticTokenProvider()
{ {
@ -736,7 +736,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task PasswordValidatorCanBlockResetPasswordWithStaticTokenProvider() public async Task PasswordValidatorCanBlockResetPasswordWithStaticTokenProvider()
{ {
@ -759,7 +759,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ResetPasswordWithStaticTokenProviderFailsWithWrongToken() public async Task ResetPasswordWithStaticTokenProviderFailsWithWrongToken()
{ {
@ -778,7 +778,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanGenerateAndVerifyUserTokenWithStaticTokenProvider() public async Task CanGenerateAndVerifyUserTokenWithStaticTokenProvider()
{ {
@ -803,7 +803,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: test for user { await manager.GetUserIdAsync(user2)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: test for user { await manager.GetUserIdAsync(user2)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanConfirmEmailWithStaticToken() public async Task CanConfirmEmailWithStaticToken()
{ {
@ -822,7 +822,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await manager.IsEmailConfirmedAsync(user)); Assert.False(await manager.IsEmailConfirmedAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConfirmEmailWithStaticTokenFailsWithWrongToken() public async Task ConfirmEmailWithStaticTokenFailsWithWrongToken()
{ {
@ -837,7 +837,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: EmailConfirmation for user { await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: EmailConfirmation for user { await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ConfirmTokenFailsAfterPasswordChange() public async Task ConfirmTokenFailsAfterPasswordChange()
{ {
@ -855,7 +855,7 @@ namespace Microsoft.AspNet.Identity.Test
// Lockout tests // Lockout tests
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task SingleFailureLockout() public async Task SingleFailureLockout()
{ {
@ -874,7 +874,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user)); Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task TwoFailureLockout() public async Task TwoFailureLockout()
{ {
@ -896,7 +896,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user)); Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ResetAccessCountPreventsLockout() public async Task ResetAccessCountPreventsLockout()
{ {
@ -921,7 +921,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(1, await mgr.GetAccessFailedCountAsync(user)); Assert.Equal(1, await mgr.GetAccessFailedCountAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanEnableLockoutManuallyAndLockout() public async Task CanEnableLockoutManuallyAndLockout()
{ {
@ -946,7 +946,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user)); Assert.Equal(0, await mgr.GetAccessFailedCountAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task UserNotLockedOutWithNullDateTimeAndIsSetToNullDate() public async Task UserNotLockedOutWithNullDateTimeAndIsSetToNullDate()
{ {
@ -959,7 +959,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(new DateTimeOffset(), await mgr.GetLockoutEndDateAsync(user)); Assert.Equal(new DateTimeOffset(), await mgr.GetLockoutEndDateAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LockoutFailsIfNotEnabled() public async Task LockoutFailsIfNotEnabled()
{ {
@ -974,7 +974,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await mgr.IsLockedOutAsync(user)); Assert.False(await mgr.IsLockedOutAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LockoutEndToUtcNowMinus1SecInUserShouldNotBeLockedOut() public async Task LockoutEndToUtcNowMinus1SecInUserShouldNotBeLockedOut()
{ {
@ -985,7 +985,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await mgr.IsLockedOutAsync(user)); Assert.False(await mgr.IsLockedOutAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LockoutEndToUtcNowSubOneSecondWithManagerShouldNotBeLockedOut() public async Task LockoutEndToUtcNowSubOneSecondWithManagerShouldNotBeLockedOut()
{ {
@ -997,7 +997,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await mgr.IsLockedOutAsync(user)); Assert.False(await mgr.IsLockedOutAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task LockoutEndToUtcNowPlus5ShouldBeLockedOut() public async Task LockoutEndToUtcNowPlus5ShouldBeLockedOut()
{ {
@ -1009,7 +1009,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(await mgr.IsLockedOutAsync(user)); Assert.True(await mgr.IsLockedOutAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task UserLockedOutWithDateTimeLocalKindNowPlus30() public async Task UserLockedOutWithDateTimeLocalKindNowPlus30()
{ {
@ -1025,7 +1025,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
// Role Tests // Role Tests
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanCreateRoleTest() public async Task CanCreateRoleTest()
{ {
@ -1058,7 +1058,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task BadValidatorBlocksCreateRole() public async Task BadValidatorBlocksCreateRole()
{ {
@ -1071,7 +1071,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Role {await manager.GetRoleIdAsync(role)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Role {await manager.GetRoleIdAsync(role)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChainRoleValidators() public async Task CanChainRoleValidators()
{ {
@ -1086,7 +1086,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(2, result.Errors.Count()); Assert.Equal(2, result.Errors.Count());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task BadValidatorBlocksRoleUpdate() public async Task BadValidatorBlocksRoleUpdate()
{ {
@ -1100,7 +1100,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Role {await manager.GetRoleIdAsync(role)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"Role {await manager.GetRoleIdAsync(role)} validation failed: {AlwaysBadValidator.ErrorMessage.Code}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanDeleteRole() public async Task CanDeleteRole()
{ {
@ -1114,7 +1114,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await manager.RoleExistsAsync(roleName)); Assert.False(await manager.RoleExistsAsync(roleName));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanAddRemoveRoleClaim() public async Task CanAddRemoveRoleClaim()
{ {
@ -1150,7 +1150,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(3, safeRoleClaims.Count); Assert.Equal(3, safeRoleClaims.Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanRoleFindById() public async Task CanRoleFindById()
{ {
@ -1161,7 +1161,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(role, await manager.FindByIdAsync(await manager.GetRoleIdAsync(role))); Assert.Equal(role, await manager.FindByIdAsync(await manager.GetRoleIdAsync(role)));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanRoleFindByName() public async Task CanRoleFindByName()
{ {
@ -1174,7 +1174,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(role, await manager.FindByNameAsync(roleName)); Assert.Equal(role, await manager.FindByNameAsync(roleName));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanUpdateRoleName() public async Task CanUpdateRoleName()
{ {
@ -1190,7 +1190,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(role, await manager.FindByNameAsync("Changed")); Assert.Equal(role, await manager.FindByNameAsync("Changed"));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanQueryableRoles() public async Task CanQueryableRoles()
{ {
@ -1207,53 +1207,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
// Enable when delete on cascade is supported in EF [ConditionalFact]
// [ConditionalTheory]
//[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task DeleteRoleNonEmptySucceedsTest()
{
// Need fail if not empty?
var context = CreateTestContext();
var userMgr = CreateManager(context);
var roleMgr = CreateRoleManager(context);
var roleName = "delete" + Guid.NewGuid().ToString();
var role = CreateTestRole(roleName, useRoleNamePrefixAsRoleName: true);
Assert.False(await roleMgr.RoleExistsAsync(roleName));
IdentityResultAssert.IsSuccess(await roleMgr.CreateAsync(role));
var user = CreateTestUser();
IdentityResultAssert.IsSuccess(await userMgr.CreateAsync(user));
IdentityResultAssert.IsSuccess(await userMgr.AddToRoleAsync(user, roleName));
var roles = await userMgr.GetRolesAsync(user);
Assert.Equal(1, roles.Count());
IdentityResultAssert.IsSuccess(await roleMgr.DeleteAsync(role));
Assert.Null(await roleMgr.FindByNameAsync(roleName));
Assert.False(await roleMgr.RoleExistsAsync(roleName));
// REVIEW: We should throw if deleteing a non empty role?
roles = await userMgr.GetRolesAsync(user);
// REVIEW: This depends on cascading deletes
Assert.Equal(0, roles.Count());
}
// TODO: cascading deletes? navigation properties not working
////[ConditionalTheory]
//[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
////public async Task DeleteUserRemovesFromRoleTest()
////{
//// // Need fail if not empty?
//// var userMgr = CreateManager();
//// var roleMgr = CreateRoleManager();
//// var role = CreateRole("deleteNonEmpty");
//// Assert.False(await roleMgr.RoleExistsAsync(roleName));
//// IdentityResultAssert.IsSuccess(await roleMgr.CreateAsync(role));
//// var user = new TUser() { UserName = "t");
//// IdentityResultAssert.IsSuccess(await userMgr.CreateAsync(user));
//// IdentityResultAssert.IsSuccess(await userMgr.AddToRoleAsync(user, roleName));
//// IdentityResultAssert.IsSuccess(await userMgr.DeleteAsync(user));
//// role = roleMgr.FindByIdAsync(role.Id);
////}
[ConditionalTheory]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CreateRoleFailsIfExists() public async Task CreateRoleFailsIfExists()
{ {
@ -1267,7 +1221,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.IsFailure(await manager.CreateAsync(role2)); IdentityResultAssert.IsFailure(await manager.CreateAsync(role2));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanAddUsersToRole() public async Task CanAddUsersToRole()
{ {
@ -1289,7 +1243,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanGetRolesForUser() public async Task CanGetRolesForUser()
{ {
@ -1324,7 +1278,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task RemoveUserFromRoleWithMultipleRoles() public async Task RemoveUserFromRoleWithMultipleRoles()
{ {
@ -1344,7 +1298,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.False(await userManager.IsInRoleAsync(user, await roleManager.GetRoleNameAsync(roles[2]))); Assert.False(await userManager.IsInRoleAsync(user, await roleManager.GetRoleNameAsync(roles[2])));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanRemoveUsersFromRole() public async Task CanRemoveUsersFromRole()
{ {
@ -1370,7 +1324,7 @@ namespace Microsoft.AspNet.Identity.Test
} }
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task RemoveUserNotInRoleFails() public async Task RemoveUserNotInRoleFails()
{ {
@ -1387,7 +1341,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(userMgr.Logger, $"User {await userMgr.GetUserIdAsync(user)} is not in role {roleName}."); IdentityResultAssert.VerifyLogMessage(userMgr.Logger, $"User {await userMgr.GetUserIdAsync(user)} is not in role {roleName}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddUserToRoleFailsIfAlreadyInRole() public async Task AddUserToRoleFailsIfAlreadyInRole()
{ {
@ -1405,7 +1359,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(userMgr.Logger, $"User {await userMgr.GetUserIdAsync(user)} is already in role {roleName}."); IdentityResultAssert.VerifyLogMessage(userMgr.Logger, $"User {await userMgr.GetUserIdAsync(user)} is already in role {roleName}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task AddUserToRolesIgnoresDuplicates() public async Task AddUserToRolesIgnoresDuplicates()
{ {
@ -1422,7 +1376,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(await userMgr.IsInRoleAsync(user, roleName)); Assert.True(await userMgr.IsInRoleAsync(user, roleName));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanFindRoleByNameWithManager() public async Task CanFindRoleByNameWithManager()
{ {
@ -1433,7 +1387,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotNull(await roleMgr.FindByNameAsync(roleName)); Assert.NotNull(await roleMgr.FindByNameAsync(roleName));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanFindRoleWithManager() public async Task CanFindRoleWithManager()
{ {
@ -1444,7 +1398,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(roleName, await roleMgr.GetRoleNameAsync(await roleMgr.FindByNameAsync(roleName))); Assert.Equal(roleName, await roleMgr.GetRoleNameAsync(await roleMgr.FindByNameAsync(roleName)));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task SetPhoneNumberTest() public async Task SetPhoneNumberTest()
{ {
@ -1458,7 +1412,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChangePhoneNumber() public async Task CanChangePhoneNumber()
{ {
@ -1474,7 +1428,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ChangePhoneNumberFailsWithWrongToken() public async Task ChangePhoneNumberFailsWithWrongToken()
{ {
@ -1491,7 +1445,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ChangePhoneNumberFailsWithWrongPhoneNumber() public async Task ChangePhoneNumberFailsWithWrongPhoneNumber()
{ {
@ -1508,7 +1462,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanVerifyPhoneNumber() public async Task CanVerifyPhoneNumber()
{ {
@ -1529,7 +1483,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyChangePhoneNumberTokenAsync() failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyChangePhoneNumberTokenAsync() failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChangeEmail() public async Task CanChangeEmail()
{ {
@ -1548,7 +1502,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanChangeEmailWithDifferentTokenProvider() public async Task CanChangeEmailWithDifferentTokenProvider()
{ {
@ -1570,7 +1524,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user)); Assert.NotEqual(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ChangeEmailFailsWithWrongToken() public async Task ChangeEmailFailsWithWrongToken()
{ {
@ -1590,7 +1544,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task ChangeEmailFailsWithEmail() public async Task ChangeEmailFailsWithEmail()
{ {
@ -1611,7 +1565,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(stamp, await manager.GetSecurityStampAsync(user)); Assert.Equal(stamp, await manager.GetSecurityStampAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task EmailFactorFailsAfterSecurityStampChangeTest() public async Task EmailFactorFailsAfterSecurityStampChangeTest()
{ {
@ -1633,7 +1587,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task EnableTwoFactorChangesSecurityStamp() public async Task EnableTwoFactorChangesSecurityStamp()
{ {
@ -1647,7 +1601,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(await manager.GetTwoFactorEnabledAsync(user)); Assert.True(await manager.GetTwoFactorEnabledAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task GenerateTwoFactorWithUnknownFactorProviderWillThrow() public async Task GenerateTwoFactorWithUnknownFactorProviderWillThrow()
{ {
@ -1662,7 +1616,7 @@ namespace Microsoft.AspNet.Identity.Test
() => manager.VerifyTwoFactorTokenAsync(user, "bogus", "bogus"), error); () => manager.VerifyTwoFactorTokenAsync(user, "bogus", "bogus"), error);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task GetValidTwoFactorTestEmptyWithNoProviders() public async Task GetValidTwoFactorTestEmptyWithNoProviders()
{ {
@ -1674,7 +1628,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.True(!factors.Any()); Assert.True(!factors.Any());
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanGetValidTwoFactor() public async Task CanGetValidTwoFactor()
{ {
@ -1706,7 +1660,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal("Phone", factors[0]); Assert.Equal("Phone", factors[0]);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task PhoneFactorFailsAfterSecurityStampChangeTest() public async Task PhoneFactorFailsAfterSecurityStampChangeTest()
{ {
@ -1723,7 +1677,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task VerifyTokenFromWrongTokenProviderFails() public async Task VerifyTokenFromWrongTokenProviderFails()
{ {
@ -1736,7 +1690,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task VerifyWithWrongSmsTokenFails() public async Task VerifyWithWrongSmsTokenFails()
{ {
@ -1747,7 +1701,7 @@ namespace Microsoft.AspNet.Identity.Test
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}."); IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyTwoFactorTokenAsync() failed for user {await manager.GetUserIdAsync(user)}.");
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task NullableDateTimeOperationTest() public async Task NullableDateTimeOperationTest()
{ {
@ -1766,7 +1720,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(DateTimeOffset.Parse("01/01/2014"), await userMgr.GetLockoutEndDateAsync(user)); Assert.Equal(DateTimeOffset.Parse("01/01/2014"), await userMgr.GetLockoutEndDateAsync(user));
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanGetUsersWithClaims() public async Task CanGetUsersWithClaims()
{ {
@ -1788,7 +1742,7 @@ namespace Microsoft.AspNet.Identity.Test
Assert.Equal(0, (await manager.GetUsersForClaimAsync(new Claim("123", "456"))).Count); Assert.Equal(0, (await manager.GetUsersForClaimAsync(new Claim("123", "456"))).Count);
} }
[ConditionalTheory] [ConditionalFact]
[FrameworkSkipCondition(RuntimeFrameworks.Mono)] [FrameworkSkipCondition(RuntimeFrameworks.Mono)]
public async Task CanGetUsersInRole() public async Task CanGetUsersInRole()
{ {