Exemplo n.º 1
0
    public async Task Test_OnConnectedAsync()
    {
      Mock<IHubCallerClients> mockClients = new Mock<IHubCallerClients>();
      Mock<IClientProxy> mockClientProxy = new Mock<IClientProxy>();
      var hub = new ChatHub();
      hub.Clients = mockClients.Object;

      await hub.OnConnectedAsync();
      mockClients.VerifyAll();
    }
Exemplo n.º 2
0
 public ChatBox(UserInfo userInfo)
 {
     _chatHub    = new ChatHub(userInfo);
     _bizService = new BizService(new HttpClient()
     {
         BaseAddress = new Uri(URLConfig.API_Host)
     });
     InitializeComponent();
     InitMessageBoxEvent();
 }
Exemplo n.º 3
0
 public AuthController(UserManager <User> userManager,
                       SignInManager <User> signInManager, ISetUserStatusCommand setUserStatus,
                       ChatHub chatHub, IGetUserByUsernameCommand getUserByUsernameCommand)
 {
     _userManager       = userManager;
     _signInManager     = signInManager;
     _setUserStatus     = setUserStatus;
     _chatHub           = chatHub;
     _getUserByUsername = getUserByUsernameCommand;
 }
Exemplo n.º 4
0
 public LobbyController(UserManager <ApplicationUser> userManager,
                        Arena arena,
                        Hubs.ChatHub chatHubContext,
                        CombatManager combatManager)
 {
     _chatHubContext = chatHubContext;
     _arena          = arena;
     _userManager    = userManager;
     _combatManager  = combatManager;
 }
Exemplo n.º 5
0
        public ChatHubTests()
        {
            var currentDirectory = Directory.GetCurrentDirectory();
            var fullFilePath     = $"{currentDirectory}/History.txt";

            Service = new FileMessageHistory(fullFilePath);
            var connectedUsersService = new ConnectedUsersService();

            Hub = new ChatHub(Service, connectedUsersService);
        }
Exemplo n.º 6
0
 public MainPage()
 {
     InitializeComponent();
     CollectionMessage = new ObservableCollection <Message>();
     HubConnect        = new HubConnection(URLServer);
     ChatHub           = HubConnect.CreateHubProxy("ChatHub");
     ChatHub.On("Ready", OnReady);
     ChatHub.On <string, string>("Message", OnMessage);
     MainListView.ItemsSource = CollectionMessage;
 }
