public async Task ReplacesDashesWithDots_WhenTheyAppearInPairs() { // Arrange var circuitFactory = new TestCircuitFactory(() => "--1234--"); var circuitRegistry = new CircuitRegistry( Options.Create(new CircuitOptions()), Mock.Of <ILogger <CircuitRegistry> >(), TestCircuitIdFactory.CreateTestFactory()); var circuitPrerenderer = new CircuitPrerenderer(circuitFactory, circuitRegistry); var httpContext = new DefaultHttpContext(); var httpRequest = httpContext.Request; httpRequest.Scheme = "https"; httpRequest.Host = new HostString("example.com", 1234); httpRequest.Path = "/some/path"; var prerenderingContext = new ComponentPrerenderingContext { ComponentType = typeof(UriDisplayComponent), Parameters = ParameterView.Empty, Context = httpContext }; // Act var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext); // Assert Assert.Equal("..1234..", GetUnwrappedCircuitInfo(result).RootElement.GetProperty("circuitId").GetString()); }
public async Task ExtractsUriFromHttpContext_NonemptyPathBase() { // Arrange var circuitFactory = new TestCircuitFactory(); var circuitRegistry = new CircuitRegistry(Options.Create(new CircuitOptions()), Mock.Of <ILogger <CircuitRegistry> >()); var circuitPrerenderer = new CircuitPrerenderer(circuitFactory, circuitRegistry); var httpContext = new DefaultHttpContext(); var httpRequest = httpContext.Request; httpRequest.Scheme = "https"; httpRequest.Host = new HostString("example.com", 1234); httpRequest.PathBase = "/my/dir"; httpRequest.Path = "/some/path"; var prerenderingContext = new ComponentPrerenderingContext { ComponentType = typeof(UriDisplayComponent), Parameters = ParameterCollection.Empty, Context = httpContext }; // Act var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext); // Assert Assert.Equal(string.Join("", new[] { "The current URI is ", "https://example.com:1234/my/dir/some/path", " within base URI ", "https://example.com:1234/my/dir/" }), GetUnwrappedContent(result)); }
public async Task ExtractsUriFromHttpContext_NonemptyPathBase() { // Arrange var circuitFactory = new TestCircuitFactory(); var circuitPrerenderer = new CircuitPrerenderer(circuitFactory); var httpContext = new Mock <HttpContext>(); var httpRequest = new Mock <HttpRequest>().SetupAllProperties(); httpContext.Setup(h => h.Request).Returns(httpRequest.Object); httpRequest.Object.Scheme = "https"; httpRequest.Object.Host = new HostString("example.com", 1234); httpRequest.Object.PathBase = "/my/dir"; httpRequest.Object.Path = "/some/path"; var prerenderingContext = new ComponentPrerenderingContext { ComponentType = typeof(UriDisplayComponent), Parameters = ParameterCollection.Empty, Context = httpContext.Object }; // Act var result = await circuitPrerenderer.PrerenderComponentAsync(prerenderingContext); // Assert Assert.Equal(new[] { "The current URI is ", "https://example.com:1234/my/dir/some/path", " within base URI ", "https://example.com:1234/my/dir/" }, result); }
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); }