本文整理汇总了C#中JabbR.Services.ChatService.LockRoom方法的典型用法代码示例。如果您正苦于以下问题:C# ChatService.LockRoom方法的具体用法?C# ChatService.LockRoom怎么用?C# ChatService.LockRoom使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JabbR.Services.ChatService
的用法示例。
在下文中一共展示了ChatService.LockRoom方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MakesAllUsersAllowed
public void MakesAllUsersAllowed()
{
var repository = new InMemoryRepository();
var creator = new ChatUser
{
Name = "foo"
};
var users = Enumerable.Range(0, 5).Select(i => new ChatUser
{
Name = "user_" + i
}).ToList();
var offlineUsers = Enumerable.Range(6, 10).Select(i => new ChatUser
{
Name = "user_" + i,
Status = (int)UserStatus.Offline
}).ToList();
var room = new ChatRoom
{
Name = "room",
Creator = creator
};
room.Owners.Add(creator);
creator.OwnedRooms.Add(room);
repository.Add(room);
foreach (var u in users)
{
room.Users.Add(u);
u.Rooms.Add(room);
repository.Add(u);
}
foreach (var u in offlineUsers)
{
room.Users.Add(u);
u.Rooms.Add(room);
repository.Add(u);
}
var service = new ChatService(repository, new Mock<ICryptoService>().Object);
service.LockRoom(creator, room);
foreach (var u in users)
{
Assert.True(u.AllowedRooms.Contains(room));
Assert.True(room.AllowedUsers.Contains(u));
}
foreach (var u in offlineUsers)
{
Assert.False(u.AllowedRooms.Contains(room));
Assert.False(room.AllowedUsers.Contains(u));
}
}
示例2: ThrowsIfRoomAlreadyLocked
public void ThrowsIfRoomAlreadyLocked()
{
var repository = new InMemoryRepository();
var user = new ChatUser
{
Name = "foo"
};
repository.Add(user);
var room = new ChatRoom
{
Name = "Room",
Creator = user,
Private = true
};
room.Owners.Add(user);
user.OwnedRooms.Add(room);
room.AllowedUsers.Add(user);
user.AllowedRooms.Add(room);
user.Rooms.Add(room);
room.Users.Add(user);
var service = new ChatService(repository, new Mock<ICryptoService>().Object);
Assert.Throws<InvalidOperationException>(() => service.LockRoom(user, room));
}
示例3: LocksRoomIfOwner
public void LocksRoomIfOwner()
{
var repository = new InMemoryRepository();
var user = new ChatUser
{
Name = "foo"
};
repository.Add(user);
var room = new ChatRoom
{
Name = "Room"
};
room.Users.Add(user);
room.Owners.Add(user);
user.OwnedRooms.Add(room);
user.Rooms.Add(room);
var service = new ChatService(repository, new Mock<ICryptoService>().Object);
service.LockRoom(user, room);
Assert.True(room.Private);
Assert.True(user.AllowedRooms.Contains(room));
Assert.True(room.AllowedUsers.Contains(user));
}
示例4: LocksRoomIfAdmin
public void LocksRoomIfAdmin()
{
var repository = new InMemoryRepository();
var admin = new ChatUser
{
Name = "foo",
IsAdmin = true
};
repository.Add(admin);
var room = new ChatRoom
{
Name = "Room"
};
room.Users.Add(admin);
admin.Rooms.Add(room);
var service = new ChatService(new Mock<ICache>().Object, repository);
service.LockRoom(admin, room);
Assert.True(room.Private);
Assert.True(admin.AllowedRooms.Contains(room));
Assert.True(room.AllowedUsers.Contains(admin));
}
示例5: ThrowsIfUserIsOwner
public void ThrowsIfUserIsOwner()
{
var repository = new InMemoryRepository();
var user = new ChatUser
{
Name = "foo"
};
repository.Add(user);
var room = new ChatRoom
{
Name = "Room"
};
room.Users.Add(user);
room.Owners.Add(user);
user.OwnedRooms.Add(room);
user.Rooms.Add(room);
var service = new ChatService(repository, new Mock<ICryptoService>().Object);
Assert.Throws<InvalidOperationException>(() => service.LockRoom(user, room));
}
示例6: LocksRoom
public void LocksRoom()
{
var repository = new InMemoryRepository();
var user = new ChatUser
{
Name = "foo"
};
repository.Add(user);
var room = new ChatRoom
{
Name = "Room",
Creator = user
};
room.Owners.Add(user);
user.OwnedRooms.Add(room);
user.Rooms.Add(room);
room.Users.Add(user);
var service = new ChatService(new Mock<ICache>().Object, new Mock<IRecentMessageCache>().Object, repository);
service.LockRoom(user, room);
Assert.True(room.Private);
Assert.True(user.AllowedRooms.Contains(room));
Assert.True(room.AllowedUsers.Contains(user));
}
示例7: ThrowsIfRoomAlreadyLocked
public void ThrowsIfRoomAlreadyLocked()
{
var repository = new InMemoryRepository();
var user = new ChatUser
{
Name = "foo"
};
repository.Add(user);
var room = new ChatRoom
{
Name = "Room",
Creator = user,
Private = true
};
room.Owners.Add(user);
user.OwnedRooms.Add(room);
room.AllowedUsers.Add(user);
user.AllowedRooms.Add(room);
user.Rooms.Add(room);
room.Users.Add(user);
var service = new ChatService(new Mock<ICache>().Object, new Mock<IRecentMessageCache>().Object, repository);
Assert.Throws<HubException>(() => service.LockRoom(user, room));
}