예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }