Ejemplo n.º 1
0
        public async Task Display_TraceEvent_On_Running_Client()
        {
            XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary.CollectClassInfos(GetType().Assembly);
            using var clientWinApp = new ClientWinApp { EditorFactory = new EditorsFactory() };
            clientWinApp.AddModule <ReactiveLoggerHubModule>();
            clientWinApp.Model.BOModel.GetClass(typeof(TraceEvent)).DefaultListView.UseServerMode = false;
            clientWinApp.Logon();
            var listView   = clientWinApp.NewObjectView <ListView>(typeof(TraceEvent));
            var viewWindow = clientWinApp.CreateWindow(TemplateContext.ApplicationWindow, new List <Controller>(), true);

            viewWindow.SetView(listView);

            using var application = Platform.Win.NewApplication <ReactiveLoggerHubModule>();
            var startServer = application.WhenTraceOnNextEvent(nameof(ReactiveLoggerHubService.StartServer))
                              .FirstAsync().SubscribeReplay().SubscribeOn(Scheduler.Default);
            var connecting = TraceEventHub.Connecting.FirstAsync().SubscribeReplay();

            application.AddModule <ReactiveLoggerHubModule>(nameof(Display_TraceEvent_On_Running_Client), typeof(RLH));
            application.Model.ToReactiveModule <IModelReactiveModuleLogger>().ReactiveLogger.TraceSources[nameof(ReactiveModule)].Level = SourceLevels.Verbose;
            application.Logon();
            application.CreateObjectSpace();

            await startServer.Timeout(Timeout);

            await connecting.Timeout(Timeout);

            var viewCreated = clientWinApp.WhenTraceOnNextEvent(nameof(XafApplicationRxExtensions.WhenDetailViewCreated))
                              .FirstAsync().SubscribeReplay();
            var whenDetailViewCreated = application.WhenDetailViewCreated().FirstAsync().SubscribeReplay();

            application.NewObjectView <DetailView>(typeof(RLH));
            await viewCreated.Timeout(Timeout).ToTaskWithoutConfigureAwait();

            await listView.CollectionSource.WhenCollectionReloaded().FirstAsync();

            await whenDetailViewCreated;
            var   events = listView.CollectionSource.Objects <TraceEvent>().ToArray();

            events.FirstOrDefault(_ => _.Method == nameof(XafApplicationRxExtensions.WhenDetailViewCreated)).ShouldNotBeNull();
            events.FirstOrDefault(_ => _.Location == nameof(ReactiveLoggerHubService)).ShouldNotBeNull();
        }
Ejemplo n.º 2
0
        public async Task Display_TraceEvent_On_Running_Client()
        {
            using (var clientWinApp = new ClientWinApp()){
                clientWinApp.EditorFactory = new EditorsFactory();
                clientWinApp.AddModule <ReactiveLoggerHubModule>();
                clientWinApp.Logon();
                var listView   = clientWinApp.CreateObjectView <ListView>(typeof(TraceEvent));
                var viewWindow = clientWinApp.CreateWindow(TemplateContext.ApplicationWindow, new List <Controller>(), true);
                viewWindow.SetView(listView);

                using (var application = Platform.Win.NewApplication <ReactiveLoggerHubModule>()){
                    var startServer = application.WhenTraceOnNextEvent(nameof(ReactiveLoggerHubService.StartServer))
                                      .FirstAsync().SubscribeReplay();
                    var connecting = TraceEventHub.Connecting.FirstAsync().SubscribeReplay();

                    application.AddModule <RXLoggerHubTestsModule>(nameof(Display_TraceEvent_On_Running_Client), typeof(RLH));
                    application.Logon();
                    application.CreateObjectSpace();

                    await startServer.Timeout(Timeout);

                    await connecting.Timeout(Timeout);

                    var viewCreated = clientWinApp.WhenTraceOnNextEvent(nameof(XafApplicationRXExtensions.WhenDetailViewCreated))
                                      .FirstAsync().SubscribeReplay();
                    var whenDetailViewCreated = application.WhenDetailViewCreated().FirstAsync().SubscribeReplay();
                    application.CreateObjectView <DetailView>(typeof(RLH));
                    await viewCreated.Timeout(Timeout).ToTaskWithoutConfigureAwait();

                    await listView.CollectionSource.WhenCollectionReloaded().FirstAsync();

                    await whenDetailViewCreated;
                    var   events = listView.CollectionSource.Objects <TraceEvent>().ToArray();
                    events.FirstOrDefault(_ => _.Method == nameof(XafApplicationRXExtensions.WhenDetailViewCreated)).ShouldNotBeNull();
                    events.FirstOrDefault(_ => _.Location == nameof(ReactiveLoggerHubService)).ShouldNotBeNull();
                }
            }
        }