Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }