コード例 #1
0
ファイル: ChatClientTests.cs プロジェクト: psychicdoom/OpenMU
        public void AuthentificationFailedForSecondConnection()
        {
            var manager = new ChatRoomManager();
            var roomId  = manager.CreateChatRoom();
            var room    = manager.GetChatRoom(roomId);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            var connection1 = new Mock <IConnection>();
            var client1     = new ChatClient(connection1.Object, manager);

            connection1.Raise(c => c.PacketReceived += null, connection1.Object, authentificationPacket);

            var connection2        = new Mock <IConnection>();
            var disconnectedRaised = false;
            var client2            = new ChatClient(connection2.Object, manager);

            client2.Disconnected += (sender, e) => disconnectedRaised = true;
            connection2.Setup(c => c.Disconnect()).Verifiable();
            connection2.Raise(c => c.PacketReceived += null, connection2.Object, authentificationPacket);
            Assert.That(room.ConnectedClients, Has.Count.EqualTo(1));
            Assert.That(room.ConnectedClients, Contains.Item(client1));
            connection2.VerifyAll();
            Assert.That(disconnectedRaised, Is.True);
        }
コード例 #2
0
    public JoinRoomIncomingMessage(ChatRoomManager chatRoomManager, MatchListingManager matchListingManager, MatchManager matchManager)
    {
        this.chatRoomManager = chatRoomManager;

        this.matchListingManager = matchListingManager;
        this.matchManager        = matchManager;
    }
コード例 #3
0
ファイル: ChatClientTests.cs プロジェクト: zkings001/OpenMU
        public async Task AuthenticationFailedForSecondConnection()
        {
            var manager = new ChatRoomManager();
            var roomId  = manager.CreateChatRoom();
            var room    = manager.GetChatRoom(roomId);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));
            var authenticationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };
            var duplexPipe1          = new DuplexPipe();
            var connection1          = new Connection(duplexPipe1, null, null);
            var client1 = new ChatClient(connection1, manager);
            await duplexPipe1.ReceivePipe.Writer.WriteAsync(authenticationPacket);

            await duplexPipe1.ReceivePipe.Writer.FlushAsync();

            var  duplexPipe2        = new DuplexPipe();
            var  connection2        = new Connection(duplexPipe2, null, null);
            var  client2            = new ChatClient(connection2, manager);
            bool disconnectedRaised = false;

            client2.Disconnected += (sender, e) => disconnectedRaised = true;

            await duplexPipe2.ReceivePipe.Writer.WriteAsync(authenticationPacket);

            await duplexPipe2.ReceivePipe.Writer.FlushAsync();

            Assert.That(room.ConnectedClients, Has.Count.EqualTo(1));
            Assert.That(room.ConnectedClients, Contains.Item(client1));
            Assert.That(connection2.Connected, Is.False);
            Assert.That(disconnectedRaised, Is.True);
        }
コード例 #4
0
ファイル: ChatClientTests.cs プロジェクト: psychicdoom/OpenMU
        public void ClientLoggedOff()
        {
            var manager     = new ChatRoomManager();
            var roomId      = manager.CreateChatRoom();
            var room        = manager.GetChatRoom(roomId);
            var connection1 = new Mock <IConnection>();
            var client1     = new ChatClient(connection1.Object, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));
            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Alice", "94371960"));

            var authentificationPacket1 = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection1.Raise(c => c.PacketReceived += null, connection1.Object, authentificationPacket1);

            var connection2             = new Mock <IConnection>();
            var client2                 = new ChatClient(connection2.Object, manager);
            var authentificationPacket2 = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xC5, 0xFB, 0x98, 0xCB, 0xFE, 0x92, 0xCA, 0xFF, 0xAB, 0xFC };

            connection2.Raise(c => c.PacketReceived += null, connection2.Object, authentificationPacket2);
            client1.LogOff();

            var expectedPacket = new byte[]
            {
                0xC1, 0x0F, 0x01, 0x01, 0x00, 0x42, 0x6F, 0x62, 0, 0, 0, 0, 0, 0, 0,
            };

            connection2.Verify(c => c.Send(It.Is <byte[]>(p => p.SequenceEqual(expectedPacket))), Times.Once);
            Assert.That(room.ConnectedClients, Has.Count.EqualTo(1));
            Assert.That(room.ConnectedClients, Contains.Item(client2));
        }
