public void SetPropertyNullPropertyName()
        {
            var bb = new BindableBaseTest_CallerMemberName();

            Assert.Throws <ArgumentNullException>(() => { var t = bb.SomeProperty4__; });
            Assert.Throws <ArgumentNullException>(() => { bb.SomeProperty4 = 150; });
            Assert.Throws <ArgumentNullException>(() => { bb.SomeProperty4_ = 150; });
            Assert.Throws <ArgumentNullException>(() => { bb.SomeProperty4__ = 150; });
            Assert.Throws <ArgumentNullException>(() => { bb.SomeProperty4___ = 150; });
        }
        public void PropertyChangedCallbackAndPropertyChangedEventOrderTest()
        {
            var  bb = new BindableBaseTest_CallerMemberName();
            bool propertyChangedCalled = false;

            bb.PropertyChanged += (s, e) => {
                propertyChangedCalled = true;
                Assert.AreEqual("SomeProperty7", e.PropertyName);
                Assert.AreEqual(0, bb.ChangedCallbackCallCount);
            };
            bb.SomeProperty7 = 777;
            Assert.IsTrue(propertyChangedCalled);
            Assert.AreEqual(1, bb.ChangedCallbackCallCount);
        }
        public void SetPropertyWithPropertyName()
        {
            var    bb       = new BindableBaseTest_CallerMemberName();
            int    count    = 0;
            string propName = null;

            bb.SomeProperty3    = 50;
            bb.PropertyChanged += (o, e) => { count++; propName = e.PropertyName; };
            bb.SomeProperty3    = 150;
            Assert.AreEqual("SomeProperty3", propName);
            Assert.AreEqual(1, count);
            Assert.AreEqual(150, bb.SomeProperty3);

            bb.SomeProperty3 = 150;
            Assert.AreEqual(1, count);
        }