Exemplo n.º 7
0
        public void AcceptChat_Initiated()
        {
            var guid1 = Guid.NewGuid();
            var guid2 = Guid.NewGuid();

            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid1,
                Language = "English",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>() { guid2 },
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C7" } } }
            });
            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid2,
                Language = "French",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>(),
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C8" } } }
            });

            ChatRoom chatRoom = new ChatRoom();

            var hub = new ChatHub(new MockTranslator());
            var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
            hub.Clients = mockClients.Object;

            var mockGroupManager = new Mock<IGroupManager>();
            hub.Groups = mockGroupManager.Object;

            dynamic all = new ExpandoObject();
            all.joinRoom = new Action<ChatRoom>((room) =>
            {
                chatRoom = room;
            });

            AttachIdentity(hub, "Tester8", "C8");

            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Others).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.OthersInGroup(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.User(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Group(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Clients(It.IsAny<List<string>>())).Returns((ExpandoObject)all);

            hub.AcceptChat(guid2, guid1);

            Assert.AreEqual(1, chatRoom.Id);
            Assert.AreEqual(2, chatRoom.Users.Count);
        }
Exemplo n.º 8
0
        public ActionResult Chat(string name)
        {
            var currentUsername = User.Identity.Name;
            var currentUser     = repo.GetUser(currentUsername);

            ViewBag.FullName = name;
            ViewBag.Image    = helper.LoadImage(currentUser.ImagePath);
            ChatHub.SelectedPeer(name);

            return(View());
        }
Exemplo n.º 9
0
        public ActionResult Index()
        {
            if (_chatHub == null)
            {
                _chatHub = new ChatHub();
            }

            GetUserDetails();

            return(View());
        }
Exemplo n.º 10
0
        void downloader_PageDownloaded(object sender, PageDownloadedEventArgs e)
        {
            var downloader   = (ISiteDownloader)sender;
            var sessionId    = downloader.SessionId;
            var connectionId = ChatHub.GetConnectionId(sessionId);

            if (!string.IsNullOrEmpty(connectionId))
            {
                //GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.Client(connectionId).broadcastMessage("test", "downloader_PageDownloaded");
                GlobalHost.ConnectionManager.GetHubContext <ChatHub>().Clients.Client(connectionId).onPageDownloaded(new { CurrentPage = e.DownloadedPage, DownloadedPages = downloader.DownloadedPages.Count, Remains = downloader.DownloadQueue.Count });
            }
        }
Exemplo n.º 11
0
        public async Task <ActionResult> SubmitTipKarma(string chatHandle, int chatMessageId)
        {
            using (var context = new ApplicationDbContext())
            {
                var senderId = User.Identity.GetUserId();
                var sender   = await context.Users.FirstOrDefaultAsync(x => x.Id == senderId).ConfigureAwait(false);

                if (sender == null)
                {
                    return(Json(new { Success = false, Message = Resources.Layout.karmaErrorUnauthorizedMessage }));
                }

                var user = await context.Users.FirstOrDefaultAsync(x => x.ChatHandle == chatHandle || x.UserName == chatHandle).ConfigureAwait(false);

                if (user == null)
                {
                    return(Json(new { Success = false, Message = Resources.Layout.karmaErrorUserNotFoundMessage }));
                }

                var chatBotId = Constant.SYSTEM_USER_CHATBOT.ToString();
                var tip       = await context.ChatMessages.FirstOrDefaultAsync(x => x.Id == chatMessageId && x.UserId == chatBotId).ConfigureAwait(false);

                if (tip == null || tip.Message.Split(':')[1] != chatHandle)
                {
                    return(Json(new { Success = false, Message = Resources.Layout.karmaTipErrorNotFoundMessage }));
                }

                var karma = new UserKarma
                {
                    KarmaType     = UserKarmaType.Tip,
                    UserId        = user.Id,
                    SenderId      = sender.Id,
                    Discriminator = chatMessageId.ToString()
                };

                if (!await SaveKarmaChanges(context, user, karma))
                {
                    return(Json(new { Success = false, Message = string.Format(Resources.Layout.karmaTipErrorAlreadySentMessage, chatHandle) }));
                }

                await SendKarmaNotification(context, user, string.Format(Resources.Layout.karmaTipNotificationMessage, sender.ChatHandle));

                await ChatHub.InvalidateUserCache(user.Id);

                return(Json(new
                {
                    Success = true,
                    Message = string.Format(Resources.Layout.karmaTipIsSentMessage, chatHandle),
                    User = user.UserName,
                    Count = user.KarmaTotal
                }));
            }
        }
Exemplo n.º 12
0
        public void AddMessage(Message model)
        {
            // The user that sent the message
            model.User = _chatRepository.GetUser(model.UserId);
            model.Date = DateTime.UtcNow;

            var id = _chatRepository.AddMessage(model);

            model.Id = id;

            ChatHub.AddMessage(model.RoomId.ToString(), model);
        }
        public void CreateSignalRChatHub()
        {
            // Arrange
            var optionsBuilder = new DbContextOptionsBuilder <MessagingContext>();
            var context        = new MessagingContext(optionsBuilder.Options);

            // Act
            var chatHub = new ChatHub(context);

            // Assert
            Assert.IsInstanceOfType(chatHub, typeof(ChatHub));
        }
Exemplo n.º 14
0
        private async void btn_onSendClicked(object sender, EventArgs e)
        {
            if (ChatEntry.Text.Equals("") || !IsReady)
            {
                return;
            }
            SendButton.IsEnabled = false;
            await ChatHub.Invoke("Chat", ChatEntry.Text);

            ChatEntry.Text       = string.Empty;
            SendButton.IsEnabled = true;
        }
Exemplo n.º 15
0
        public void PostMessage_Should_InvokeSaveMessage()
        {
            var testMessage = new ChatMessage {
                ChatRoom = "service test", MessageContent = "Test Message, ya'll", UserName = "******"
            };
            var repo = new Mock <IMessageRepository>();

            var target = new ChatHub(repo.Object);

            target.PostMessage(testMessage).Wait();
            repo.Verify(g => g.SaveMessage(It.IsAny <ChatMessage>()), Times.Once);
            repo.Verify(g => g.SaveMessage(It.Is <ChatMessage>(m => m == testMessage)), Times.Once);
        }
Exemplo n.º 16
0
        public void HubsAreMockableViaType()
        {
            var hub         = new ChatHub();
            var mockClients = new Mock <IHubCallerConnectionContext <dynamic> >();
            var all         = new Mock <IClientContract>();

            hub.Clients = mockClients.Object;
            all.Setup(m => m.broadcastMessage(It.IsAny <string>(),
                                              It.IsAny <string>())).Verifiable();
            mockClients.Setup(m => m.All).Returns(all.Object);
            hub.Send("TestUser", "TestMessage");
            all.VerifyAll();
        }
Exemplo n.º 17
0
        private int EntityId = -1; // passed as a querystring parameter for authorization and used for validation

        public ChatHubController(IWebHostEnvironment webHostEnvironment, IHubContext <ChatHub> chatHubContext, ChatHub chatHub, IChatHubRepository chatHubRepository, IChatHubService chatHubService, IHttpContextAccessor httpContextAccessor, ILogManager logger)
        {
            this.webHostEnvironment = webHostEnvironment;
            this.chatHubContext     = chatHubContext;
            this.chatHub            = chatHub;
            this.chatHubRepository  = chatHubRepository;
            this.chatHubService     = chatHubService;
            this.logger             = logger;
            if (httpContextAccessor.HttpContext.Request.Query.ContainsKey("entityid"))
            {
                EntityId = int.Parse(httpContextAccessor.HttpContext.Request.Query["entityid"]);
            }
        }
Exemplo n.º 18
0
        public void Start(ChatHub chatHub, List <string> playerNames, Leaderboard leaderboard)
        {
            hub     = chatHub;
            players = new List <Player>();

            foreach (var name in playerNames)
            {
                var player = new Player()
                {
                    Name  = name,
                    IsBot = name.StartsWith("Bot")
                };
                players.Add(player);
                var newPlayer = new PlayerStats {
                    Player = name
                };

                if (!player.IsBot)
                {
                    leaderboard.LeaderboardEntries.Add(newPlayer);
                }
            }

            var WeaponHelper = new WeaponHelper();

            weaponPool = WeaponHelper.CreateWeapons(players.Count);

            hub.Broadcast(messageHelper.Begin(players));
            hub.Broadcast("--------------------------------------------------");
            LootingPhase();
            WarPhase();

            var winner = players.First(p => p.State != PlayerState.Dead);

            if (!winner.IsBot)
            {
                var leaderboardEntry = leaderboard.LeaderboardEntries.Where(x => x.Player == winner.Name).FirstOrDefault();
                leaderboardEntry.Wins++;
                leaderboardEntry.TotalKills += winner.KillCount;
            }
            hub.Broadcast("--------------------------------------------------");
            hub.Broadcast(messageHelper.PlayerWins(winner));
            hub.Broadcast("--------------------------------------------------");

            var kills = messageHelper.GetPlayersKilled(players);

            foreach (var kill in kills)
            {
                hub.Broadcast(kill);
            }
        }
Exemplo n.º 19
0
    public async Task Test_SendMessage()
    {
      Mock<IHubCallerClients> mockClients = new Mock<IHubCallerClients>();
      Mock<IClientProxy> mockClientProxy = new Mock<IClientProxy>();
      var hub = new ChatHub();
      //var all = new Mock<IClientContract>();
      hub.Clients = mockClients.Object;

      // all.Setup(m => m.broadcastMessage(It.IsAny<string>(), 
      //           It.IsAny<string>())).Verifiable();
      mockClients.Setup(clients => clients.All).Returns(mockClientProxy.Object);
      await hub.SendMessage("TestUser", "TestMessage");
      mockClients.VerifyAll();
    }
Exemplo n.º 20
0
        public void SetUp()
        {
            _adapter = new Mock <IWepApiAdapter>();

            _chatHub        = new ChatHub(_adapter.Object);
            _mockClients    = new Mock <IHubCallerConnectionContext <dynamic> >();
            _mockContext    = new Mock <HubCallerContext>();
            _clientContract = new Mock <IClientContract>();

            _chatHub.Clients = _mockClients.Object;

            _mockClients.Setup(m => m.All).Returns(_clientContract.Object);
            _mockClients.Setup(m => m.Client(It.IsAny <string>())).Returns(_clientContract.Object);
            _mockContext.SetupAllProperties();
        }
        public async Task SendMessage_ShouldSendMessageToClients_WhenCalled()
        {
            var clientsMock     = new Mock <IHubCallerClients <IClientMessage> >();
            var clientProxyMock = new Mock <IClientMessage>();

            clientsMock.Setup(clients => clients.All).Returns(clientProxyMock.Object);
            var chatHub = new ChatHub {
                Clients = clientsMock.Object
            };

            await chatHub.SendMessage("Jack", "Hello all!");

            clientsMock.Verify(clients => clients.All, Times.Once);
            clientProxyMock.Verify(x => x.ReceiveMessage(It.IsAny <string>(), It.IsAny <string>()));
        }
        protected override void CreateHubConnection()
        {
            base.CreateHubConnection();

            ChatHub    = HubConnection.CreateHubProxy("ChatHub");
            AccountHub = HubConnection.CreateHubProxy("AccountHub");
            ContactHub = HubConnection.CreateHubProxy("ContactHub");
            ChatHub.On("update", () =>
            {
                if (OnRequestUpdate != null)
                {
                    OnRequestUpdate();
                }
            });
        }
Exemplo n.º 23
0
        void downloader_DownloadCompleted(object sender, DownloadCompletedEventArgs e)
        {
            var downloader   = (ISiteDownloader)sender;
            var sessionId    = ((ISiteDownloader)sender).SessionId;
            var connectionId = ChatHub.GetConnectionId(sessionId);

            if (!string.IsNullOrEmpty(connectionId))
            {
                //GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.Client(connectionId).broadcastMessage("test", "downloader_DownloadCompleted");

                GlobalHost.ConnectionManager.GetHubContext <ChatHub>().Clients.Client(connectionId).onDownloadCompleted(e.DownloadedPages);
            }

            SiteDownloaderFactory.RemoveSiteDownloader(sessionId);
        }
 public CheckinCommandProveedores(IHubCallerClients clients, HubCallerContext context, IGroupManager group)
 {
     _log = new TraceLog();
     _hub = new ChatHub(configuration);
     try
     {
         _hub.Clients = clients;
         _hub.Context = context;
         _hub.Groups  = group;
     }
     catch (Exception e)
     {
         string mensajeerror = e.Message;
         TraceLog.LogTrace("ERROR", "Cliente Notificacion", mensajeerror);
     }
 }
Exemplo n.º 25
0
 internal bool SendMessage(int toUserId, string message)
 {
     try {
         int USER_ID = int.Parse(HttpContext.Current.User.Identity.Name);
         _Context.Messages.Add(new Message {
             FromUser = USER_ID,
             ToUser   = toUserId,
             Message1 = message,
             Date     = DateTime.Now
         });
         _Context.SaveChanges();
         ChatHub.RecieveMessage(USER_ID, toUserId, message);
         return(true);
     }
     catch { return(false); }
 }
Exemplo n.º 26
0
        public async Task <ActionResult> SubmitTipIgnore(string username)
        {
            var result = await UserSettingsWriter.UpdateIgnoreList(User.Identity.GetUserId(), UserIgnoreListType.Tip, username);

            if (result.Success)
            {
                await ChatHub.InvalidateUserCache(User.Identity.GetUserId());
            }

            return(Json(new
            {
                Success = result.Success,
                Message = result.Message,
                WasRemoved = result.Result
            }));
        }
Exemplo n.º 27
0
        public void HubsAreMockableViaDynamic()
        {
            bool sendCalled  = false;
            var  hub         = new ChatHub();
            var  mockClients = new Mock <IHubCallerConnectionContext <dynamic> >();

            hub.Clients = mockClients.Object;
            dynamic all = new ExpandoObject();

            all.broadcastMessage = new Action <string, string>((name, message) => {
                sendCalled = true;
            });
            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            hub.Send("TestUser", "TestMessage");
            Assert.True(sendCalled);
        }
Exemplo n.º 28
0
 private async void btn_onGetOutClicked(object sender, EventArgs e)
 {
     IGetOut           = true;
     OutRoom.IsEnabled = false;
     try
     {
         await ChatHub.Invoke("Chat", "");
     }
     catch { }
     //Wait for get Message "GetOut", then Stop Connect the HubConnect.
     //If, HubConnect.Stop() in line 130, Will be crash, because the asyncho, (stop Hub, still...)
     if (HubConnect.State == ConnectionState.Connected)
     {
         HubConnect.Stop();
     }
 }
Exemplo n.º 29
0
        public void Setup()
        {
            mockClients     = new Mock <IHubCallerClients>();
            mockClientProxy = new Mock <IClientProxy>();
            navn            = new Mock <HubCallerContext>();

            mockClients.Setup(clients => clients.Group("group1")).Returns(mockClientProxy.Object);

            navn.Setup(c => c.ConnectionId).Returns(Guid.NewGuid().ToString());

            chatHub = new ChatHub(loggingService)
            {
                Clients = mockClients.Object,
                Context = navn.Object
            };
            chatHub.Clients.Group("group1");
        }
 //Create a method for Flushing collection availible for List but not for BlockigCollection
 public void Clear()
 {
     try {
         while (this.Count > 0)
         {
             foreach (T item in this)
             {
                 this.Remove(item);
             }
             //this.Dispose();
         }
         //this.Dispose(); //TODO: do we need to dispose of list, will probs be garbage collected
     }
     catch (Exception e) {
         ChatHub.DebugOut("HubBlockingCollection -  Failed to Clear(), message : " + e.Message); //TODO: Handle error properly
     }
 }
Exemplo n.º 31
0
 public CommandManager(
     string connectionId,
     int roomId,
     ChatHubUser user,
     ChatHub chatHub,
     IChatHubService service,
     IChatHubRepository repository,
     UserManager <IdentityUser> userManager)
 {
     _connectionId = connectionId;
     _roomId       = roomId;
     _caller       = user;
     _chatHub      = chatHub;
     _chatService  = service;
     _repository   = repository;
     _userManager  = userManager;
 }
Exemplo n.º 32
0
        public Notification()
        {
            var chatHub = new ChatHub();

            chatHub.Send("System", "System call every 1 min.");
        }
Exemplo n.º 33
0
        public void Disconnect_Remove()
        {
            var guid1 = Guid.NewGuid();

            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid1,
                Language = "English",
                UserName = "******",
                IsChatting = true,
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C4" } } }
            });

            Guid? disUser = null;

            var hub = new ChatHub(new MockTranslator());
            var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
            hub.Clients = mockClients.Object;
            dynamic all = new ExpandoObject();
            all.userDisconnected = new Action<Guid>((name) =>
            {
                disUser = name;
            });

            AttachIdentity(hub, "Tester4", "C4");

            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Others).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.OthersInGroup(It.IsAny<string>())).Returns((ExpandoObject)all);

            hub.OnDisconnected(true);

            Assert.AreEqual(0, ChatHub.ConnectedUsers.Count);
            Assert.AreEqual(guid1, disUser);
        }