コード例 #5
0
        public void ClientLoggedOff()
        {
            var manager     = new ChatRoomManager();
            var roomId      = manager.CreateChatRoom();
            var room        = manager.GetChatRoom(roomId);
            var connection1 = MockRepository.GenerateMock <IConnection>();
            var client1     = new ChatClient(connection1, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));
            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Alice", "94371960"));

            var authentificationPacket1 = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection1.Raise(c => c.PacketReceived += null, connection1, authentificationPacket1);

            var connection2             = MockRepository.GenerateMock <IConnection>();
            var client2                 = new ChatClient(connection2, manager);
            var authentificationPacket2 = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xC5, 0xFB, 0x98, 0xCB, 0xFE, 0x92, 0xCA, 0xFF, 0xAB, 0xFC };

            connection2.Raise(c => c.PacketReceived += null, connection2, authentificationPacket2);
            client1.LogOff();

            var arguments      = connection2.GetArgumentsForCallsMadeOn(c => c.Send(null));
            var sentPacket     = arguments.FirstOrDefault(p => (p.Last() as byte[])[0] == 0xC1)[0] as byte[];
            var expectedPacket = new byte[]
            {
                0xC1, 0x0F, 0x01, 0x01, 0x00, 0x42, 0x6F, 0x62, 0, 0, 0, 0, 0, 0, 0,
            };

            Assert.That(room.ConnectedClients, Has.Count.EqualTo(1));
            Assert.That(room.ConnectedClients, Contains.Item(client2));
            Assert.That(sentPacket, Is.Not.Null);
            Assert.That(sentPacket, Is.EquivalentTo(expectedPacket));
        }
コード例 #6
0
        public void AddMessageToChatRoomAddsMessage()
        {
            // Arrange
            ChatRoom parameter = null;
            var      chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.FindByIdWithMessages(It.IsAny <long>())).Returns(new List <ChatRoom>()
            {
                new ChatRoom("room")
            });
            chatRoomRepositoryMock.Setup(repository => repository.Exists(It.IsAny <long>())).Returns(true);
            chatRoomRepositoryMock.Setup(repository => repository.Update(It.IsAny <ChatRoom>()))
            .Callback <ChatRoom>((chatRoom) => parameter = chatRoom);
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);
            long            chatRoomId      = 1;
            Message         message         = new Message("Carla Red", "Hello World");

            // Act Assert
            chatRoomManager.AddMessageToChatRoom(chatRoomId, message);

            // Assert
            Assert.AreEqual(1, parameter.Messages.Count);
            Assert.AreEqual("Carla Red", parameter.Messages[0].Sender);
            Assert.AreEqual("Hello World", parameter.Messages[0].Content);
            Assert.AreEqual("room", parameter.Name);
        }
コード例 #7
0
        public void GetChatRoomNull()
        {
            var manager = new ChatRoomManager(new NullLoggerFactory());
            var room    = manager.GetChatRoom(9999);

            Assert.That(room, Is.Null);
        }
コード例 #8
0
        public void GetChatRoomNull()
        {
            var manager = new ChatRoomManager();
            var room    = manager.GetChatRoom(9999);

            Assert.That(room, Is.Null);
        }
コード例 #9
0
        public void RoomCreation()
        {
            var manager = new ChatRoomManager(new NullLoggerFactory());
            var roomId  = manager.CreateChatRoom();
            var room    = manager.GetChatRoom(roomId);

            Assert.That(room, Is.Not.Null);
        }
