public async Task PlayerConnectedEvent_WhenNewPlayerJoins_ShouldCreateConnection() { await using var playerOne = HubConnectionFactory.Create(); await using var playerTwo = HubConnectionFactory.Create(); await playerOne.StartAsync(); await playerTwo.StartAsync(); }
public async Task Subscribe_should_subcribe_to_hub_events() { using var waitHandle = new ManualResetEvent(false); var configuration = new Dictionary <string, string> { ["ConnectionStrings:DefaultConnection"] = Guid.NewGuid().ToString(), ["ApiAuthentication:Authority"] = "http://localhost", ["SignalR:HubUrl"] = "http://localhost/providerhub", ["SignalR:UseMessagePack"] = "false", ["Seed"] = "true" }; TestServer server = null; server = TestUtils.CreateTestServer(services => { services.RemoveAll <HubHttpMessageHandlerAccessor>(); services.AddTransient(p => new HubHttpMessageHandlerAccessor { Handler = new MockHttpMessageHandler(waitHandle, server.CreateHandler()) }); services.RemoveAll <HttpClient>(); services.AddTransient(p => server.CreateClient()); services.RemoveAll <HttpClientHandler>(); services.AddTransient <HttpClientHandler>(p => new MockHttpClientHandler(p.GetRequiredService <HttpClient>())); }, configuration, (endpoints, isProxy) => { endpoints.MapRazorPages(); endpoints.MapDefaultControllerRoute(); if (!isProxy) { endpoints.MapHub <ProviderHub>("/providerhub"); } }); using (server) { server.CreateWebSocketClient(); var provider = server.Host.Services; var store = provider.GetRequiredService <IAdminStore <ExternalProvider> >(); var serializer = provider.GetRequiredService <IAuthenticationSchemeOptionsSerializer>(); var manager = new NoPersistentDynamicManager <SchemeDefinition>(new Mock <IAuthenticationSchemeProvider>().Object, new OptionsMonitorCacheWrapperFactory(new Mock <IServiceProvider>().Object), Array.Empty <Type>()); var wrapper1 = new KeyManagerWrapper <Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); var wrapper2 = new KeyManagerWrapper <IdentityServer.KeysRotation.RsaEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); var hubConnectionFactory = new HubConnectionFactory(provider.GetRequiredService <IConfiguration>(), provider, new NullLogger <HubConnectionFactory>()); var connection = hubConnectionFactory.GetConnection(default);
public void Constructor_should_throw_on_args_null() { Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(null, null, null, null, null, null)); var hubConnectionFactory = new HubConnectionFactory(new Mock <IConfiguration>().Object, new Mock <IServiceProvider>().Object, new NullLogger <HubConnectionFactory>()); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, null, null, null, null, null)); var manager = new NoPersistentDynamicManager <SchemeDefinition>(new Mock <IAuthenticationSchemeProvider>().Object, new OptionsMonitorCacheWrapperFactory(new Mock <IServiceProvider>().Object), Array.Empty <Type>()); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, null, null, null, null)); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, null, null, null)); var wrapper1 = new KeyManagerWrapper <Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, wrapper1, null, null)); var wrapper2 = new KeyManagerWrapper <IdentityServer.KeysRotation.RsaEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, wrapper1, wrapper2, null)); }
public async Task Setup() { string runType = TestContext.CurrentContext.Test.Properties.Get("RunType")?.ToString(); // Start HubConnection HubConnectionFactory.InitHubConnection(); await HubConnectionFactory.SignalRConnection.StartAsync(); switch (runType.ToUpper()) { case "DEV": DevRunRecord devRunRecord = new DevRunRecord() { TestCaseId = TestContext.CurrentContext.Test.Properties.Get("TestCaseId")?.ToString(), TestCaseName = TestContext.CurrentContext.Test.Properties.Get("TestCaseName")?.ToString(), TestCaseCodeName = TestContext.CurrentContext.Test.Properties.Get("TestCaseCodeName")?.ToString(), Description = TestContext.CurrentContext.Test.Properties.Get("Description")?.ToString(), Category = TestContext.CurrentContext.Test.Properties.Get("Category")?.ToString(), TestSuite = TestContext.CurrentContext.Test.Properties.Get("TestSuite")?.ToString(), TestGroup = TestContext.CurrentContext.Test.Properties.Get("TestGroup")?.ToString(), Team = TestContext.CurrentContext.Test.Properties.Get("Team")?.ToString(), StartAt = DateTime.UtcNow, RunMachine = Environment.MachineName, WorkItem = TestContext.CurrentContext.Test.Properties.Get("WorkItem")?.ToString(), Status = TestContext.CurrentContext.Result.Outcome.Status.ToString(), TestCaseType = TestContext.CurrentContext.Test.Properties.Get("TestCaseType")?.ToString(), }; //TestCase Info Console.WriteLine( $"---------------------{new string('-', devRunRecord.TestCaseId.Length)}--{new string('-', devRunRecord.TestCaseName.Length)}-------"); Console.WriteLine( $"------ Run TestCase: {devRunRecord.TestCaseId}: {devRunRecord.TestCaseName} ------"); Console.WriteLine( $"---------------------{new string('-', devRunRecord.TestCaseId.Length)}--{new string('-', devRunRecord.TestCaseName.Length)}-------"); Console.WriteLine(""); devRunRecord.Log = $"{DateTime.UtcNow} - [Setup]: -------- Setup --------"; devRunRecord.Log += "\nTest Case attributes:"; IList <string> lstPros = TestContext.CurrentContext.Test.Properties.Keys.ToList <string>(); foreach (var key in lstPros) { if (!key.Equals("WebDriver")) //WebDriver attribute is multiple, so need to get list of it before action { Console.WriteLine($"[{key}]: {TestContext.CurrentContext.Test.Properties.Get(key)}"); devRunRecord.Log += $"\n[{key}]: {TestContext.CurrentContext.Test.Properties.Get(key)}"; } else { IList lstDriver = (IList)TestContext.CurrentContext.Test.Properties["WebDriver"]; foreach (string driver in lstDriver) { Console.WriteLine($"[{key}]: {driver}"); devRunRecord.Log += $"\n[{key}]: {driver}"; } } } devRunRecord.Log += "\n"; _runId = await MongoDBHelpers.InitDevRunRecord(devRunRecord); TestExecutionContext.CurrentContext.CurrentTest.Properties.Set("Id", _runId); TestExecutionContext.CurrentContext.CurrentTest.Properties.Set("StartAt", devRunRecord.StartAt); await HubConnectionFactory.SignalRConnection.InvokeAsync("DevRunningInfo", devRunRecord); break; case "REGRESSION": RegressionRunRecord regRunRecord = new RegressionRunRecord() { RegressionTestId = TestContext.CurrentContext.Test.Properties.Get("RegressionTestId")?.ToString(), ErrorMessage = string.Empty, Log = string.Empty, ErrorScreenshot = string.Empty, Screenshot1 = string.Empty, Screenshot2 = string.Empty, StartAt = DateTime.UtcNow, ClientName = string.Empty, RunMachine = Environment.MachineName, Status = TestContext.CurrentContext.Result.Outcome.Status.ToString(), }; _runId = await MongoDBHelpers.InitRegRunRecord(regRunRecord); TestExecutionContext.CurrentContext.CurrentTest.Properties.Set("Id", _runId); TestExecutionContext.CurrentContext.CurrentTest.Properties.Set("StartAt", regRunRecord.StartAt); break; } }