Browse Source

Added a couple of tests.

pull/1690/head
Steven Kirk 9 years ago
committed by Steven Kirk
parent
commit
fcbde80682
  1. 4
      src/Avalonia.Styling/Styling/ActivatedValue.cs
  2. 7
      tests/Avalonia.Styling.UnitTests/ActivatedObservableTests.cs
  3. 14
      tests/Avalonia.Styling.UnitTests/ActivatedValueTests.cs

4
src/Avalonia.Styling/Styling/ActivatedValue.cs

@ -4,6 +4,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Avalonia.Threading;
namespace Avalonia.Styling namespace Avalonia.Styling
{ {
@ -75,6 +76,9 @@ namespace Avalonia.Styling
public virtual IDisposable Subscribe(IObserver<object> observer) public virtual IDisposable Subscribe(IObserver<object> observer)
{ {
Contract.Requires<ArgumentNullException>(observer != null);
Dispatcher.UIThread.VerifyAccess();
_observers.Add(observer); _observers.Add(observer);
if (_observers.Count == 1) if (_observers.Count == 1)

7
tests/Avalonia.Styling.UnitTests/ActivatedObservableTests.cs

@ -54,15 +54,16 @@ namespace Avalonia.Styling.UnitTests
} }
[Fact] [Fact]
public void Should_Complete_When_Activator_Completes() public void Should_Error_When_Source_Errors()
{ {
var activator = new BehaviorSubject<bool>(false); var activator = new BehaviorSubject<bool>(false);
var source = new BehaviorSubject<object>(1); var source = new BehaviorSubject<object>(1);
var target = new ActivatedObservable(activator, source, string.Empty); var target = new ActivatedObservable(activator, source, string.Empty);
var error = new Exception();
var completed = false; var completed = false;
target.Subscribe(_ => { }, () => completed = true); target.Subscribe(_ => { }, x => completed = true);
activator.OnCompleted(); source.OnError(error);
Assert.True(completed); Assert.True(completed);
} }

14
tests/Avalonia.Styling.UnitTests/ActivatedValueTests.cs

@ -40,6 +40,20 @@ namespace Avalonia.Styling.UnitTests
Assert.True(completed); Assert.True(completed);
} }
[Fact]
public void Should_Error_When_Activator_Errors()
{
var activator = new BehaviorSubject<bool>(false);
var target = new ActivatedValue(activator, 1, string.Empty);
var error = new Exception();
var completed = false;
target.Subscribe(_ => { }, x => completed = true);
activator.OnError(error);
Assert.True(completed);
}
[Fact] [Fact]
public void Should_Unsubscribe_From_Activator_When_All_Subscriptions_Disposed() public void Should_Unsubscribe_From_Activator_When_All_Subscriptions_Disposed()
{ {

Loading…
Cancel
Save