コード例 #10
0
        public void RoomCreationUniqueIds()
        {
            var manager = new ChatRoomManager(new NullLoggerFactory());
            var roomId1 = manager.CreateChatRoom();
            var roomId2 = manager.CreateChatRoom();

            Assert.That(roomId1, Is.Not.EqualTo(roomId2));
        }
コード例 #11
0
 private void initManagers()
 {
     _registrationManager       = instantiateManager <RegistrationManager>(_registrationManagerPFB);
     _chatLobbyManager          = instantiateManager <ChatLobbyManager>(_chatLobbyManagerPFB);
     _popupManager              = instantiateManager <PopupManager>(_popupManagerPFB);
     _sceneSelectionManager     = instantiateManager <SceneSelectionManager>(_sceneSelectionManagerPFB);
     _characterSelectionManager = instantiateManager <SceneCharacterSelectionManager>(_characterSelectionManagerPFB);
     _chatRoomManager           = instantiateManager <ChatRoomManager>(_chatRoomManagerPFB);
 }
コード例 #12
0
 private void Initialize()
 {
     connections = new Connections();
     manager     = new ChatRoomManager(connections);
     connections.AdminConnectRoomHandler = manager.AdminRoomConnection;
     listener            = new TcpListener(IPAddress.Parse("127.0.0.1"), Port);
     threadListener      = new Thread(new ThreadStart(ListenLoop));
     threadListener.Name = "Connection Thread";
     threadListener.Start();
 }
