Beispiel #1
0
 public TestCircuitFactory(
     IServiceScopeFactory scopeFactory,
     ILoggerFactory loggerFactory,
     CircuitIdFactory circuitIdFactory,
     IOptions <CircuitOptions> options)
 {
 }
 private static CircuitRegistry CreateRegistry(CircuitIdFactory factory = null)
 {
     return(new CircuitRegistry(
                Options.Create(new CircuitOptions()),
                NullLogger <CircuitRegistry> .Instance,
                factory ?? TestCircuitIdFactory.CreateTestFactory()));
 }
 public CircuitDisconnectMiddleware(
     ILogger <CircuitDisconnectMiddleware> logger,
     CircuitRegistry registry,
     CircuitIdFactory circuitIdFactory,
     RequestDelegate next)
 {
     Logger           = logger;
     Registry         = registry;
     CircuitIdFactory = circuitIdFactory;
     Next             = next;
 }
Beispiel #4
0
 public CircuitFactory(
     IServiceScopeFactory scopeFactory,
     ILoggerFactory loggerFactory,
     CircuitIdFactory circuitIdFactory,
     IOptions <CircuitOptions> options)
 {
     _scopeFactory     = scopeFactory;
     _loggerFactory    = loggerFactory;
     _circuitIdFactory = circuitIdFactory;
     _options          = options.Value;
     _logger           = _loggerFactory.CreateLogger <CircuitFactory>();
 }
 public ComponentHub(
     ServerComponentDeserializer serializer,
     CircuitFactory circuitFactory,
     CircuitIdFactory circuitIdFactory,
     CircuitRegistry circuitRegistry,
     ILogger <ComponentHub> logger)
 {
     _serverComponentSerializer = serializer;
     _circuitFactory            = circuitFactory;
     _circuitIdFactory          = circuitIdFactory;
     _circuitRegistry           = circuitRegistry;
     _logger = logger;
 }
Beispiel #6
0
 public ComponentHub(
     ServerComponentDeserializer serializer,
     IDataProtectionProvider dataProtectionProvider,
     CircuitFactory circuitFactory,
     CircuitIdFactory circuitIdFactory,
     CircuitRegistry circuitRegistry,
     ILogger <ComponentHub> logger)
 {
     _serverComponentSerializer = serializer;
     _dataProtectionProvider    = dataProtectionProvider;
     _circuitFactory            = circuitFactory;
     _circuitIdFactory          = circuitIdFactory;
     _circuitRegistry           = circuitRegistry;
     _logger = logger;
 }
    public CircuitRegistry(
        IOptions <CircuitOptions> options,
        ILogger <CircuitRegistry> logger,
        CircuitIdFactory CircuitHostFactory)
    {
        _options          = options.Value;
        _logger           = logger;
        _circuitIdFactory = CircuitHostFactory;
        ConnectedCircuits = new ConcurrentDictionary <CircuitId, CircuitHost>();

        DisconnectedCircuits = new MemoryCache(new MemoryCacheOptions
        {
            SizeLimit = _options.DisconnectedCircuitMaxRetained,
        });

        _postEvictionCallback = new PostEvictionCallbackRegistration
        {
            EvictionCallback = OnEntryEvicted,
        };
    }
Beispiel #8
0
    private static (Mock <IClientProxy>, ComponentHub) InitializeComponentHub()
    {
        var ephemeralDataProtectionProvider = new EphemeralDataProtectionProvider();
        var circuitIdFactory = new CircuitIdFactory(ephemeralDataProtectionProvider);
        var circuitFactory   = new TestCircuitFactory(
            new Mock <IServiceScopeFactory>().Object,
            NullLoggerFactory.Instance,
            circuitIdFactory,
            Options.Create(new CircuitOptions()));
        var circuitRegistry = new CircuitRegistry(
            Options.Create(new CircuitOptions()),
            NullLogger <CircuitRegistry> .Instance,
            circuitIdFactory);
        var serializer            = new TestServerComponentDeserializer();
        var circuitHandleRegistry = new TestCircuitHandleRegistry();
        var hub = new ComponentHub(
            serializer: serializer,
            dataProtectionProvider: ephemeralDataProtectionProvider,
            circuitFactory: circuitFactory,
            circuitIdFactory: circuitIdFactory,
            circuitRegistry: circuitRegistry,
            circuitHandleRegistry: circuitHandleRegistry,
            logger: NullLogger <ComponentHub> .Instance);

        // Here we mock out elements of the Hub that are typically configured
        // by SignalR as clients connect to the hub.
        var mockCaller      = new Mock <IHubCallerClients>();
        var mockClientProxy = new Mock <IClientProxy>();

        mockCaller.Setup(x => x.Caller).Returns(mockClientProxy.Object);
        hub.Clients = mockCaller.Object;
        var mockContext = new Mock <HubCallerContext>();

        mockContext.Setup(x => x.ConnectionId).Returns("123");
        hub.Context = mockContext.Object;

        return(mockClientProxy, hub);
    }
        private async Task <(bool, string)> TryGetCircuitIdAsync(HttpContext context)
        {
            try
            {
                if (!context.Request.HasFormContentType)
                {
                    return(false, null);
                }

                var form = await context.Request.ReadFormAsync();

                if (!form.TryGetValue(CircuitIdKey, out var circuitId) || !CircuitIdFactory.ValidateCircuitId(circuitId))
                {
                    return(false, null);
                }

                return(true, circuitId);
            }
            catch
            {
                return(false, null);
            }
        }
 public TestCircuitRegistry(CircuitIdFactory factory, CircuitOptions circuitOptions = null)
     : base(Options.Create(circuitOptions ?? new CircuitOptions()), NullLogger <CircuitRegistry> .Instance, factory)
 {
 }