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

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

@ -54,15 +54,16 @@ namespace Avalonia.Styling.UnitTests
}
[Fact]
public void Should_Complete_When_Activator_Completes()
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(_ => { }, () => completed = true);
activator.OnCompleted();
target.Subscribe(_ => { }, x => completed = true);
source.OnError(error);
Assert.True(completed);
}

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

@ -40,6 +40,20 @@ namespace Avalonia.Styling.UnitTests
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]
public void Should_Unsubscribe_From_Activator_When_All_Subscriptions_Disposed()
{

Loading…
Cancel
Save