コード例 #13
0
 public PacketManager(ServerManager serverManager, ClientManager clientManager, ChatRoomManager chatRoomManager, MatchListingManager matchListingManager, MatchManager matchManager, ILoggerFactory loggerFactory)
 {
     this.IncomingPacketsJSON = new Dictionary <Type, IMessageIncomingJson>()
     {
         { typeof(JsonConfirmConnectionIncomingMessage), new ConfirmConnectionIncomingMessage() },
         { typeof(JsonTokenLoginIncomingMessage), new TokenLoginIncomingMessage(serverManager, clientManager, loggerFactory.CreateLogger <TokenLoginIncomingMessage>()) },
         { typeof(JsonGuestLoginIncomingPacket), new GuestLoginIncomingMessage(serverManager, clientManager, loggerFactory.CreateLogger <GuestLoginIncomingMessage>()) },
         { typeof(JsonLegacyPingIncomingMessage), new LegacyPingIncomingMessage() },
         { typeof(JsonManageVarsIncomingMessage), new ManageVarsIncomingMessage() },
         { typeof(JsonSetAccountSettingsMessage), new SetAccountSettingsIncomingMessage() },
         { typeof(JsonGetLevelListIncomingMessage), new GetLevelListIncomingMessage() },
         { typeof(JsonJoinRoomIncomingMessage), new JoinRoomIncomingMessage(chatRoomManager, matchListingManager, matchManager) },
         { typeof(JsonGetLevelOfTheDayIncomingMessage), new GetLevelOfTheDayIncomingMessage(matchListingManager) },
         { typeof(JsonGetTournamentIncomingMessage), new GetTournamentIncomingMessage(matchListingManager, matchManager) },
         { typeof(JsonRequestMatchesIncomingMessage), new RequestMatchesIncominggMessage(matchListingManager) },
         { typeof(JsonGetRoomsIncomingMessage), new GetRoomsIncomingMessage(chatRoomManager) },
         { typeof(JsonLeaveRoomIncomingMessage), new LeaveRoomIncomingMessage(chatRoomManager, matchListingManager, matchManager) },
         { typeof(JsonLeaveLobbyIncomingMessage), new LeaveLobbyIncomingMessage() },
         { typeof(JsonGetMemberListIncomingMessage), new GetMemberListIncomingMessage(chatRoomManager) },
         { typeof(JsonGetUserListIncomingMessage), new GetUserListIncomingMessage(clientManager) },
         { typeof(JsonGetUserPageIncomingMessage), new GetUserPageIncomingMessage(clientManager) },
         { typeof(JsonSendToRoomIncomingMessage), new SendToRoomIncomingMessage(chatRoomManager) },
         { typeof(JsonCreateMatchIncomingMessage), new CreateMatchIncomingMessage(matchListingManager) },
         { typeof(JsonForceStartIncomingMessage), new ForceStartIncomingMessage() },
         { typeof(JsonFinishDrawingIncomingMessage), new FinishDrawingIncomingMessage() },
         { typeof(JsonForfietIncomingMessage), new ForfietIncomingMessage() },
         { typeof(JsonFinishMatchIncomingMessage), new FinishMatchIncomingMessage() },
         { typeof(JsonLoseHatIncomingMessage), new LoseHatIncomingMessage() },
         { typeof(JsonGetHatIncomingMessage), new GetHatIncomingMessage() },
         { typeof(JsonCoinsIncomingMessage), new CoinsIncomingMessage() },
         { typeof(JsonGetPmsIncomingMessage), new GetPmsIncomingMessage() },
         { typeof(JsonGetPmIncomingMessage), new GetPmIncomingMessage() },
         { typeof(JsonDeletePmsIncomingMessage), new DeletePmsIncomingMessage() },
         { typeof(JsonSendPmIncomingMessage), new SendPmIncomingMessage() },
         { typeof(JsonEditUserListIncomingMessage), new EditUserListIncomingMessage() },
         { typeof(JsonKickFromMatchListingIncomingMessage), new KickFromMatchListingIncomingMessage() },
         { typeof(JsonBanFromMatchListingIncomingMessage), new BanFromMatchListingIncomingMessage() },
         { typeof(JsonStartQucikJoinIncomingMessage), new StartQucikJoinIncomingMessage(matchListingManager) },
         { typeof(JsonStopQuickJoinIncomingMessage), new StopQuickJoinIncomingMessage(matchListingManager) },
         { typeof(JsonRateLevelIncomingMessage), new RateLevelIncomingMessage() },
         { typeof(JsonSendThingIncomingMessage), new SendThingIncomingMessage() },
         { typeof(JsonThingExistsIncomingMessage), new ThingExistsIncomingMessage() },
         { typeof(JsonAcceptThingTransferIncomingMessage), new AcceptThingTransferIncomingMessage() },
         { typeof(JsonReportPmIncomingMessage), new ReportPmIncomingMessage() },
         { typeof(JsonKothIncomingMessage), new KothIncomingMessage() },
         { typeof(JsonDashIncomingMessage), new DashIncomingMessage() },
         { typeof(JsonJoinTournamentIncomingMessage), new JoinTournamentIncomingMessage(matchListingManager, matchManager) },
         { typeof(JsonWinHatIncomingMessage), new WinHatIncomingMessage() },
     };
 }
コード例 #14
0
        public void GetAllChatRoomsCallsRepository()
        {
            // Arrange
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.FindAll()).Returns(new List <ChatRoom>());
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);

            // Act
            var result = chatRoomManager.GetAllChatRooms();

            // Assert
            chatRoomRepositoryMock.Verify(repository => repository.FindAll(), Times.Once);
        }
コード例 #15
0
        public void SetNickname()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var connection = MockRepository.GenerateMock <IConnection>();
            var client     = new ChatClient(connection, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection.Raise(c => c.PacketReceived += null, connection, authentificationPacket);
            Assert.That(client.Nickname, Is.EqualTo("Bob"));
        }
コード例 #16
0
        public void GetAllChatRoomsReturnsIEnumerableChatRoom()
        {
            // Arrange
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.FindAll()).Returns(new List <ChatRoom>());
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);

            // Act
            var result = chatRoomManager.GetAllChatRooms();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(IEnumerable <ChatRoom>));
        }
