public void Should_Produce_Correct_Values() { var activator = new BehaviorSubject<bool>(false); var source = new BehaviorSubject<object>(1); var target = new ActivatedObservable(activator, source, string.Empty); var result = new List<object>(); target.Subscribe(x => result.Add(x)); activator.OnNext(true); source.OnNext(2); activator.OnNext(false); source.OnNext(3); activator.OnNext(true); Assert.Equal( new[] { AvaloniaProperty.UnsetValue, 1, 2, AvaloniaProperty.UnsetValue, 3, }, result); }
public void Should_Produce_Correct_Values() { var activator = new BehaviorSubject <bool>(false); var source = new BehaviorSubject <object>(1); var target = new ActivatedObservable(activator, source, string.Empty); var result = new List <object>(); target.Subscribe(x => result.Add(x)); activator.OnNext(true); source.OnNext(2); activator.OnNext(false); source.OnNext(3); activator.OnNext(true); Assert.Equal( new[] { AvaloniaProperty.UnsetValue, 1, 2, AvaloniaProperty.UnsetValue, 3, }, result); }
public void Should_Complete_When_Source_Completes() { var activator = new BehaviorSubject <bool>(false); var source = new BehaviorSubject <object>(1); var target = new ActivatedObservable(activator, source, string.Empty); var completed = false; target.Subscribe(_ => { }, () => completed = true); source.OnCompleted(); Assert.True(completed); }
public void Should_Complete_When_Activator_Completes() { var activator = new BehaviorSubject<bool>(false); var source = new BehaviorSubject<object>(1); var target = new ActivatedObservable(activator, source, string.Empty); var completed = false; target.Subscribe(_ => { }, () => completed = true); activator.OnCompleted(); Assert.True(completed); }
public void Should_Error_When_Source_Errors() { var activator = new BehaviorSubject <bool>(false); var source = new BehaviorSubject <object>(1); var target = new ActivatedObservable(activator, source, string.Empty); var error = new Exception(); var completed = false; target.Subscribe(_ => { }, x => completed = true); source.OnError(error); Assert.True(completed); }
private InstancedBinding Clone(InstancedBinding sourceInstance, IStyle style, IObservable<bool> activator) { InstancedBinding cloned; if (activator != null) { var description = style?.ToString(); if (sourceInstance.Subject != null) { var activated = new ActivatedSubject(activator, sourceInstance.Subject, description); cloned = new InstancedBinding(activated, sourceInstance.Mode, BindingPriority.StyleTrigger); } else if (sourceInstance.Observable != null) { var activated = new ActivatedObservable(activator, sourceInstance.Observable, description); cloned = new InstancedBinding(activated, sourceInstance.Mode, BindingPriority.StyleTrigger); } else { var activated = new ActivatedValue(activator, sourceInstance.Value, description); cloned = new InstancedBinding(activated, BindingMode.OneWay, BindingPriority.StyleTrigger); } } else { if (sourceInstance.Subject != null) { cloned = new InstancedBinding(sourceInstance.Subject, sourceInstance.Mode, BindingPriority.Style); } else if (sourceInstance.Observable != null) { cloned = new InstancedBinding(sourceInstance.Observable, sourceInstance.Mode, BindingPriority.Style); } else { cloned = new InstancedBinding(sourceInstance.Value, BindingPriority.Style); } } return cloned; }