Guest User

Untitled

a guest
Jul 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. public class ObservableObject : INotifyPropertyChanged
  2. {
  3.  
  4. private int _someMutable;
  5. public int SomeMutable
  6. {
  7. get { return _someMutable; }
  8. set
  9. {
  10. if (_someMutable == value) return;
  11. _someMutable = value;
  12. OnPropertyChanged("SomeMutable");
  13. }
  14. }
  15.  
  16. protected void OnPropertyChanged(string name)
  17. {
  18. var handler = PropertyChanged;
  19.  
  20. if (handler != null)
  21. handler(this, new PropertyChangedEventArgs(name));
  22. }
  23.  
  24. public event PropertyChangedEventHandler PropertyChanged;
  25. }
  26.  
  27. [TestFixture]
  28. public class IndexTests
  29. {
  30. [Test]
  31. public void index_recognizes_change_in_a_child_property()
  32. {
  33. var someObservableObject = new ObservableObject {SomeMutable = 6};
  34. var someCollection = new ObservableCollection<ObservableObject>(
  35. new List<ObservableObject>{ someObservableObject });
  36. var indexSpec = new IndexSpecification<ObservableObject>();
  37. indexSpec.Add(child => child.SomeMutable);
  38. var someIndex = new ObservingIndex<ObservableObject>(someCollection, indexSpec);
  39. someObservableObject.SomeMutable = 3;
  40. Assert.AreEqual( (from v in someIndex where v.SomeMutable == 3 select v).Count(), 1 );
  41. Assert.Throws<IndexLookupFailedException>(
  42. () => { (from v in someIndex where v.SomeMutable == 6 select v).First(); });
  43. }
  44. }
Add Comment
Please, Sign In to add comment