コード例 #17
0
ファイル: ChatRoomUnitTest.cs プロジェクト: carlosv14/Chatty
        public async Task RoomChatShowsOnlyFiftyMessages()
        {
            var chatRooms = this.GetChatRooms();
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom> >();
            var userRepositoryMock     = new Mock <IRepository <ApplicationUser> >();

            chatRoomRepositoryMock.Setup(x => x.All()).Returns(chatRooms.AsQueryable());
            chatRoomRepositoryMock.Setup(x => x.FindAsync(It.IsAny <object[]>()))
            .Returns((object[] name) => Task.FromResult(chatRooms.FirstOrDefault(c => c.Name == name.First().ToString())));

            var chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object, userRepositoryMock.Object);
            var messages        = await chatRoomManager.GetMessagesAsync("Default Room");

            Assert.IsTrue(messages.Count() <= 50);
        }
コード例 #18
0
ファイル: ChatClientTests.cs プロジェクト: psychicdoom/OpenMU
        public void AuthentificationSuccess()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var connection = new Mock <IConnection>();
            var client     = new ChatClient(connection.Object, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection.Raise(c => c.PacketReceived += null, connection.Object, authentificationPacket);
            Assert.That(room.ConnectedClients, Contains.Item(client));
        }
コード例 #19
0
ファイル: ChatClientTests.cs プロジェクト: webdes27/OpenMU
        public async Task SentMessageEncryptedProperly()
        {
            var manager        = new ChatRoomManager(new NullLoggerFactory());
            var duplexPipe     = new DuplexPipe();
            var connection     = new Connection(duplexPipe, null, null, new NullLogger <Connection>());
            var client         = new ChatClient(connection, manager, new NullLogger <ChatClient>());
            var expectedPacket = new byte[] { 0xC1, 0x0B, 0x04, 0x01, 0x06, 0xBD, 0x8E, 0xEA, 0xBD, 0x8E, 0xEA };

            client.SendMessage(1, "AAAAAA");
            var sendResult = await duplexPipe.SendPipe.Reader.ReadAsync();

            var sentPacket = sendResult.Buffer.ToArray();

            Assert.That(expectedPacket, Is.EqualTo(sentPacket));
        }
コード例 #20
0
ファイル: SteamNerd.cs プロジェクト: bakerj76/SteamNerd
        public SteamNerd()
        {
            SteamClient = new SteamClient();

            CallbackManager = new CallbackManager(SteamClient);
            ModuleManager   = new ModuleManager(this);
            UserManager     = new UserManager(this, "admins.txt");
            ChatRoomManager = new ChatRoomManager(this, "chats.txt");

            SteamUser    = SteamClient.GetHandler <SteamUser>();
            SteamFriends = SteamClient.GetHandler <SteamFriends>();

            SubscribeCallbacks();

            _login = new Login(this, CallbackManager);
        }
コード例 #21
0
        public void AddChatRoomCallsRepository()
        {
            // Arrange
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.Insert(It.IsAny <ChatRoom>())).Returns(1);
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);

            ChatRoom chatRoom = new ChatRoom("room");

            // Act
            chatRoomManager.AddChatRoom(chatRoom);

            // Assert
            chatRoomRepositoryMock.Verify(repository => repository.Insert(It.IsAny <ChatRoom>()), Times.Once);
        }
コード例 #22
0
    internal ChatRoom(ChatRoomManager chatRoomManager, CommandManager commandManager, ChatRoomType type, uint creatorUserId, string name, string pass, string note)
    {
        this.chatRoomManager = chatRoomManager;
        this.commandManager  = commandManager;

        this.Clients       = new ClientSessionCollection(removeCallback: this.Leave0);
        this.BannedClients = new ConcurrentBag <IUserIdentifier>();

        this.RecentMessages = new ConcurrentQueue <ChatOutgoingMessage>();

        this.CreatorUserId = creatorUserId;
        this.Type          = type;
        this.Name          = name;
        this.Pass          = pass;
        this.Note          = note;
    }