Exemplo n.º 34
0
        public void GetUsers_NoUsers()
        {
            var hub = new ChatHub(new MockTranslator());

            AttachIdentity(hub, "Tester1");

            var users = hub.GetUsers();

            Assert.AreEqual(0, users.Count);
        }
Exemplo n.º 35
0
        public void GetUsers_OneLobbyOneChatting()
        {
            var guid1 = Guid.NewGuid();

            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid1,
                IsChatting = false,
                Language = "French",
                UserName = "******",
                ConnectionIds = new Dictionary<string,List<string>>() { {"Lobby", new List<string>() {"C1"}}}
            });
            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                IsChatting = true,
                Language = "English",
                UserName = "******",
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C2" } } }
            });

            var hub = new ChatHub(new MockTranslator());

            AttachIdentity(hub, "Tester1", "C1");

            var users = hub.GetUsers();

            Assert.AreEqual(2, users.Count);
            Assert.AreEqual("Tester1", users.FirstOrDefault(u => !u.IsChatting).UserName);
            Assert.AreEqual("Tester2", users.FirstOrDefault(u => u.IsChatting).UserName);
        }
Exemplo n.º 36
0
        public void InviteToChat()
        {
            var guid1 = Guid.NewGuid();
            var guid2 = Guid.NewGuid();

            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid1,
                Language = "English",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>(),
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C5" } } }
            });
            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid2,
                Language = "French",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>(),
                ConnectionIds = new Dictionary<string, List<string>>() { { "Lobby", new List<string>() { "C6" } } }
            });

            UserModel inviter = null;

            var hub = new ChatHub(new MockTranslator());
            var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
            hub.Clients = mockClients.Object;
            dynamic all = new ExpandoObject();
            all.inviteReceived = new Action<UserModel>((name) =>
            {
                inviter = name;
            });

            AttachIdentity(hub, "Tester5", "C5");

            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Others).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.OthersInGroup(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.User(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Client(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Clients(It.IsAny<List<string>>())).Returns((ExpandoObject)all);

            hub.InviteUser(guid1, guid2);

            Assert.AreEqual(guid2, ChatHub.ConnectedUsers.First(cu => cu.UserName == "Tester5").Invites[0]);
            Assert.IsNotNull(inviter);
            Assert.AreEqual(guid1, inviter.Id);
        }
Exemplo n.º 37
0
        public void JoinLobby()
        {
            UserModel userModel = new UserModel();

            var hub = new ChatHub(new MockTranslator());
            var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
            hub.Clients = mockClients.Object;

            var mockGroupManager = new Mock<IGroupManager>();
            hub.Groups = mockGroupManager.Object;

            dynamic all = new ExpandoObject();
            all.userJoined = new Action<UserModel>((model) =>
            {
                userModel = model;
            });

            AttachIdentity(hub, "Tester3", "C3");

            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Others).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.OthersInGroup(It.IsAny<string>())).Returns((ExpandoObject)all);

            hub.JoinLobby("Tester3", "French", null);

            Assert.AreEqual(1, ChatHub.ConnectedUsers.Count);
            Assert.AreEqual(false, userModel.IsChatting);
            Assert.AreEqual("French", userModel.Language);
            Assert.AreEqual("Tester3", userModel.UserName);
        }
