예제 #1
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);
        }