コード例 #23
0
ファイル: ChatClientTests.cs プロジェクト: psychicdoom/OpenMU
        public void SetClientIndex()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var connection = new Mock <IConnection>();
            var client     = new ChatClient(connection.Object, manager);
            var authInfo   = new ChatServerAuthenticationInfo(3, roomId, "Bob", "128450673");

            room.RegisterClient(authInfo);

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection.Raise(c => c.PacketReceived += null, connection.Object, authentificationPacket);
            Assert.That(client.Index, Is.EqualTo(authInfo.Index));
        }
コード例 #24
0
        public void FindChatRoomByIdWithInvalidIdThrowsKeyNotFoundException()
        {
            // Arrange
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.Exists(It.IsAny <long>())).Returns(false);
            chatRoomRepositoryMock.Setup(repository => repository.FindByIdWithMessages(It.IsAny <long>())).Returns(new List <ChatRoom>()
            {
                new ChatRoom("room")
            });
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);
            long            chatRoomId      = 1;

            // Act Assert
            Assert.ThrowsException <KeyNotFoundException>(() => chatRoomManager.FindChatRoomById(chatRoomId));
        }
コード例 #25
0
ファイル: ChatClientTests.cs プロジェクト: zkings001/OpenMU
        public async Task SetNickname()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var duplexPipe = new DuplexPipe();
            var connection = new Connection(duplexPipe, null, null);
            var client     = new ChatClient(connection, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));
            var authenticationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };
            await duplexPipe.ReceivePipe.Writer.WriteAsync(authenticationPacket);

            await duplexPipe.ReceivePipe.Writer.FlushAsync();

            Assert.That(client.Nickname, Is.EqualTo("Bob"));
        }
コード例 #26
0
        public void AuthentificationFailedByWrongToken()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var connection = MockRepository.GenerateMock <IConnection>();
            var client     = new ChatClient(connection, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450674"));
            connection.Expect(c => c.Disconnect());

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection.Raise(c => c.PacketReceived += null, connection, authentificationPacket);
            Assert.That(room.ConnectedClients.Contains(client), Is.False);
            connection.VerifyAllExpectations();
        }
コード例 #27
0
ファイル: ChatClientTests.cs プロジェクト: zkings001/OpenMU
        public async Task AuthenticationFailedByWrongToken()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var duplexPipe = new DuplexPipe();
            var connection = new Connection(duplexPipe, null, null);
            var client     = new ChatClient(connection, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450674"));
            var authenticationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };
            await duplexPipe.ReceivePipe.Writer.WriteAsync(authenticationPacket);

            await duplexPipe.ReceivePipe.Writer.FlushAsync();

            Assert.That(room.ConnectedClients.Contains(client), Is.False);
            Assert.That(connection.Connected, Is.False);
        }
コード例 #28
0
ファイル: ChatClientTests.cs プロジェクト: webdes27/OpenMU
        public async Task AuthenticationSuccess()
        {
            var manager    = new ChatRoomManager(new NullLoggerFactory());
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var duplexPipe = new DuplexPipe();
            var connection = new Connection(duplexPipe, null, null, new NullLogger <Connection>());
            var client     = new ChatClient(connection, manager, new NullLogger <ChatClient>());

            room !.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));

            var authenticationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };
            await duplexPipe.ReceivePipe.Writer.WriteAsync(authenticationPacket);

            await duplexPipe.ReceivePipe.Writer.FlushAsync();

            Assert.That(room.ConnectedClients, Contains.Item(client));
        }
