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); }