public void UserRoleStoreInterface_AddToRoleAsync_AddsInstancesToCollectionProperties_ForBothSidesOfEntityRelationship() { var entities = new Mock <IWriteEntities>(MockBehavior.Strict); var instance = new SecurityStore(entities.Object) as IUserRoleStore <User, int>; const string roleName = "test"; var user = new User(); var data = new[] { new Permission { Name = Guid.NewGuid().ToString() }, new Permission { Name = roleName }, new Permission { Name = Guid.NewGuid().ToString() }, }.AsQueryable(); var dbSet = new Mock <DbSet <Permission> >(MockBehavior.Strict).SetupDataAsync(data); entities.Setup(x => x.Get <Permission>()).Returns(dbSet.Object); instance.AddToRoleAsync(user, roleName).Wait(); user.Permissions.ShouldContain(data.ElementAt(1)); data.ElementAt(1).Users.ShouldContain(user); }
public void UserRoleStoreInterface_AddToRoleAsync_ThrowsInvalidOperation_WhenRoleNameDoesNotExist() { var entities = new Mock <IWriteEntities>(MockBehavior.Strict); var instance = new SecurityStore(entities.Object) as IUserRoleStore <User, int>; const string roleName = "test"; var data = new[] { new Permission { Name = Guid.NewGuid().ToString() }, new Permission { Name = Guid.NewGuid().ToString() }, new Permission { Name = Guid.NewGuid().ToString() }, }.AsQueryable(); var dbSet = new Mock <DbSet <Permission> >(MockBehavior.Strict).SetupDataAsync(data); entities.Setup(x => x.Get <Permission>()).Returns(dbSet.Object); var exception = Assert.Throws <InvalidOperationException>(() => instance.AddToRoleAsync(new User(), roleName).GetAwaiter().GetResult()); exception.ShouldNotBeNull(); exception.Message.ShouldEqual(string.Format(Resources.Exception_InvalidOperation_DoesNotExist, Permission.Constraints.Label, roleName)); }
public void UserRoleStoreInterface_AddToRoleAsync_GivesUserPermission() { using (var dbContext = new EntityDbContext()) { var user = new User { Name = Guid.NewGuid().ToString() }; var permission1 = new Permission { Name = Guid.NewGuid().ToString() }; var permission2 = new Permission { Name = Guid.NewGuid().ToString() }; var permission3 = new Permission { Name = Guid.NewGuid().ToString() }; dbContext.Create(user); dbContext.Create(permission1); dbContext.Create(permission2); dbContext.Create(permission3); dbContext.SaveChangesAsync().GetAwaiter().GetResult(); var securityStore = new SecurityStore(dbContext); securityStore.AddToRoleAsync(user, permission2.Name).Wait(); dbContext.SaveChangesAsync().Wait(); user.Permissions.ShouldContain(permission2); permission2.Users.ShouldContain(user); } }
public void UserRoleStoreInterface_AddToRoleAsync_ThrowsArgumentNullException_WhenUserIsNull() { var instance = new SecurityStore(null) as IUserRoleStore <User, int>; var exception = Assert.Throws <ArgumentNullException>(() => instance.AddToRoleAsync(null, null).GetAwaiter().GetResult()); exception.ShouldNotBeNull(); exception.ParamName.ShouldEqual("user"); }
public void UserRoleStoreInterface_AddToRoleAsync_ThrowsArgumentException_WhenRoleIsNullOrWhiteSpace(string roleName) { var instance = new SecurityStore(null) as IUserRoleStore <User, int>; var exception = Assert.Throws <ArgumentException>(() => instance.AddToRoleAsync(new User(), roleName).GetAwaiter().GetResult()); exception.ShouldNotBeNull(); exception.ParamName.ShouldEqual("roleName"); exception.Message.ShouldStartWith(Resources.Exception_Argument_CannotBeNullOrEmpty); }
public void UserRoleStoreInterface_AddToRoleAsync_ThrowsWhenDisposed() { var instance = new SecurityStore(null) as IUserRoleStore <User, int>; instance.Dispose(); var exception = Assert.Throws <ObjectDisposedException>(() => instance.AddToRoleAsync(null, null).GetAwaiter().GetResult()); exception.ShouldNotBeNull(); exception.ObjectName.ShouldEqual(instance.GetType().Name); }