public static TestableChat GetTestableChat(string connectionId, StateChangeTracker clientState, ChatUser user, IDictionary<string, Cookie> cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); var settings = new Mock<IApplicationSettings>(); var mockPipeline = new Mock<IHubPipelineInvoker>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; chat.Clients = new HubConnectionContext(mockPipeline.Object, mockedConnectionObject, "Chat", connectionId, clientState); var prinicipal = new Mock<IPrincipal>(); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); request.Setup(m => m.User).Returns(prinicipal.Object); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return chat; }
public static TestableChat GetTestableChat(string clientId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Agent = new ClientAgent(mockedConnectionObject, "Chat"); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); // setup signal agent var prinicipal = new Mock<IPrincipal>(); chat.Caller = new SignalAgent(mockedConnectionObject, clientId, "Chat", clientState); // setup context chat.Context = new HubContext(new HostContext(request.Object, null, prinicipal.Object), clientId); return chat; }
public void CanDeserializeClientState() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John", Identity = "foo" }; var cookies = new NameValueCollection(); cookies["jabbr.state"] = JsonConvert.SerializeObject(new ClientState { UserId = user.Id }); TestableChat chat = GetTestableChat(clientId, clientState, user, cookies); bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); }
public static TestableChat GetTestableChat(string clientId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock <IResourceProcessor>(); var chatService = new Mock <IChatService>(); var connection = new Mock <IConnection>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Agent = new ClientAgent(mockedConnectionObject, "Chat"); var request = new Mock <IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); // setup signal agent var prinicipal = new Mock <IPrincipal>(); chat.Caller = new SignalAgent(mockedConnectionObject, clientId, "Chat", clientState); // setup context chat.Context = new HubContext(new HostContext(request.Object, null, prinicipal.Object), clientId); return(chat); }
public static TestableChat GetTestableChat(string connectionId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock <IResourceProcessor>(); var chatService = new Mock <IChatService>(); var connection = new Mock <IConnection>(); var settings = new Mock <IApplicationSettings>(); var mockPipeline = new Mock <IHubPipelineInvoker>(); settings.Setup(m => m.AuthApiKey).Returns("key"); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; chat.Clients = new HubConnectionContext(mockPipeline.Object, mockedConnectionObject, "Chat", connectionId, clientState); var prinicipal = new Mock <IPrincipal>(); var request = new Mock <IRequest>(); request.Setup(m => m.Cookies).Returns(new Cookies(cookies)); request.Setup(m => m.User).Returns(prinicipal.Object); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return(chat); }
public void CanJoinChatIfIdentitySet() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John", Identity = "foo" }; TestableChat chat = GetTestableChat(clientId, clientState, user); chat.Caller.id = "1234"; bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); // TODO: find out why these don't work //Assert.Equal(1, user.ConnectedClients.Count); //Assert.Equal("1", user.ConnectedClients.First().Id); chat.MockedConnection.Verify(m => m.Broadcast("Chat." + clientId, It.IsAny <object>()), Times.Once()); }
public void CanDeserializeClientState() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John" }; var cookies = new NameValueCollection(); cookies["jabbr.state"] = JsonConvert.SerializeObject(new ClientState { UserId = user.Id }); TestableChat chat = GetTestableChat(clientId, clientState, user, cookies); bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); chat.MockedConnection.Verify(m => m.Broadcast("Chat." + clientId, It.IsAny <object>()), Times.Once()); chat.MockedChatService.Verify(c => c.UpdateActivity(user, clientId), Times.Once()); }
public void CanDeserializeClientState() { var clientState = new StateChangeTracker(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John", Identity = "foo" }; var cookies = new Dictionary <string, Cookie>(); var cookie = new Cookie("jabbr.state", JsonConvert.SerializeObject(new ClientState { UserId = user.Id })); cookies[cookie.Name] = cookie; TestableChat chat = GetTestableChat(clientId, clientState, user, cookies); bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); }
public static TestableChat GetTestableChat(string connectionId, TrackingDictionary clientState, ChatUser user, NameValueCollection cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock<IResourceProcessor>(); var chatService = new Mock<IChatService>(); var connection = new Mock<IConnection>(); var settings = new Mock<IApplicationSettings>(); settings.Setup(m => m.AuthApiKey).Returns("key"); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(settings, resourceProcessor, chatService, repository, connection); var mockedConnectionObject = chat.MockedConnection.Object; // setup client agent chat.Clients = new ClientProxy(mockedConnectionObject, "Chat"); // setup signal agent var prinicipal = new Mock<IPrincipal>(); var request = new Mock<IRequest>(); request.Setup(m => m.Cookies).Returns(new Cookies(cookies)); request.Setup(m => m.User).Returns(prinicipal.Object); chat.Caller = new StatefulSignalProxy(mockedConnectionObject, connectionId, "Chat", clientState); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return chat; }
public void CanJoinChat() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John" }; var cookies = new HttpCookieCollection { new HttpCookie("userid", "1234") }; TestableChat chat = GetTestableChat(clientId, clientState, user, cookies); bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); // TODO: find out why these don't work //Assert.Equal(1, user.ConnectedClients.Count); //Assert.Equal("1", user.ConnectedClients.First().Id); chat.MockedConnection.Verify(m => m.Broadcast("Chat." + clientId, It.IsAny <object>()), Times.Once()); chat.MockedChatService.Verify(c => c.AddClient(user, clientId), Times.Once()); chat.MockedChatService.Verify(c => c.UpdateActivity(user), Times.Once()); }
public static TestableChat GetTestableChat(string connectionId, StateChangeTracker clientState, ChatUser user, IDictionary <string, Cookie> cookies) { // setup things needed for chat var repository = new InMemoryRepository(); var resourceProcessor = new Mock <ContentProviderProcessor>(); var chatService = new Mock <IChatService>(); var connection = new Mock <IConnection>(); var settings = new ApplicationSettings(); var mockPipeline = new Mock <IHubPipelineInvoker>(); // add user to repository repository.Add(user); // create testable chat var chat = new TestableChat(resourceProcessor, chatService, repository, connection, settings); var mockedConnectionObject = chat.MockedConnection.Object; chat.Clients = new HubConnectionContext(mockPipeline.Object, mockedConnectionObject, "Chat", connectionId, clientState); var principal = new Mock <IPrincipal>(); var request = new Mock <IRequest>(); request.Setup(m => m.Cookies).Returns(cookies); request.Setup(m => m.User).Returns(principal.Object); // setup context chat.Context = new HubCallerContext(request.Object, connectionId); return(chat); }
public void MissingUsernameReturnsFalse() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser(); TestableChat chat = GetTestableChat(clientId, clientState, user); bool result = chat.Join(); Assert.False(result); }
public void CannotJoinChat() { var clientState = new TrackingDictionary(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John" }; TestableChat chat = GetTestableChat(clientId, clientState, user); chat.Clients.Caller.id = "1234"; bool result = chat.Join(); Assert.False(result); }
public void CanJoinChatIfIdentitySet() { var clientState = new StateChangeTracker(); string clientId = "1"; var user = new ChatUser { Id = "1234", Name = "John", Identity = "foo" }; TestableChat chat = GetTestableChat(clientId, clientState, user); chat.Clients.Caller.id = "1234"; bool result = chat.Join(); Assert.Equal("1234", clientState["id"]); Assert.Equal("John", clientState["name"]); Assert.True(result); // TODO: find out why these don't work //Assert.Equal(1, user.ConnectedClients.Count); //Assert.Equal("1", user.ConnectedClients.First().Id); }