public void Cast_String_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <object>() { Item = "23" }; var test = new NotifyValue <string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = "1"; Assert.IsTrue(update); }
public void ArrayCreation_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<int[]>(() => new int[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as int[]).Length); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Length); update = false; dummy.Item = 2; Assert.IsTrue(update); }
public void Indexer_ObservableSource_NoUpdatesWhenDetached() { var update = false; var coll = new ObservableCollection <string>(); coll.Add("23"); var test = new NotifyValue <string>(() => coll[0]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); coll.Insert(0, "42"); Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; coll.Insert(0, "Foo"); Assert.IsTrue(update); }
public void New_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<Dummy<int>>(() => new Dummy<int>(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as Dummy<int>).Item); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Item); update = false; dummy.Item = 1; Assert.IsTrue(update); }
public void Indexer_ObservableIndex_NoUpdatesWhenDetached() { var update = false; var coll = new List <string>(); coll.Add("23"); coll.Add("42"); var dummy = new ObservableDummy <int>(); var test = new NotifyValue <string>(() => coll[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 1; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
public void ArrayLongIndexer2d_ObservableIndex_NoUpdatesWhenDetached() { var update = false; var coll = new string[, ] { { "23", "42" } }; var dummy = new ObservableDummy <long>(); var test = new NotifyValue <string>(() => coll[0, dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 1; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
public void Cast_String_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<object>() { Item = "23" }; var test = new NotifyValue<string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = "1"; Assert.IsTrue(update); }
public void ArrayCreation_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <int[]>(() => new int[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as int[]).Length); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Length); update = false; dummy.Item = 2; Assert.IsTrue(update); }
public void MethodCall_ObservableTarget_NoUpdateWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <string>(() => dummy.Item.ToString()); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
public void MethodCall_ObservableArgument_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <string>() { Item = "23" }; var test = new NotifyValue <int>(() => int.Parse(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value); update = false; dummy.Item = "0"; Assert.IsTrue(update); }
public void New_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <Dummy <int> >(() => new Dummy <int>(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as Dummy <int>).Item); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Item); update = false; dummy.Item = 1; Assert.IsTrue(update); }