public void Teardown() { handler = null; server = null; observer = null; context = null; }
public void KickUserFromServer() { var cs = provider.GetConnections (GablarskiProtocol.Instance); var s = new ServerConnectionBuffer (cs.Item2); var c = new ConnectionBuffer (cs.Item1); var admin = JoinAsGuest (s, c, "admin"); client.DequeueAndAssertMessage<UserJoinedMessage>(); permissions.EnablePermissions (admin.UserId, PermissionName.KickPlayerFromServer); var target = JoinAsGuest (server, client, "target"); c.DequeueAndAssertMessage<UserJoinedMessage>(); handler.OnKickUserMessage (new MessageEventArgs<KickUserMessage> (s, new KickUserMessage (target, true))); var kicked = client.DequeueAndAssertMessage<UserKickedMessage>(); Assert.AreEqual (target.UserId, kicked.UserId); Assert.AreEqual (true, kicked.FromServer); kicked = c.DequeueAndAssertMessage<UserKickedMessage>(); Assert.AreEqual (target.UserId, kicked.UserId); Assert.AreEqual (true, kicked.FromServer); Assert.AreEqual (target.UserId, c.DequeueAndAssertMessage<UserDisconnectedMessage>().UserId); }
public void Setup() { permissions = new MockPermissionsProvider(); users = new MockUserProvider(); provider = new MockConnectionProvider (GablarskiProtocol.Instance); context = new MockServerContext (provider) { Settings = new ServerSettings(), UserProvider = users, PermissionsProvider = permissions, ChannelsProvider = new LobbyChannelProvider(), }; context.Sources = new ServerSourceHandler (context, new ServerSourceManager (context)); context.Channels = new ServerChannelHandler (context); context.UserManager = new ServerUserManager(); context.Users = handler = new ServerUserHandler (context, context.UserManager); context.Start(); var cs = provider.GetConnections (GablarskiProtocol.Instance); server = new ServerConnectionBuffer (cs.Item2); client = new ConnectionBuffer (cs.Item1); var observers = provider.GetConnections (GablarskiProtocol.Instance); sobserver = observers.Item2; observer = new ConnectionBuffer (observers.Item1); }
public void KickUserFromChannel() { var cs = provider.GetConnections (GablarskiProtocol.Instance); var s = new ServerConnectionBuffer (cs.Item2); var c = new ConnectionBuffer (cs.Item1); var admin = JoinAsGuest (s, c, "admin"); client.DequeueAndAssertMessage<UserJoinedMessage>(); permissions.EnablePermissions (admin.UserId, PermissionName.KickPlayerFromChannel); var target = JoinAsGuest (server, client, "target"); c.DequeueAndAssertMessage<UserJoinedMessage>(); IChannelInfo altChannel = new ChannelInfo { Name = "Channel 2" }; context.ChannelsProvider.SaveChannel (altChannel); c.DequeueAndAssertMessage<ChannelListMessage>(); client.DequeueAndAssertMessage<ChannelListMessage>(); altChannel = context.ChannelsProvider.GetChannels().Single (ch => ch.Name == "Channel 2"); handler.Move (target, altChannel); var moved = client.DequeueAndAssertMessage<UserChangedChannelMessage>(); Assert.AreEqual (altChannel.ChannelId, moved.ChangeInfo.TargetChannelId); Assert.AreEqual (target.UserId, moved.ChangeInfo.TargetUserId); handler.OnKickUserMessage (new MessageEventArgs<KickUserMessage> (s, new KickUserMessage (target, false))); var kicked = client.DequeueAndAssertMessage<UserKickedMessage>(); Assert.AreEqual (target.UserId, kicked.UserId); Assert.AreEqual (false, kicked.FromServer); moved = client.DequeueAndAssertMessage<UserChangedChannelMessage>(); Assert.AreEqual (context.ChannelsProvider.DefaultChannel.ChannelId, moved.ChangeInfo.TargetChannelId); Assert.AreEqual (target.UserId, moved.ChangeInfo.TargetUserId); }