Exemplo n.º 38
0
        public void SendMessage()
        {
            var guid1 = Guid.NewGuid();
            var guid2 = Guid.NewGuid();

            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid1,
                Language = "English",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>(),
                ConnectionIds = new Dictionary<string, List<string>>() { { "Room2", new List<string>() { "C9" } } }
            });
            ChatHub.ConnectedUsers.Add(new UserModel()
            {
                Id = guid2,
                Language = "French",
                UserName = "******",
                IsChatting = false,
                Invites = new List<Guid>(),
                ConnectionIds = new Dictionary<string, List<string>>() { { "Room2", new List<string>() { "C10" } } }
            });

            ChatRoom chatRoom = new ChatRoom() { Id = 2, Users = ChatHub.ConnectedUsers.ToList() };
            ChatHub.ChatRooms.Add(chatRoom);

            ChatMessage mess = new ChatMessage();

            var hub = new ChatHub(new MockTranslator());
            var mockClients = new Mock<IHubCallerConnectionContext<dynamic>>();
            hub.Clients = mockClients.Object;

            var mockGroupManager = new Mock<IGroupManager>();
            hub.Groups = mockGroupManager.Object;

            dynamic all = new ExpandoObject();
            all.receiveMessage = new Action<ChatMessage>((message) =>
            {
                mess = message;
            });

            AttachIdentity(hub, "Tester9", "C9");

            mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Others).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.OthersInGroup(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.User(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Client(It.IsAny<string>())).Returns((ExpandoObject)all);
            mockClients.Setup(m => m.Clients(It.IsAny<List<string>>())).Returns((ExpandoObject)all);

            hub.SendMessage(2, new ChatMessage()
            {
                ClientSent = DateTime.Now,
                Message = "Hello World",
                Sender = chatRoom.Users[0]
            }).Wait();

            Assert.AreEqual(1, mess.Id);
            Assert.AreEqual("Tester9", mess.Sender.UserName);

            Assert.IsNotNull(mess.ServerSent);
            Assert.AreNotEqual(DateTime.MinValue, mess.ServerSent);
            Assert.IsTrue(mess.ServerSent > mess.ClientSent);

            Assert.AreEqual("English", mess.Sender.Language);
            Assert.AreEqual("Hello World", mess.Message);
            Assert.AreEqual("French: Hello World", mess.Translation);
        }
Exemplo n.º 39
0
 private void AttachIdentity(ChatHub hub, string name, string connectionId = "1")
 {
     var mockIdentity =
         Mock.Of<ClaimsIdentity>(ci => ci.Name == name);
     var mockContext = Mock.Of<HubCallerContext>(cc => cc.User.Identity == mockIdentity
                                                    && cc.ConnectionId == connectionId);
     hub.Context = mockContext;
 }