| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 
							- // -----------------------------------------------------------------------
 
- // <copyright file="PerspexObjectTests_GetObservable.cs" company="Steven Kirk">
 
- // Copyright 2015 MIT Licence. See licence.md for more information.
 
- // </copyright>
 
- // -----------------------------------------------------------------------
 
- namespace Perspex.Base.UnitTests
 
- {
 
-     using System;
 
-     using System.Reactive.Linq;
 
-     using Xunit;
 
-     public class PerspexObjectTests_GetObservable
 
-     {
 
-         [Fact]
 
-         public void GetObservable_Returns_Initial_Value()
 
-         {
 
-             Class1 target = new Class1();
 
-             int raised = 0;
 
-             target.GetObservable(Class1.FooProperty).Subscribe(x =>
 
-             {
 
-                 if (x == "foodefault")
 
-                 {
 
-                     ++raised;
 
-                 }
 
-             });
 
-             Assert.Equal(1, raised);
 
-         }
 
-         [Fact]
 
-         public void GetObservable_Returns_Property_Change()
 
-         {
 
-             Class1 target = new Class1();
 
-             bool raised = false;
 
-             target.GetObservable(Class1.FooProperty).Subscribe(x => raised = x == "newvalue");
 
-             raised = false;
 
-             target.SetValue(Class1.FooProperty, "newvalue");
 
-             Assert.True(raised);
 
-         }
 
-         [Fact]
 
-         public void GetObservable_Returns_Property_Change_Only_For_Correct_Property()
 
-         {
 
-             Class2 target = new Class2();
 
-             bool raised = false;
 
-             target.GetObservable(Class1.FooProperty).Subscribe(x => raised = true);
 
-             raised = false;
 
-             target.SetValue(Class2.BarProperty, "newvalue");
 
-             Assert.False(raised);
 
-         }
 
-         [Fact]
 
-         public void GetObservable_Dispose_Stops_Property_Changes()
 
-         {
 
-             Class1 target = new Class1();
 
-             bool raised = false;
 
-             target.GetObservable(Class1.FooProperty)
 
-                   .Subscribe(x => raised = true)
 
-                   .Dispose();
 
-             raised = false;
 
-             target.SetValue(Class1.FooProperty, "newvalue");
 
-             Assert.False(raised);
 
-         }
 
-         private class Class1 : PerspexObject
 
-         {
 
-             public static readonly PerspexProperty<string> FooProperty =
 
-                 PerspexProperty.Register<Class1, string>("Foo", "foodefault");
 
-         }
 
-         private class Class2 : Class1
 
-         {
 
-             public static readonly PerspexProperty<string> BarProperty =
 
-                 PerspexProperty.Register<Class2, string>("Bar", "bardefault");
 
-         }
 
-     }
 
- }
 
 
  |