コード例 #29
0
ファイル: ChatClientTests.cs プロジェクト: psychicdoom/OpenMU
        public void RoomClientListSentAfterJoin()
        {
            var manager    = new ChatRoomManager();
            var roomId     = manager.CreateChatRoom();
            var room       = manager.GetChatRoom(roomId);
            var connection = new Mock <IConnection>();
            var client     = new ChatClient(connection.Object, manager);

            room.RegisterClient(new ChatServerAuthenticationInfo(room.GetNextClientIndex(), roomId, "Bob", "128450673"));

            var authentificationPacket = new byte[] { 0xC1, 0x10, 0x00, 0x00, (byte)roomId, (byte)(roomId >> 8), 0xCD, 0xFD, 0x93, 0xC8, 0xFA, 0x9B, 0xCA, 0xF8, 0x98, 0xFC };

            connection.Raise(c => c.PacketReceived += null, connection.Object, authentificationPacket);
            var expectedPacket = new byte[] { 0xC2, 0x00, 0x13, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x6F, 0x62, 0, 0, 0, 0, 0, 0, 0 };

            connection.Verify(c => c.Send(It.Is <byte[]>(arg => arg.SequenceEqual(expectedPacket))), Times.Once);
            Assert.That(client.Nickname, Is.EqualTo("Bob"));
        }
コード例 #30
0
        public void AddMessageToChatRoomWithInvalidIdThrowsKeyNotFoundException()
        {
            // Arrange
            var chatRoomRepositoryMock = new Mock <IRepository <ChatRoom, long> >(MockBehavior.Strict);

            chatRoomRepositoryMock.Setup(repository => repository.FindByIdWithMessages(It.IsAny <long>())).Returns(new List <ChatRoom>()
            {
                new ChatRoom("room")
            });
            chatRoomRepositoryMock.Setup(repository => repository.Exists(It.IsAny <long>())).Returns(false);
            chatRoomRepositoryMock.Setup(repository => repository.Update(It.IsAny <ChatRoom>()));
            ChatRoomManager chatRoomManager = new ChatRoomManager(chatRoomRepositoryMock.Object);
            long            chatRoomId      = 1;
            Message         message         = new Message("Carla Red", "Hello World");

            // Act Assert
            Assert.ThrowsException <KeyNotFoundException>(() => chatRoomManager.AddMessageToChatRoom(chatRoomId, message));
        }
コード例 #31
0
ファイル: Session.cs プロジェクト: pkt30/OscarLib
        /// <summary>
        /// Create a new OSCAR session
        /// </summary>
        /// <param name="screenname">The screenname to log in</param>
        /// <param name="password">The password associated with the screenname</param>
        /// <exception cref="ArgumentException">Thrown when <paramref name="screenname"/> is not
        /// a valid AIM or ICQ screenname.</exception>
        public Session(string screenname, string password)
        {
            // Check to make sure the screenname is something valid
            if (!ScreennameVerifier.IsValidAIM(screenname) &&
                !ScreennameVerifier.IsValidICQ(screenname))
            {
                throw new ArgumentException(screenname + " is not a valid AIM or ICQ screenname", "screenname");
            }

            // Save parameter values
            _screenname = screenname;
            _password = password;

            connectionManager = new ConnectionManager(this);
            serviceManager = new ServiceManager(this);
            ssiManager = new SSIManager(this);
            icqManager = new IcqManager(this);
            messageManager = new MessageManager(this);
            statusManager = new StatusManager(this);
            chatRoomManager = new ChatRoomManager(this);
            graphicsManager = new GraphicsManager(this);
            authManager = new AuthorizationManager(this);
            searchManager = new SearchManager(this);
            rateManager = new RateClassManager(this);
            statsManager = new UsageStatsManager(this);

            connectionManager.CreateNewConnection(0x0017);

            // Create a default set of capabilities for this session
            SetDefaultIdentification();

            // Set up some default values for public properties
            _publicidletime = true;

            // Set initial values for internal properties
            _loggedin = false;
            _privacy = PrivacySetting.AllowAllUsers;
            _parametercount = 0;
        }