public ChatHub(string username, string password) { var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.NameIdentifier, "2", System.Security.Claims.ClaimValueTypes.Integer)); identity.AddClaim(new System.Security.Claims.Claim("NickName", "ibrahim", System.Security.Claims.ClaimValueTypes.Integer)); //Thread.CurrentPrincipal = new GenericPrincipal(identity, null); //ApplicationSignInManager c = new ApplicationSignInManager("sa", HttpContext.GetOwinContext().Authentication) //SignInManager.PasswordSignIn(username, password, true, true); const string connectionId = "1234"; const string hubName = "ChatHub"; var resolver = new DefaultDependencyResolver(); _config = resolver.Resolve <IConfigurationManager>(); var mockConnection = new Mock <IConnection>(); var mockUser = new Mock <IPrincipal>(); //var mockCookies = new Mock<IRequestCookieCollection>(); var mockHubPipelineInvoker = new Mock <IHubPipelineInvoker>(); //IHubPipelineInvoker _pipelineInvoker = resolver.Resolve<IHubPipelineInvoker>(); var mockRequest = new Mock <IRequest>(); mockRequest.Setup(r => r.User).Returns(new GenericPrincipal(identity, null)); //mockRequest.Setup(r => r.Cookies).Returns(mockCookies.Object); StateChangeTracker tracker = new StateChangeTracker(); //Clients = new HubConnectionContext(_pipelineInvoker, mockConnection.Object, hubName, connectionId, tracker); Clients = new HubConnectionContext(mockHubPipelineInvoker.Object, mockConnection.Object, hubName, connectionId, tracker); Context = new HubCallerContext(mockRequest.Object, connectionId); var x = Clients.Caller; }
public HubInvokerContext(IHub hub, StateChangeTracker tracker, MethodDescriptor methodDescriptor, object[] args) { Hub = hub; MethodDescriptor = methodDescriptor; Args = args; StateTracker = tracker; }
public static TestableChat GetTestableChat(string connectionId, StateChangeTracker 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 CanDeserializeClientState() { var clientState = new StateChangeTracker(); 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); }
private TestableLobby GetHub(string connectionId, StateChangeTracker clientState = null, IDictionary <string, Cookie> cookies = null, Mock <IGroupManager> groupManager = null, Mock <IGameHandler> gameHandler = null, Mock <IRegistrationHandler> registrationHandler = null, Mock <IUserHandler> userHandler = null, Mock <IMappingHandler> mappingHandler = null, Mock <IScenarioHandler> scenarioHandler = null) { clientState = clientState ?? new StateChangeTracker(); cookies = cookies ?? new Dictionary <string, Cookie>(); var lobby = new TestableLobby(gameHandler ?? new Mock <IGameHandler>(), registrationHandler ?? new Mock <IRegistrationHandler>(), userHandler ?? new Mock <IUserHandler>(), mappingHandler ?? new Mock <IMappingHandler>(), scenarioHandler ?? new Mock <IScenarioHandler>()); lobby.Clients = new HubConnectionContext(new Mock <IHubPipelineInvoker>().Object, new Mock <IConnection>().Object, "Lobby", connectionId, clientState); var request = new Mock <IRequest>(); request.Setup(a => a.Cookies).Returns(cookies); lobby.Context = new HubCallerContext(request.Object, connectionId); lobby.Groups = (groupManager ?? new Mock <IGroupManager>()).Object; return(lobby); }
public HubInvokerContext(IHub hub, StateChangeTracker tracker, MethodDescriptor methodDescriptor, object[] args) { Hub = hub; MethodDescriptor = methodDescriptor; Args = args; StateTracker = tracker; }
public void MissingUsernameReturnsFalse() { var clientState = new StateChangeTracker(); 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 StateChangeTracker(); 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); }
public static TestableChat GetTestableChat(string clientId, StateChangeTracker clientState, ChatUser user) { return(GetTestableChat(clientId, clientState, user, new NameValueCollection())); }
public static TestableChat GetTestableChat(string clientId, StateChangeTracker clientState, ChatUser user) { return(GetTestableChat(clientId, clientState, user, new Dictionary <string, Cookie>())); }