public async Task Connect_Client() { using var clientWinApp = new ClientWinApp(); clientWinApp.AddModule <ReactiveLoggerHubModule>(typeof(RLH), typeof(BaseObject)); var connectClient = clientWinApp.WhenTraceOnNextEvent(nameof(ReactiveLoggerHubService.ConnectClient)).FirstAsync() .SubscribeOn(Scheduler.Default) .SubscribeReplay(); clientWinApp.Logon(); clientWinApp.CreateObjectSpace(); using (var application = Platform.Win.NewApplication <ReactiveLoggerHubModule>()){ application.AddModule <ReactiveLoggerHubModule>(nameof(Connect_Client), typeof(RLH), typeof(BaseObject)); application.Logon(); application.CreateObjectSpace(); await connectClient.FirstAsync().Timeout(Timeout); } connectClient = clientWinApp.WhenTraceOnNextEvent(nameof(ReactiveLoggerHubService.ConnectClient)).FirstAsync() .SubscribeReplay(); using (var application = Platform.Win.NewApplication <ReactiveLoggerHubModule>()){ application.AddModule <ReactiveLoggerHubModule>($"{nameof(Connect_Client)}_2", typeof(RLH), typeof(BaseObject)); application.Logon(); application.CreateObjectSpace(); await connectClient.FirstAsync().Timeout(Timeout); connectClient.Test().ItemCount.ShouldBe(1); } }
public async Task Client_Detect_When_Hub_Is_Online() { using (var clientWinApp = new ClientWinApp()){ clientWinApp.AddModule <ReactiveLoggerHubModule>(typeof(RLH), typeof(BaseObject)); clientWinApp.Logon(); clientWinApp.CreateObjectSpace(); var detectOnlineHubTrace = clientWinApp.WhenTraceOnNextEvent(nameof(ReactiveLoggerHubService.DetectOnlineHub)) .SubscribeReplay(); var detectOffline = clientWinApp.WhenTraceOnSubscribeEvent(nameof(ReactiveLoggerHubService.DetectOffLineHub)).SubscribeReplay(); using (var application = Platform.Win.NewApplication <ReactiveLoggerHubModule>()){ application.AddModule <RXLoggerHubTestsModule>(nameof(Client_Detect_When_Hub_Is_Online), typeof(RLH), typeof(BaseObject)); application.Logon(); application.CreateObjectSpace(); await detectOnlineHubTrace.FirstAsync().Timeout(Timeout); } await detectOffline.FirstAsync().Timeout(Timeout); } }