Пример #1
0
            public async Task ReactiveCommandFiresOffNextSubscription()
            {
                var nextCount      = 0;
                var errorCount     = 0;
                var completedCount = 0;

                using (var featureUsageTrackingSession = new DefaultFeatureUsageTrackingSession("FeatureOne"))
                {
                    var subFeatureName = "FeatureTwo";

                    using (var observable = ReactiveCommand.CreateFromTask <Unit, Unit>(unit => Task.FromResult(unit)))
                        using (var subscription = observable.SubscribeWithSubFeatureUsageTracking(
                                   _ => nextCount++,
                                   _ => errorCount++,
                                   () => completedCount++,
                                   featureUsageTrackingSession,
                                   subFeatureName))
                        {
                            Assert.Equal(0, nextCount);
                            Assert.Equal(0, errorCount);
                            Assert.Equal(0, completedCount);

                            _ = await observable.Execute(Unit.Default);

                            Assert.Equal(1, nextCount);
                            Assert.Equal(0, errorCount);
                            Assert.Equal(0, completedCount);
                        }
                }
            }
Пример #2
0
            public void SubjectFiresOffNextSubscription()
            {
                var nextCount      = 0;
                var errorCount     = 0;
                var completedCount = 0;

                using (var featureUsageTrackingSession = new DefaultFeatureUsageTrackingSession("FeatureOne"))
                {
                    var subFeatureName = "FeatureTwo";

                    using (var observable = new Subject <int>())
                        using (var subscription = observable.SubscribeWithSubFeatureUsageTracking(
                                   _ => nextCount++,
                                   _ => errorCount++,
                                   () => completedCount++,
                                   featureUsageTrackingSession,
                                   subFeatureName))
                        {
                            Assert.Equal(0, nextCount);
                            Assert.Equal(0, errorCount);
                            Assert.Equal(0, completedCount);

                            observable.OnNext(1);

                            Assert.Equal(1, nextCount);
                            Assert.Equal(0, errorCount);
                            Assert.Equal(0, completedCount);
                        }
                }
            }
Пример #3
0
            public void ReactiveCommandFiresOffNextAndErrorSubscription()
            {
                var commandCount         = 0;
                var nextCount            = 0;
                var errorCount           = 0;
                var thrownExceptionCount = 0;
                var completedCount       = 0;

                var featureUsageTrackingSession = new DefaultFeatureUsageTrackingSession("FeatureOne");
                var subFeatureName = "FeatureTwo";

                var observable = ReactiveCommand.CreateFromObservable <Unit, Unit>(_ =>
                {
                    commandCount++;
                    return(Observable.Throw <Unit>(new ArgumentException("Test")));
                });

                var observable2 = ReactiveCommand.CreateFromTask <Unit, Unit>(_ =>
                {
                    commandCount++;
                    return(Task.FromException <Unit>(new ArgumentException("Test")));
                });

                var observable3 = ReactiveCommand.CreateFromTask <Unit, Unit>(_ =>
                {
                    commandCount++;
                    throw new ArgumentException("Test");
                });

                using (var subscription = observable2.SubscribeWithSubFeatureUsageTracking(
                           _ =>
                {
                    nextCount++;
                },
                           _ => errorCount++,
                           () => completedCount++,
                           featureUsageTrackingSession,
                           subFeatureName))
                    using (var thrownExceptions = observable2.ThrownExceptions.Subscribe(_ => thrownExceptionCount++))
                    {
                        Assert.Equal(0, commandCount);
                        Assert.Equal(0, nextCount);
                        Assert.Equal(0, errorCount);
                        Assert.Equal(0, thrownExceptionCount);
                        Assert.Equal(0, completedCount);

                        _ = observable.Execute(Unit.Default).Subscribe(_ => { });

                        Assert.Equal(1, commandCount);
                        Assert.Equal(1, nextCount);
                        Assert.Equal(0, errorCount);
                        Assert.Equal(1, thrownExceptionCount);
                        Assert.Equal(0, completedCount);
                    }
            }