Exemplo n.º 1
0
 public ChatService(ICache cache, IRecentMessageCache recentMessageCache, IJabbrRepository repository)
     : this(cache,
            recentMessageCache,
            repository,  
            ApplicationSettings.GetDefaultSettings())
 {
 }
Exemplo n.º 2
0
 public ChatService(ICache cache,
                    IRecentMessageCache recentMessageCache,
                    IJabbrRepository repository,
                    ApplicationSettings settings)
 {
     _cache = cache;
     _recentMessageCache = recentMessageCache;
     _repository = repository;
     _settings = settings;
 }
Exemplo n.º 3
0
 public Chat(
     IJabbrRepository repository,
     IOptions <ApplicationSettings> settings,
     IRecentMessageCache recentMessageCache,
     IChatService chatService)
 {
     // Request the injected object instances
     _repository         = repository;
     _chatService        = chatService;
     _recentMessageCache = recentMessageCache;
     _settings           = settings.Value;
 }
Exemplo n.º 4
0
 public Chat(ContentProviderProcessor resourceProcessor,
             IChatService service,
             IRecentMessageCache recentMessageCache,
             IJabbrRepository repository,
             ICache cache,
             ILogger logger)
 {
     _resourceProcessor  = resourceProcessor;
     _service            = service;
     _recentMessageCache = recentMessageCache;
     _repository         = repository;
     _cache  = cache;
     _logger = logger;
 }
Exemplo n.º 5
0
 public Chat(ContentProviderProcessor resourceProcessor,
             IChatService service,
             IRecentMessageCache recentMessageCache,
             IJabbrRepository repository,
             ICache cache,
             ILogger logger)
 {
     _resourceProcessor = resourceProcessor;
     _service = service;
     _recentMessageCache = recentMessageCache;
     _repository = repository;
     _cache = cache;
     _logger = logger;
 }
Exemplo n.º 6
0
 public ChatHub(ContentProviderProcessor resourceProcessor,
                IChatService service,
                IRecentMessageCache recentMessageCache,
                IJabbrRepository repository,
                IMemoryCache cache,
                ILogger <ChatHub> logger,
                ApplicationSettings settings)
 {
     _resourceProcessor  = resourceProcessor;
     _service            = service;
     _recentMessageCache = recentMessageCache;
     _repository         = repository;
     _cache    = cache;
     _logger   = logger;
     _settings = settings;
 }
Exemplo n.º 7
0
 public Chat(ContentProviderProcessor resourceProcessor,
             PushNotificationService pushNotification,
             IChatService service,
             IRecentMessageCache recentMessageCache,
             IJabbrRepository repository,
             ICache cache,
             ILogger logger,
             ApplicationSettings settings)
 {
     _resourceProcessor = resourceProcessor;
     _pushNotification = pushNotification;
     _service = service;
     _recentMessageCache = recentMessageCache;
     _repository = repository;
     _cache = cache;
     _logger = logger;
     _settings = settings;
 }
Exemplo n.º 8
0
 public ChatService(ICache cache,
                    IRecentMessageCache recentMessageCache,
                    IJabbrRepository repository,
                    ApplicationSettings settings)
 {
     _cache = cache;
     _recentMessageCache = recentMessageCache;
     _repository = repository;
     _settings = settings;
 }
Exemplo n.º 9
0
 public ChatService(ICache cache, IRecentMessageCache recentMessageCache, IJabbrRepository repository)
     : this(cache,
            recentMessageCache,
            repository,  
            ApplicationSettings.GetDefaultSettings())
 {
 }
Exemplo n.º 10
0
        public ChatTest()
        {
            // Fetch new instances of the required objects
            _context    = new JabbrContext(new DbContextOptions <JabbrContext>());
            _repository = new InMemoryRepository(_context);

            _cache = new DefaultCache();
            _recentMessageCache = new RecentMessageCache();
            _settings           = new OptionsManager <ApplicationSettings>(new List <IConfigureOptions <ApplicationSettings> >()
            {
            });

            _chatService = new ChatService(_cache, _recentMessageCache, _repository);

            // Create Mocks of the objects being passed into SignalR
            var request    = new Mock <HttpRequest>();
            var connection = new Mock <IConnection>();
            var pipeline   = new Mock <IHubPipelineInvoker>();

            // Taken from normal JabbR-Core execution
            var connectionId = "79482a87-8d16-42bc-b5ce-1fb7b309ad1e";

            // Establish new Chat hub with normal SignalR connection + pipeline
            var chat = new TestableChat(_repository, _settings, _chatService, connection);

            chat.Clients = new HubConnectionContext(pipeline.Object, chat.MockConnection.Object, "Chat", connectionId);

            // Include required claims with request for authentication
            // Adam's LoginFakerMiddleware runs but doesn't establish Hub context
            // so we can put the same code here to establish an identity
            var claims = new List <Claim>();

            claims.Add(new Claim(ClaimTypes.Name, "James"));
            claims.Add(new Claim(ClaimTypes.AuthenticationMethod, "provider"));
            claims.Add(new Claim(ClaimTypes.NameIdentifier, "identity"));
            claims.Add(new Claim(ClaimTypes.Email, "*****@*****.**"));
            claims.Add(new Claim(JabbRClaimTypes.Identifier, "2"));

            var claimsIdentity  = new ClaimsIdentity(claims, Constants.JabbRAuthType);
            var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

            ChatUser user = new ChatUser()
            {
                Name     = "James",
                Email    = "*****@*****.**",
                Id       = "2",
                Identity = claimsIdentity.ToString()
            };

            // Add to repository for methods that perform user verification
            _repository.Add(user);

            // Establish request properties here, investigate query string
            request.Setup(r => r.Cookies).Returns(new Mock <IRequestCookieCollection>().Object);
            request.Setup(r => r.HttpContext.User).Returns(claimsPrincipal);

            // Register the real SignalR context to the TestableChat.
            chat.Context = new HubCallerContext(request.Object, connectionId);
            chat.Groups  = new GroupManager(connection.Object, "mygroup");

            // Instantiate Chat hub.
            _chat = chat;
        }