Exemplo n.º 1
0
        public void ProcessingPublicMessageRequest_WhenAnyUser_ShouldSendMessageToEveryoneElse()
        {
            // Arrange
            var senderUser = new ChatUser("Sender");
            var message    = new PublicMessageRequest("Hello!");

            var users = new ChatUser[]
            {
                senderUser,
                new ChatUser("User01"),
                new ChatUser("User02"),
                new ChatUser("User03"),
            };

            var userService = Substitute.For <IUserService>();

            userService.GetConnectedUsers().Returns(users);
            userService.TryGetUserByName(Arg.Is(senderUser.Username), out Arg.Any <ChatUser>())
            .Returns(args =>
            {
                args[1] = senderUser;
                return(true);
            });

            var messageSenderService = Substitute.For <IMessageSenderService>();

            var processor = new PublicMessageRequestProcessor(userService, messageSenderService);

            // Act
            processor.HandleMessage(senderUser.Username, message);

            // Assert
            messageSenderService.Received(1).SendMessageToEveryoneElse(senderUser.Username, Arg.Any <PublicMessageResponse>());
        }
Exemplo n.º 2
0
        public void PublicMessageRequest_WhenSerializedAndDeserialized_ShouldBeEqual()
        {
            // Arrange
            Message message = new PublicMessageRequest("Lorem ipsum");

            // Act / Assert
            this.SerializeDeserializeAndCompare(message);
        }
Exemplo n.º 3
0
    /// <summary>
    /// Gửi request lên server với kiểu request là PublicMessage
    /// </summary>
    /// <param name="message">Message của PublicMessage gửi lên</param>
    public void DoRequestPublicMessage(string message)
    {
        PublicMessageRequest request = new PublicMessageRequest();

        request.ZoneId  = GameManager.Instance.currentRoom.zoneId;
        request.RoomId  = GameManager.Instance.currentRoom.roomId;
        request.Message = message;
        DoRequest(request);
    }
        public void ProcessMessage_WhenProcessorExists_ShouldRaiseProcessorNotFoundException()
        {
            // Arrange
            var     username = "******";
            Message message  = new PublicMessageRequest("Hello");

            var logger          = Substitute.For <ILogger <MessageProcessorService> >();
            var serviceProvider = Substitute.For <IServiceProvider>();

            var mockProcessor = Substitute.For <IMessageProcessor <PublicMessageRequest> >();

            serviceProvider.GetService(Arg.Any <Type>()).Returns(null);

            MessageProcessorService messageProcessorService = new MessageProcessorService(logger, serviceProvider);

            // Act / Assert
            Assert.Throws <ProcessorNotFoundException>(() => messageProcessorService.ProcessMessage(username, message));
        }
        public void ProcessMessage_WhenProcessorExists_ShouldProcessMessage()
        {
            // Arrange
            var     username = "******";
            Message message  = new PublicMessageRequest("Hello");

            var logger          = Substitute.For <ILogger <MessageProcessorService> >();
            var serviceProvider = Substitute.For <IServiceProvider>();

            var mockProcessor = Substitute.For <IMessageProcessor <PublicMessageRequest> >();

            serviceProvider.GetService(Arg.Is(typeof(IMessageProcessor <PublicMessageRequest>))).Returns(mockProcessor);

            MessageProcessorService messageProcessorService = new MessageProcessorService(logger, serviceProvider);

            // Act
            messageProcessorService.ProcessMessage(username, message);

            // Assert
            mockProcessor.Received(1).HandleMessage(username, message);
        }
Exemplo n.º 6
0
        /// <summary>
        /// NOTE: we don't need an app-level ack for this method :-)
        /// </summary>
        public void PublicMessage(ISession session, PublicMessageRequest msgRequest)
        {
            if (session.User.IsDevoiced)
            {
                session.Send(new YouAreDevoicedNotification());
                return;
            }

            PublicMessage message = null;

            using (var uow = UnitOfWorkFactory.Create())
            {
                uow.Attach(session.User);
                message = new PublicMessage(session.User, msgRequest.Body);
                uow.PublicMessageRepository.Add(message);
                uow.Commit();
            }

            var dto = message.ProjectedAs <PublicMessageDto>();

            dto.Role = (UserRoleEnum)(int)session.User.Role;
            _sessionManager.SendToEachChatSessions(dto);
        }
Exemplo n.º 7
0
 public void PublicMessage(PublicMessageRequest request)
 {
     ConnectionManager.SendRequest(request);
 }
    public void SendPublicMessage(string message)
    {
        PublicMessageRequest request = new PublicMessageRequest();
        request.Message = message;
        request.RoomId = room.Id;
        request.ZoneId = room.ZoneId;

        _es.Engine.Send(request);
    }
Exemplo n.º 9
0
 public static void Send(PublicMessageRequest req)
 {
     Debug.Log("sending message");
     sfs.Send(req);
 }