public async void TestShutdown() { var index = new StrongBox <int>(); var clientManager = new TestClientConnectionManager(index); var serviceManager = new TestServiceConnectionManager <Hub>(index); var options = new TestOptions(); options.Value.GracefulShutdown = new GracefulShutdownOptions() { Timeout = TimeSpan.FromSeconds(1), Mode = GracefulShutdownMode.WaitForClientsClose }; var dispatcher = new ServiceHubDispatcher <Hub>( null, TestHubContext <Hub> .GetInstance(), serviceManager, clientManager, null, options, NullLoggerFactory.Instance, new TestRouter(), null, null, null ); await dispatcher.ShutdownAsync(); Assert.Equal(3, serviceManager.StopIndex); Assert.Equal(2, clientManager.CompleteIndex); Assert.Equal(1, serviceManager.OfflineIndex); }
public async void TestShutdown() { var clientManager = new TestClientConnectionManager(); var serviceManager = new TestServiceConnectionManager <Hub>(); var options = new TestOptions(); options.Value.GracefulShutdown = new GracefulShutdownOptions() { Timeout = TimeSpan.FromSeconds(1), Mode = GracefulShutdownMode.WaitForClientsClose }; var dispatcher = new ServiceHubDispatcher <Hub>( null, serviceManager, clientManager, null, options, NullLoggerFactory.Instance, new TestRouter(), null, null, null ); await dispatcher.ShutdownAsync(); DateTime now = DateTime.Now; Assert.True(now > serviceManager.StopTime); Assert.True(serviceManager.StopTime > clientManager.CompleteTime); Assert.True(clientManager.CompleteTime > serviceManager.OfflineTime); }
public async void TestSendConnectionAsyncisOverwrittenWhenClientConnectionExisted() { var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var clientConnectionManager = new ClientConnectionManager(); var context = new ClientConnectionContext(new OpenConnectionMessage("conn1", new Claim[] { })); var connection = new TestServiceConnectionPrivate(); context.ServiceConnection = connection; clientConnectionManager.AddClientConnection(context); var manager = MockLifetimeManager(serviceConnectionManager, clientConnectionManager); await manager.SendConnectionAsync("conn1", "foo", new object[] { 1, 2 }); Assert.NotNull(connection.LastMessage); if (connection.LastMessage is MultiConnectionDataMessage m) { Assert.Equal("conn1", m.ConnectionList[0]); Assert.Equal(1, m.Payloads.Count); Assert.True(m.Payloads.ContainsKey(MockProtocol)); return; } Assert.True(false); }
public async void TestShutdown() { var clientManager = new TestClientConnectionManager(); var serviceManager = new TestServiceConnectionManager <Hub>(); var options = new TestOptions(); options.Value.EnableGracefulShutdown = true; options.Value.ServerShutdownTimeout = TimeSpan.FromSeconds(1); var dispatcher = new ServiceHubDispatcher <Hub>( null, serviceManager, clientManager, null, options, NullLoggerFactory.Instance, new TestRouter(), null, null, null ); await dispatcher.ShutdownAsync(); Assert.True(clientManager.completeTime.Subtract(serviceManager.offlineTime) > TimeSpan.FromMilliseconds(100)); Assert.True(clientManager.completeTime.Subtract(serviceManager.stopTime) < -TimeSpan.FromMilliseconds(100)); Assert.True(serviceManager.offlineTime != serviceManager.stopTime); }
public async void ServiceLifetimeManagerIgnoreBlazorHubProtocolTest(string functionName, Type type) { var protocolResolver = new DefaultHubProtocolResolver(new IHubProtocol[] { new JsonHubProtocol(), new MessagePackHubProtocol(), new CustomHubProtocol(), }, NullLogger <DefaultHubProtocolResolver> .Instance); IOptions <HubOptions> globalHubOptions = Options.Create(new HubOptions() { SupportedProtocols = new List <string>() { "json", "messagepack", MockProtocol, "json" } }); IOptions <HubOptions <TestHub> > localHubOptions = Options.Create(new HubOptions <TestHub>() { SupportedProtocols = new List <string>() { "json", "messagepack", MockProtocol } }); var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var serviceLifetimeManager = new ServiceLifetimeManager <TestHub>(serviceConnectionManager, new ClientConnectionManager(), protocolResolver, Logger, Marker, globalHubOptions, localHubOptions); await InvokeMethod(serviceLifetimeManager, functionName); Assert.Equal(1, serviceConnectionManager.GetCallCount(type)); VerifyServiceMessage(functionName, serviceConnectionManager.ServiceMessage); Assert.Equal(2, (serviceConnectionManager.ServiceMessage as MulticastDataMessage).Payloads.Count); }
public async void ServiceLifetimeManagerGroupTest(string functionName, Type type) { var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var serviceLifetimeManager = new ServiceLifetimeManager <TestHub>(serviceConnectionManager, new ClientConnectionManager(), HubProtocolResolver, Logger, Marker); await InvokeMethod(serviceLifetimeManager, functionName); Assert.Equal(1, serviceConnectionManager.GetPartitionedCallCount(type)); VerifyServiceMessage(functionName, serviceConnectionManager.ServiceMessage); }
public async void ServiceLifetimeManagerOnlyBlazorHubProtocolTest(string functionName, Type type) { var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var serviceLifetimeManager = MockLifetimeManager(serviceConnectionManager); await InvokeMethod(serviceLifetimeManager, functionName); Assert.Equal(1, serviceConnectionManager.GetCallCount(type)); VerifyServiceMessage(functionName, serviceConnectionManager.ServiceMessage); Assert.Equal(1, (serviceConnectionManager.ServiceMessage as MulticastDataMessage).Payloads.Count); }
public async void ServiceLifetimeManagerTest(string functionName, Type type) { var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var serviceLifetimeManager = new ServiceLifetimeManager <TestHub>(serviceConnectionManager, new ClientConnectionManager(), HubProtocolResolver, Logger, Marker, _globalHubOptions, _localHubOptions); await InvokeMethod(serviceLifetimeManager, functionName); Assert.Equal(1, serviceConnectionManager.GetCallCount(type)); VerifyServiceMessage(functionName, serviceConnectionManager.ServiceMessage); Assert.Equal(2, (serviceConnectionManager.ServiceMessage as MulticastDataMessage).Payloads.Count); }
public async void ServiceLifetimeManagerGroupTest(string functionName, Type type) { var serviceConnectionManager = new TestServiceConnectionManager <TestHub>(); var blazorDetector = new DefaultBlazorDetector(); var serviceLifetimeManager = new ServiceLifetimeManager <TestHub>( serviceConnectionManager, new ClientConnectionManager(), HubProtocolResolver, Logger, Marker, _globalHubOptions, _localHubOptions, blazorDetector); await InvokeMethod(serviceLifetimeManager, functionName); Assert.Equal(1, serviceConnectionManager.GetCallCount(type)); VerifyServiceMessage(functionName, serviceConnectionManager.ServiceMessage); Assert.False(blazorDetector.IsBlazor(nameof(TestHub))); }