| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- // Copyright (c) The Avalonia Project. All rights reserved.
 
- // Licensed under the MIT license. See licence.md file in the project root for full license information.
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Reactive.Linq;
 
- using System.Reactive.Subjects;
 
- using Microsoft.Reactive.Testing;
 
- using Xunit;
 
- namespace Avalonia.Styling.UnitTests
 
- {
 
-     public class ActivatedValueTests
 
-     {
 
-         [Fact]
 
-         public void Should_Produce_Correct_Values()
 
-         {
 
-             var activator = new BehaviorSubject<bool>(false);
 
-             var target = new ActivatedValue(activator, 1, string.Empty);
 
-             var result = new List<object>();
 
-             target.Subscribe(x => result.Add(x));
 
-             activator.OnNext(true);
 
-             activator.OnNext(false);
 
-             Assert.Equal(new[] { AvaloniaProperty.UnsetValue, 1, AvaloniaProperty.UnsetValue }, result);
 
-         }
 
-         [Fact]
 
-         public void Should_Complete_When_Activator_Completes()
 
-         {
 
-             var activator = new BehaviorSubject<bool>(false);
 
-             var target = new ActivatedValue(activator, 1, string.Empty);
 
-             var completed = false;
 
-             target.Subscribe(_ => { }, () => completed = true);
 
-             activator.OnCompleted();
 
-             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()
 
-         {
 
-             var scheduler = new TestScheduler();
 
-             var activator1 = scheduler.CreateColdObservable<bool>();
 
-             var activator2 = scheduler.CreateColdObservable<bool>();
 
-             var activator = StyleActivator.And(new[] { activator1, activator2 });
 
-             var target = new ActivatedValue(activator, 1, string.Empty);
 
-             var subscription = target.Subscribe(_ => { });
 
-             Assert.Equal(1, activator1.Subscriptions.Count);
 
-             Assert.Equal(Subscription.Infinite, activator1.Subscriptions[0].Unsubscribe);
 
-             subscription.Dispose();
 
-             Assert.Equal(1, activator1.Subscriptions.Count);
 
-             Assert.Equal(0, activator1.Subscriptions[0].Unsubscribe);
 
-         }
 
-     }
 
- }
 
 
  |